/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-red-50: oklch(97.1% 0.013 17.38);
    --color-red-200: oklch(88.5% 0.062 18.334);
    --color-red-300: oklch(80.8% 0.114 19.571);
    --color-red-400: oklch(70.4% 0.191 22.216);
    --color-red-500: oklch(63.7% 0.237 25.331);
    --color-red-600: oklch(57.7% 0.245 27.325);
    --color-red-700: oklch(50.5% 0.213 27.518);
    --color-red-800: oklch(44.4% 0.177 26.899);
    --color-red-950: oklch(25.8% 0.092 26.042);
    --color-amber-50: oklch(98.7% 0.022 95.277);
    --color-amber-200: oklch(92.4% 0.12 95.746);
    --color-amber-300: oklch(87.9% 0.169 91.605);
    --color-amber-400: oklch(82.8% 0.189 84.429);
    --color-amber-500: oklch(76.9% 0.188 70.08);
    --color-amber-600: oklch(66.6% 0.179 58.318);
    --color-amber-700: oklch(55.5% 0.163 48.998);
    --color-amber-800: oklch(47.3% 0.137 46.201);
    --color-amber-950: oklch(27.9% 0.077 45.635);
    --color-emerald-50: oklch(97.9% 0.021 166.113);
    --color-emerald-200: oklch(90.5% 0.093 164.15);
    --color-emerald-300: oklch(84.5% 0.143 164.978);
    --color-emerald-500: oklch(69.6% 0.17 162.48);
    --color-emerald-600: oklch(59.6% 0.145 163.225);
    --color-emerald-700: oklch(50.8% 0.118 165.612);
    --color-emerald-800: oklch(43.2% 0.095 166.913);
    --color-emerald-950: oklch(26.2% 0.051 172.552);
    --color-sky-50: oklch(97.7% 0.013 236.62);
    --color-sky-100: oklch(95.1% 0.026 236.824);
    --color-sky-200: oklch(90.1% 0.058 230.902);
    --color-sky-300: oklch(82.8% 0.111 230.318);
    --color-sky-500: oklch(68.5% 0.169 237.323);
    --color-sky-600: oklch(58.8% 0.158 241.966);
    --color-sky-700: oklch(50% 0.134 242.749);
    --color-sky-800: oklch(44.3% 0.11 240.79);
    --color-sky-900: oklch(39.1% 0.09 240.876);
    --color-sky-950: oklch(29.3% 0.066 243.157);
    --color-blue-400: oklch(70.7% 0.165 254.624);
    --color-blue-500: oklch(62.3% 0.214 259.815);
    --color-blue-600: oklch(54.6% 0.245 262.881);
    --color-gray-100: oklch(96.7% 0.003 264.542);
    --color-gray-200: oklch(92.8% 0.006 264.531);
    --color-gray-300: oklch(87.2% 0.01 258.338);
    --color-gray-400: oklch(70.7% 0.022 261.325);
    --color-gray-500: oklch(55.1% 0.027 264.364);
    --color-gray-600: oklch(44.6% 0.03 256.802);
    --color-gray-700: oklch(37.3% 0.034 259.733);
    --color-gray-900: oklch(21% 0.034 264.665);
    --color-gray-950: oklch(13% 0.028 261.692);
    --color-black: #000;
    --color-white: #fff;
    --spacing: 0.25rem;
    --container-sm: 24rem;
    --container-3xl: 48rem;
    --text-xs: 0.75rem;
    --text-xs--line-height: calc(1 / 0.75);
    --text-sm: 0.875rem;
    --text-sm--line-height: calc(1.25 / 0.875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --text-lg: 1.125rem;
    --text-lg--line-height: calc(1.75 / 1.125);
    --text-2xl: 1.5rem;
    --text-2xl--line-height: calc(2 / 1.5);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-tight: -0.025em;
    --tracking-wide: 0.025em;
    --tracking-wider: 0.05em;
    --tracking-widest: 0.1em;
    --leading-relaxed: 1.625;
    --radius-lg: 0.5rem;
    --radius-xl: 0.75rem;
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --blur-md: 12px;
    --blur-2xl: 40px;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-accent: var(--accent);
    --color-danger: var(--danger);
    --color-success: var(--success);
    --color-warning: var(--warning);
    --color-card: var(--card-bg);
    --color-surface: var(--bg-sidebar);
    --color-primary: var(--text-primary);
    --color-muted: var(--text-secondary);
    --color-border: var(--border);
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .collapse {
    visibility: collapse;
  }
  .visible {
    visibility: visible;
  }
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
  }
  .absolute {
    position: absolute;
  }
  .fixed {
    position: fixed;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .sticky {
    position: sticky;
  }
  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }
  .top-0 {
    top: calc(var(--spacing) * 0);
  }
  .top-1\/2 {
    top: calc(1 / 2 * 100%);
  }
  .top-2 {
    top: calc(var(--spacing) * 2);
  }
  .top-5 {
    top: calc(var(--spacing) * 5);
  }
  .right-0 {
    right: calc(var(--spacing) * 0);
  }
  .right-2 {
    right: calc(var(--spacing) * 2);
  }
  .right-3 {
    right: calc(var(--spacing) * 3);
  }
  .right-5 {
    right: calc(var(--spacing) * 5);
  }
  .left-\[-40\%\] {
    left: -40%;
  }
  .z-50 {
    z-index: 50;
  }
  .z-\[-1\] {
    z-index: -1;
  }
  .z-\[1055\] {
    z-index: 1055;
  }
  .col-span-full {
    grid-column: 1 / -1;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .container\! {
    width: 100% !important;
    @media (width >= 40rem) {
      max-width: 40rem !important;
    }
    @media (width >= 48rem) {
      max-width: 48rem !important;
    }
    @media (width >= 64rem) {
      max-width: 64rem !important;
    }
    @media (width >= 80rem) {
      max-width: 80rem !important;
    }
    @media (width >= 96rem) {
      max-width: 96rem !important;
    }
  }
  .m-0 {
    margin: calc(var(--spacing) * 0);
  }
  .mx-2 {
    margin-inline: calc(var(--spacing) * 2);
  }
  .mx-4 {
    margin-inline: calc(var(--spacing) * 4);
  }
  .mx-auto {
    margin-inline: auto;
  }
  .my-4 {
    margin-block: calc(var(--spacing) * 4);
  }
  .mt-0\.5 {
    margin-top: calc(var(--spacing) * 0.5);
  }
  .mt-1 {
    margin-top: calc(var(--spacing) * 1);
  }
  .mt-2 {
    margin-top: calc(var(--spacing) * 2);
  }
  .mt-3 {
    margin-top: calc(var(--spacing) * 3);
  }
  .mt-4 {
    margin-top: calc(var(--spacing) * 4);
  }
  .mt-5 {
    margin-top: calc(var(--spacing) * 5);
  }
  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }
  .mt-8 {
    margin-top: calc(var(--spacing) * 8);
  }
  .mr-1 {
    margin-right: calc(var(--spacing) * 1);
  }
  .mb-0 {
    margin-bottom: calc(var(--spacing) * 0);
  }
  .mb-1 {
    margin-bottom: calc(var(--spacing) * 1);
  }
  .mb-1\.5 {
    margin-bottom: calc(var(--spacing) * 1.5);
  }
  .mb-2 {
    margin-bottom: calc(var(--spacing) * 2);
  }
  .mb-3 {
    margin-bottom: calc(var(--spacing) * 3);
  }
  .mb-4 {
    margin-bottom: calc(var(--spacing) * 4);
  }
  .mb-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }
  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }
  .mb-7 {
    margin-bottom: calc(var(--spacing) * 7);
  }
  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }
  .ml-1 {
    margin-left: calc(var(--spacing) * 1);
  }
  .ml-auto {
    margin-left: auto;
  }
  .block {
    display: block;
  }
  .contents {
    display: contents;
  }
  .flex {
    display: flex;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .inline {
    display: inline;
  }
  .inline-block {
    display: inline-block;
  }
  .inline-flex {
    display: inline-flex;
  }
  .table {
    display: table;
  }
  .table\! {
    display: table !important;
  }
  .table-row {
    display: table-row;
  }
  .h-1 {
    height: calc(var(--spacing) * 1);
  }
  .h-1\.5 {
    height: calc(var(--spacing) * 1.5);
  }
  .h-2 {
    height: calc(var(--spacing) * 2);
  }
  .h-4 {
    height: calc(var(--spacing) * 4);
  }
  .h-5 {
    height: calc(var(--spacing) * 5);
  }
  .h-6 {
    height: calc(var(--spacing) * 6);
  }
  .h-7 {
    height: calc(var(--spacing) * 7);
  }
  .h-8 {
    height: calc(var(--spacing) * 8);
  }
  .h-9 {
    height: calc(var(--spacing) * 9);
  }
  .h-11 {
    height: calc(var(--spacing) * 11);
  }
  .h-12 {
    height: calc(var(--spacing) * 12);
  }
  .h-14 {
    height: calc(var(--spacing) * 14);
  }
  .h-16 {
    height: calc(var(--spacing) * 16);
  }
  .h-20 {
    height: calc(var(--spacing) * 20);
  }
  .h-44 {
    height: calc(var(--spacing) * 44);
  }
  .h-full {
    height: 100%;
  }
  .max-h-56 {
    max-height: calc(var(--spacing) * 56);
  }
  .min-h-\[80px\] {
    min-height: 80px;
  }
  .min-h-dvh {
    min-height: 100dvh;
  }
  .w-1\.5 {
    width: calc(var(--spacing) * 1.5);
  }
  .w-4 {
    width: calc(var(--spacing) * 4);
  }
  .w-5 {
    width: calc(var(--spacing) * 5);
  }
  .w-6 {
    width: calc(var(--spacing) * 6);
  }
  .w-7 {
    width: calc(var(--spacing) * 7);
  }
  .w-8 {
    width: calc(var(--spacing) * 8);
  }
  .w-9 {
    width: calc(var(--spacing) * 9);
  }
  .w-10 {
    width: calc(var(--spacing) * 10);
  }
  .w-12 {
    width: calc(var(--spacing) * 12);
  }
  .w-14 {
    width: calc(var(--spacing) * 14);
  }
  .w-16 {
    width: calc(var(--spacing) * 16);
  }
  .w-20 {
    width: calc(var(--spacing) * 20);
  }
  .w-36 {
    width: calc(var(--spacing) * 36);
  }
  .w-44 {
    width: calc(var(--spacing) * 44);
  }
  .w-48 {
    width: calc(var(--spacing) * 48);
  }
  .w-\[40\%\] {
    width: 40%;
  }
  .w-\[50px\] {
    width: 50px;
  }
  .w-\[60px\] {
    width: 60px;
  }
  .w-full {
    width: 100%;
  }
  .max-w-3xl {
    max-width: var(--container-3xl);
  }
  .max-w-\[70\%\] {
    max-width: 70%;
  }
  .max-w-\[150px\] {
    max-width: 150px;
  }
  .max-w-\[640px\] {
    max-width: 640px;
  }
  .max-w-full {
    max-width: 100%;
  }
  .max-w-sm {
    max-width: var(--container-sm);
  }
  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }
  .flex-1 {
    flex: 1;
  }
  .flex-shrink {
    flex-shrink: 1;
  }
  .flex-shrink-0 {
    flex-shrink: 0;
  }
  .shrink-0 {
    flex-shrink: 0;
  }
  .border-collapse {
    border-collapse: collapse;
  }
  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .cursor-pointer {
    cursor: pointer;
  }
  .resize {
    resize: both;
  }
  .appearance-none {
    appearance: none;
  }
  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .flex-col {
    flex-direction: column;
  }
  .flex-wrap {
    flex-wrap: wrap;
  }
  .items-center {
    align-items: center;
  }
  .items-end {
    align-items: flex-end;
  }
  .items-start {
    align-items: flex-start;
  }
  .justify-between {
    justify-content: space-between;
  }
  .justify-center {
    justify-content: center;
  }
  .justify-end {
    justify-content: flex-end;
  }
  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }
  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }
  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }
  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }
  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }
  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }
  .gap-5 {
    gap: calc(var(--spacing) * 5);
  }
  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }
  .space-y-0\.5 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 0.5) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 0.5) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .space-y-2 {
    :where(& > :not(:last-child)) {
      --tw-space-y-reverse: 0;
      margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
      margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
    }
  }
  .truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .overflow-hidden {
    overflow: hidden;
  }
  .overflow-x-auto {
    overflow-x: auto;
  }
  .overflow-y-auto {
    overflow-y: auto;
  }
  .rounded {
    border-radius: 0.25rem;
  }
  .rounded-\[10px\] {
    border-radius: 10px;
  }
  .rounded-full {
    border-radius: calc(infinity * 1px);
  }
  .rounded-lg {
    border-radius: var(--radius-lg);
  }
  .rounded-xl {
    border-radius: var(--radius-xl);
  }
  .rounded-b-lg {
    border-bottom-right-radius: var(--radius-lg);
    border-bottom-left-radius: var(--radius-lg);
  }
  .rounded-b-none {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  .rounded-bl-full {
    border-bottom-left-radius: calc(infinity * 1px);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0px;
  }
  .border-3 {
    border-style: var(--tw-border-style);
    border-width: 3px;
  }
  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }
  .border-t-0 {
    border-top-style: var(--tw-border-style);
    border-top-width: 0px;
  }
  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
  .border-l-\[3px\] {
    border-left-style: var(--tw-border-style);
    border-left-width: 3px;
  }
  .border-none {
    --tw-border-style: none;
    border-style: none;
  }
  .border-accent {
    border-color: var(--color-accent);
  }
  .border-accent\/20 {
    border-color: var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-accent) 20%, transparent);
    }
  }
  .border-accent\/30 {
    border-color: var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-accent) 30%, transparent);
    }
  }
  .border-amber-200\/50 {
    border-color: color-mix(in srgb, oklch(92.4% 0.12 95.746) 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-amber-200) 50%, transparent);
    }
  }
  .border-amber-500 {
    border-color: var(--color-amber-500);
  }
  .border-amber-500\/20 {
    border-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
    }
  }
  .border-border {
    border-color: var(--color-border);
  }
  .border-border\/30 {
    border-color: var(--color-border);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-border) 30%, transparent);
    }
  }
  .border-border\/50 {
    border-color: var(--color-border);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-border) 50%, transparent);
    }
  }
  .border-danger\/30 {
    border-color: var(--color-danger);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-danger) 30%, transparent);
    }
  }
  .border-emerald-200\/50 {
    border-color: color-mix(in srgb, oklch(90.5% 0.093 164.15) 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-emerald-200) 50%, transparent);
    }
  }
  .border-emerald-500 {
    border-color: var(--color-emerald-500);
  }
  .border-emerald-500\/30 {
    border-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-emerald-500) 30%, transparent);
    }
  }
  .border-gray-200 {
    border-color: var(--color-gray-200);
  }
  .border-gray-200\/70 {
    border-color: color-mix(in srgb, oklch(92.8% 0.006 264.531) 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-gray-200) 70%, transparent);
    }
  }
  .border-gray-300 {
    border-color: var(--color-gray-300);
  }
  .border-muted {
    border-color: var(--color-muted);
  }
  .border-red-200\/50 {
    border-color: color-mix(in srgb, oklch(88.5% 0.062 18.334) 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-red-200) 50%, transparent);
    }
  }
  .border-red-400\/30 {
    border-color: color-mix(in srgb, oklch(70.4% 0.191 22.216) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-red-400) 30%, transparent);
    }
  }
  .border-red-400\/40 {
    border-color: color-mix(in srgb, oklch(70.4% 0.191 22.216) 40%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-red-400) 40%, transparent);
    }
  }
  .border-red-500 {
    border-color: var(--color-red-500);
  }
  .border-red-500\/20 {
    border-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }
  .border-sky-200\/50 {
    border-color: color-mix(in srgb, oklch(90.1% 0.058 230.902) 50%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-sky-200) 50%, transparent);
    }
  }
  .border-sky-500\/20 {
    border-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 20%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-sky-500) 20%, transparent);
    }
  }
  .border-sky-500\/30 {
    border-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 30%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-sky-500) 30%, transparent);
    }
  }
  .border-success\/30 {
    border-color: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-success) 30%, transparent);
    }
  }
  .border-warning\/30 {
    border-color: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      border-color: color-mix(in oklab, var(--color-warning) 30%, transparent);
    }
  }
  .bg-accent {
    background-color: var(--color-accent);
  }
  .bg-accent\/5 {
    background-color: var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-accent) 5%, transparent);
    }
  }
  .bg-accent\/10 {
    background-color: var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-accent) 10%, transparent);
    }
  }
  .bg-accent\/40 {
    background-color: var(--color-accent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-accent) 40%, transparent);
    }
  }
  .bg-amber-50 {
    background-color: var(--color-amber-50);
  }
  .bg-amber-500 {
    background-color: var(--color-amber-500);
  }
  .bg-amber-500\/5 {
    background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 5%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-amber-500) 5%, transparent);
    }
  }
  .bg-black\/45 {
    background-color: color-mix(in srgb, #000 45%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-black) 45%, transparent);
    }
  }
  .bg-blue-600 {
    background-color: var(--color-blue-600);
  }
  .bg-card {
    background-color: var(--color-card);
  }
  .bg-danger {
    background-color: var(--color-danger);
  }
  .bg-danger\/5 {
    background-color: var(--color-danger);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-danger) 5%, transparent);
    }
  }
  .bg-danger\/10 {
    background-color: var(--color-danger);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-danger) 10%, transparent);
    }
  }
  .bg-emerald-50 {
    background-color: var(--color-emerald-50);
  }
  .bg-emerald-500\/10 {
    background-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
    }
  }
  .bg-emerald-600 {
    background-color: var(--color-emerald-600);
  }
  .bg-gray-100 {
    background-color: var(--color-gray-100);
  }
  .bg-gray-500 {
    background-color: var(--color-gray-500);
  }
  .bg-muted\/10 {
    background-color: var(--color-muted);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-muted) 10%, transparent);
    }
  }
  .bg-primary\/5 {
    background-color: var(--color-primary);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-primary) 5%, transparent);
    }
  }
  .bg-red-50 {
    background-color: var(--color-red-50);
  }
  .bg-red-500\/5 {
    background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 5%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-red-500) 5%, transparent);
    }
  }
  .bg-red-500\/10 {
    background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
    }
  }
  .bg-red-600 {
    background-color: var(--color-red-600);
  }
  .bg-sky-50 {
    background-color: var(--color-sky-50);
  }
  .bg-sky-100 {
    background-color: var(--color-sky-100);
  }
  .bg-sky-500 {
    background-color: var(--color-sky-500);
  }
  .bg-sky-500\/5 {
    background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 5%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-sky-500) 5%, transparent);
    }
  }
  .bg-sky-600 {
    background-color: var(--color-sky-600);
  }
  .bg-success {
    background-color: var(--color-success);
  }
  .bg-success\/5 {
    background-color: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-success) 5%, transparent);
    }
  }
  .bg-success\/10 {
    background-color: var(--color-success);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-success) 10%, transparent);
    }
  }
  .bg-surface\/10 {
    background-color: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-surface) 10%, transparent);
    }
  }
  .bg-surface\/30 {
    background-color: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-surface) 30%, transparent);
    }
  }
  .bg-surface\/50 {
    background-color: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-surface) 50%, transparent);
    }
  }
  .bg-transparent {
    background-color: transparent;
  }
  .bg-warning {
    background-color: var(--color-warning);
  }
  .bg-warning\/10 {
    background-color: var(--color-warning);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-warning) 10%, transparent);
    }
  }
  .bg-white {
    background-color: var(--color-white);
  }
  .bg-white\/10 {
    background-color: color-mix(in srgb, #fff 10%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
  .bg-white\/60 {
    background-color: color-mix(in srgb, #fff 60%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 60%, transparent);
    }
  }
  .bg-white\/70 {
    background-color: color-mix(in srgb, #fff 70%, transparent);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-white) 70%, transparent);
    }
  }
  .p-0 {
    padding: calc(var(--spacing) * 0);
  }
  .p-1 {
    padding: calc(var(--spacing) * 1);
  }
  .p-2 {
    padding: calc(var(--spacing) * 2);
  }
  .p-3 {
    padding: calc(var(--spacing) * 3);
  }
  .p-4 {
    padding: calc(var(--spacing) * 4);
  }
  .p-5 {
    padding: calc(var(--spacing) * 5);
  }
  .px-1 {
    padding-inline: calc(var(--spacing) * 1);
  }
  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }
  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }
  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }
  .px-3\.5 {
    padding-inline: calc(var(--spacing) * 3.5);
  }
  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }
  .px-5 {
    padding-inline: calc(var(--spacing) * 5);
  }
  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }
  .px-8 {
    padding-inline: calc(var(--spacing) * 8);
  }
  .py-0\.5 {
    padding-block: calc(var(--spacing) * 0.5);
  }
  .py-1\.5 {
    padding-block: calc(var(--spacing) * 1.5);
  }
  .py-2 {
    padding-block: calc(var(--spacing) * 2);
  }
  .py-2\.5 {
    padding-block: calc(var(--spacing) * 2.5);
  }
  .py-3 {
    padding-block: calc(var(--spacing) * 3);
  }
  .py-4 {
    padding-block: calc(var(--spacing) * 4);
  }
  .py-5 {
    padding-block: calc(var(--spacing) * 5);
  }
  .py-6 {
    padding-block: calc(var(--spacing) * 6);
  }
  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }
  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }
  .ps-4 {
    padding-inline-start: calc(var(--spacing) * 4);
  }
  .pt-3 {
    padding-top: calc(var(--spacing) * 3);
  }
  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }
  .pt-8 {
    padding-top: calc(var(--spacing) * 8);
  }
  .pr-0 {
    padding-right: calc(var(--spacing) * 0);
  }
  .pr-3 {
    padding-right: calc(var(--spacing) * 3);
  }
  .pr-4 {
    padding-right: calc(var(--spacing) * 4);
  }
  .pr-12 {
    padding-right: calc(var(--spacing) * 12);
  }
  .pr-14 {
    padding-right: calc(var(--spacing) * 14);
  }
  .pb-6 {
    padding-bottom: calc(var(--spacing) * 6);
  }
  .pl-0 {
    padding-left: calc(var(--spacing) * 0);
  }
  .pl-4 {
    padding-left: calc(var(--spacing) * 4);
  }
  .text-center {
    text-align: center;
  }
  .text-left {
    text-align: left;
  }
  .text-right {
    text-align: right;
  }
  .font-mono {
    font-family: var(--font-mono);
  }
  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }
  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }
  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--line-height));
  }
  .text-lg {
    font-size: var(--text-lg);
    line-height: var(--tw-leading, var(--text-lg--line-height));
  }
  .text-sm {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }
  .text-xs {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }
  .text-\[0\.6rem\] {
    font-size: 0.6rem;
  }
  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }
  .font-bold {
    --tw-font-weight: var(--font-weight-bold);
    font-weight: var(--font-weight-bold);
  }
  .font-medium {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }
  .font-semibold {
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
  }
  .tracking-tight {
    --tw-tracking: var(--tracking-tight);
    letter-spacing: var(--tracking-tight);
  }
  .tracking-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }
  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }
  .tracking-widest {
    --tw-tracking: var(--tracking-widest);
    letter-spacing: var(--tracking-widest);
  }
  .whitespace-nowrap {
    white-space: nowrap;
  }
  .text-accent {
    color: var(--color-accent);
  }
  .text-amber-500 {
    color: var(--color-amber-500);
  }
  .text-amber-600 {
    color: var(--color-amber-600);
  }
  .text-amber-700 {
    color: var(--color-amber-700);
  }
  .text-danger {
    color: var(--color-danger);
  }
  .text-emerald-500 {
    color: var(--color-emerald-500);
  }
  .text-emerald-600 {
    color: var(--color-emerald-600);
  }
  .text-emerald-700 {
    color: var(--color-emerald-700);
  }
  .text-gray-300 {
    color: var(--color-gray-300);
  }
  .text-gray-400 {
    color: var(--color-gray-400);
  }
  .text-gray-500 {
    color: var(--color-gray-500);
  }
  .text-gray-700 {
    color: var(--color-gray-700);
  }
  .text-gray-900 {
    color: var(--color-gray-900);
  }
  .text-muted {
    color: var(--color-muted);
  }
  .text-primary {
    color: var(--color-primary);
  }
  .text-red-500 {
    color: var(--color-red-500);
  }
  .text-red-600 {
    color: var(--color-red-600);
  }
  .text-red-700 {
    color: var(--color-red-700);
  }
  .text-sky-500 {
    color: var(--color-sky-500);
  }
  .text-sky-600 {
    color: var(--color-sky-600);
  }
  .text-sky-700 {
    color: var(--color-sky-700);
  }
  .text-success {
    color: var(--color-success);
  }
  .text-warning {
    color: var(--color-warning);
  }
  .text-white {
    color: var(--color-white);
  }
  .capitalize {
    text-transform: capitalize;
  }
  .lowercase {
    text-transform: lowercase;
  }
  .uppercase {
    text-transform: uppercase;
  }
  .ordinal {
    --tw-ordinal: ordinal;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .tabular-nums {
    --tw-numeric-spacing: tabular-nums;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .no-underline {
    text-decoration-line: none;
  }
  .underline {
    text-decoration-line: underline;
  }
  .underline-offset-2 {
    text-underline-offset: 2px;
  }
  .underline-offset-4 {
    text-underline-offset: 4px;
  }
  .opacity-50 {
    opacity: 50%;
  }
  .shadow-\[0_1px_3px_rgba\(0\,0\,0\,0\.04\)\,0_1px_2px_rgba\(0\,0\,0\,0\.06\)\] {
    --tw-shadow: 0 1px 3px var(--tw-shadow-color, rgba(0,0,0,0.04)), 0 1px 2px var(--tw-shadow-color, rgba(0,0,0,0.06));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .blur {
    --tw-blur: blur(8px);
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .backdrop-blur-2xl {
    --tw-backdrop-blur: blur(var(--blur-2xl));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .backdrop-blur-md {
    --tw-backdrop-blur: blur(var(--blur-md));
    -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
    backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-all {
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-colors {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .transition-transform {
    transition-property: transform, translate, scale, rotate;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
  .duration-300 {
    --tw-duration: 300ms;
    transition-duration: 300ms;
  }
  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }
  .select-none {
    -webkit-user-select: none;
    user-select: none;
  }
  .placeholder\:text-gray-400 {
    &::placeholder {
      color: var(--color-gray-400);
    }
  }
  .last\:border-0 {
    &:last-child {
      border-style: var(--tw-border-style);
      border-width: 0px;
    }
  }
  .checked\:border-blue-600 {
    &:checked {
      border-color: var(--color-blue-600);
    }
  }
  .checked\:bg-blue-600 {
    &:checked {
      background-color: var(--color-blue-600);
    }
  }
  .hover\:border-danger\/40 {
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-danger);
        @supports (color: color-mix(in lab, red, red)) {
          border-color: color-mix(in oklab, var(--color-danger) 40%, transparent);
        }
      }
    }
  }
  .hover\:border-muted {
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-muted);
      }
    }
  }
  .hover\:border-red-400\/30 {
    &:hover {
      @media (hover: hover) {
        border-color: color-mix(in srgb, oklch(70.4% 0.191 22.216) 30%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          border-color: color-mix(in oklab, var(--color-red-400) 30%, transparent);
        }
      }
    }
  }
  .hover\:bg-accent\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-accent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-accent) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-amber-200\/50 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(92.4% 0.12 95.746) 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-amber-200) 50%, transparent);
        }
      }
    }
  }
  .hover\:bg-amber-600 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-amber-600);
      }
    }
  }
  .hover\:bg-border\/20 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-border);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-border) 20%, transparent);
        }
      }
    }
  }
  .hover\:bg-emerald-200\/50 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(90.5% 0.093 164.15) 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-emerald-200) 50%, transparent);
        }
      }
    }
  }
  .hover\:bg-emerald-500\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 10%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-emerald-700 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-emerald-700);
      }
    }
  }
  .hover\:bg-gray-100\/50 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(96.7% 0.003 264.542) 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-gray-100) 50%, transparent);
        }
      }
    }
  }
  .hover\:bg-muted\/5 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-muted);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-muted) 5%, transparent);
        }
      }
    }
  }
  .hover\:bg-muted\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-muted);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-muted) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-red-200\/50 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(88.5% 0.062 18.334) 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-red-200) 50%, transparent);
        }
      }
    }
  }
  .hover\:bg-red-500\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-red-700 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-red-700);
      }
    }
  }
  .hover\:bg-sky-200\/50 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(90.1% 0.058 230.902) 50%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-sky-200) 50%, transparent);
        }
      }
    }
  }
  .hover\:bg-sky-500\/10 {
    &:hover {
      @media (hover: hover) {
        background-color: color-mix(in srgb, oklch(68.5% 0.169 237.323) 10%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-sky-500) 10%, transparent);
        }
      }
    }
  }
  .hover\:bg-sky-700 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-sky-700);
      }
    }
  }
  .hover\:bg-surface\/30 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-surface);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-surface) 30%, transparent);
        }
      }
    }
  }
  .hover\:bg-surface\/60 {
    &:hover {
      @media (hover: hover) {
        background-color: var(--color-surface);
        @supports (color: color-mix(in lab, red, red)) {
          background-color: color-mix(in oklab, var(--color-surface) 60%, transparent);
        }
      }
    }
  }
  .hover\:text-blue-600 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-blue-600);
      }
    }
  }
  .hover\:text-danger {
    &:hover {
      @media (hover: hover) {
        color: var(--color-danger);
      }
    }
  }
  .hover\:text-gray-600 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-gray-600);
      }
    }
  }
  .hover\:text-gray-700 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-gray-700);
      }
    }
  }
  .hover\:text-primary {
    &:hover {
      @media (hover: hover) {
        color: var(--color-primary);
      }
    }
  }
  .hover\:text-red-500 {
    &:hover {
      @media (hover: hover) {
        color: var(--color-red-500);
      }
    }
  }
  .hover\:underline {
    &:hover {
      @media (hover: hover) {
        text-decoration-line: underline;
      }
    }
  }
  .hover\:opacity-90 {
    &:hover {
      @media (hover: hover) {
        opacity: 90%;
      }
    }
  }
  .focus\:border-accent {
    &:focus {
      border-color: var(--color-accent);
    }
  }
  .focus\:border-blue-500 {
    &:focus {
      border-color: var(--color-blue-500);
    }
  }
  .focus\:ring-1 {
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
  }
  .focus\:ring-blue-500\/20 {
    &:focus {
      --tw-ring-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 20%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
      }
    }
  }
  .focus\:outline-none {
    &:focus {
      --tw-outline-style: none;
      outline-style: none;
    }
  }
  .active\:scale-75 {
    &:active {
      --tw-scale-x: 75%;
      --tw-scale-y: 75%;
      --tw-scale-z: 75%;
      scale: var(--tw-scale-x) var(--tw-scale-y);
    }
  }
  .disabled\:cursor-not-allowed {
    &:disabled {
      cursor: not-allowed;
    }
  }
  .disabled\:opacity-40 {
    &:disabled {
      opacity: 40%;
    }
  }
  .sm\:col-auto {
    @media (width >= 40rem) {
      grid-column: auto;
    }
  }
  .sm\:col-span-2 {
    @media (width >= 40rem) {
      grid-column: span 2 / span 2;
    }
  }
  .sm\:col-span-4 {
    @media (width >= 40rem) {
      grid-column: span 4 / span 4;
    }
  }
  .sm\:col-span-5 {
    @media (width >= 40rem) {
      grid-column: span 5 / span 5;
    }
  }
  .sm\:col-span-6 {
    @media (width >= 40rem) {
      grid-column: span 6 / span 6;
    }
  }
  .sm\:grid-cols-2 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-3 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .sm\:grid-cols-12 {
    @media (width >= 40rem) {
      grid-template-columns: repeat(12, minmax(0, 1fr));
    }
  }
  .sm\:p-8 {
    @media (width >= 40rem) {
      padding: calc(var(--spacing) * 8);
    }
  }
  .md\:col-span-4 {
    @media (width >= 48rem) {
      grid-column: span 4 / span 4;
    }
  }
  .md\:col-span-6 {
    @media (width >= 48rem) {
      grid-column: span 6 / span 6;
    }
  }
  .md\:col-span-12 {
    @media (width >= 48rem) {
      grid-column: span 12 / span 12;
    }
  }
  .md\:grid-cols-3 {
    @media (width >= 48rem) {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .md\:grid-cols-12 {
    @media (width >= 48rem) {
      grid-template-columns: repeat(12, minmax(0, 1fr));
    }
  }
  .lg\:col-span-5 {
    @media (width >= 64rem) {
      grid-column: span 5 / span 5;
    }
  }
  .lg\:col-span-7 {
    @media (width >= 64rem) {
      grid-column: span 7 / span 7;
    }
  }
  .lg\:grid-cols-2 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-4 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-5 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }
  }
  .lg\:grid-cols-12 {
    @media (width >= 64rem) {
      grid-template-columns: repeat(12, minmax(0, 1fr));
    }
  }
  .dark\:border-amber-800\/50 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, oklch(47.3% 0.137 46.201) 50%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-amber-800) 50%, transparent);
      }
    }
  }
  .dark\:border-emerald-800\/50 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, oklch(43.2% 0.095 166.913) 50%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-emerald-800) 50%, transparent);
      }
    }
  }
  .dark\:border-gray-600 {
    &:where(.dark, .dark *) {
      border-color: var(--color-gray-600);
    }
  }
  .dark\:border-red-800\/50 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, oklch(44.4% 0.177 26.899) 50%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-red-800) 50%, transparent);
      }
    }
  }
  .dark\:border-sky-700\/50 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, oklch(50% 0.134 242.749) 50%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-sky-700) 50%, transparent);
      }
    }
  }
  .dark\:border-sky-800\/50 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, oklch(44.3% 0.11 240.79) 50%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-sky-800) 50%, transparent);
      }
    }
  }
  .dark\:border-white\/10 {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, #fff 10%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
      }
    }
  }
  .dark\:border-white\/\[0\.06\] {
    &:where(.dark, .dark *) {
      border-color: color-mix(in srgb, #fff 6%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        border-color: color-mix(in oklab, var(--color-white) 6%, transparent);
      }
    }
  }
  .dark\:bg-amber-950\/30 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, oklch(27.9% 0.077 45.635) 30%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-amber-950) 30%, transparent);
      }
    }
  }
  .dark\:bg-emerald-950\/30 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, oklch(26.2% 0.051 172.552) 30%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-emerald-950) 30%, transparent);
      }
    }
  }
  .dark\:bg-gray-950 {
    &:where(.dark, .dark *) {
      background-color: var(--color-gray-950);
    }
  }
  .dark\:bg-red-950\/30 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, oklch(25.8% 0.092 26.042) 30%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-red-950) 30%, transparent);
      }
    }
  }
  .dark\:bg-sky-900\/30 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, oklch(39.1% 0.09 240.876) 30%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-sky-900) 30%, transparent);
      }
    }
  }
  .dark\:bg-sky-950\/30 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, oklch(29.3% 0.066 243.157) 30%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-sky-950) 30%, transparent);
      }
    }
  }
  .dark\:bg-transparent {
    &:where(.dark, .dark *) {
      background-color: transparent;
    }
  }
  .dark\:bg-white\/5 {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, #fff 5%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
      }
    }
  }
  .dark\:bg-white\/\[0\.03\] {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, #fff 3%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-white) 3%, transparent);
      }
    }
  }
  .dark\:bg-white\/\[0\.04\] {
    &:where(.dark, .dark *) {
      background-color: color-mix(in srgb, #fff 4%, transparent);
      @supports (color: color-mix(in lab, red, red)) {
        background-color: color-mix(in oklab, var(--color-white) 4%, transparent);
      }
    }
  }
  .dark\:text-amber-300 {
    &:where(.dark, .dark *) {
      color: var(--color-amber-300);
    }
  }
  .dark\:text-amber-400 {
    &:where(.dark, .dark *) {
      color: var(--color-amber-400);
    }
  }
  .dark\:text-emerald-300 {
    &:where(.dark, .dark *) {
      color: var(--color-emerald-300);
    }
  }
  .dark\:text-gray-100 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-100);
    }
  }
  .dark\:text-gray-300 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-300);
    }
  }
  .dark\:text-gray-400 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-400);
    }
  }
  .dark\:text-gray-500 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-500);
    }
  }
  .dark\:text-gray-600 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-600);
    }
  }
  .dark\:text-gray-700 {
    &:where(.dark, .dark *) {
      color: var(--color-gray-700);
    }
  }
  .dark\:text-red-300 {
    &:where(.dark, .dark *) {
      color: var(--color-red-300);
    }
  }
  .dark\:text-red-400 {
    &:where(.dark, .dark *) {
      color: var(--color-red-400);
    }
  }
  .dark\:text-sky-300 {
    &:where(.dark, .dark *) {
      color: var(--color-sky-300);
    }
  }
  .dark\:shadow-none {
    &:where(.dark, .dark *) {
      --tw-shadow: 0 0 #0000;
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
  }
  .dark\:placeholder\:text-gray-600 {
    &:where(.dark, .dark *) {
      &::placeholder {
        color: var(--color-gray-600);
      }
    }
  }
  .dark\:hover\:bg-amber-800\/50 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: color-mix(in srgb, oklch(47.3% 0.137 46.201) 50%, transparent);
          @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-amber-800) 50%, transparent);
          }
        }
      }
    }
  }
  .dark\:hover\:bg-emerald-800\/50 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: color-mix(in srgb, oklch(43.2% 0.095 166.913) 50%, transparent);
          @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-emerald-800) 50%, transparent);
          }
        }
      }
    }
  }
  .dark\:hover\:bg-red-800\/50 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: color-mix(in srgb, oklch(44.4% 0.177 26.899) 50%, transparent);
          @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-red-800) 50%, transparent);
          }
        }
      }
    }
  }
  .dark\:hover\:bg-sky-800\/50 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: color-mix(in srgb, oklch(44.3% 0.11 240.79) 50%, transparent);
          @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-sky-800) 50%, transparent);
          }
        }
      }
    }
  }
  .dark\:hover\:bg-white\/\[0\.06\] {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          background-color: color-mix(in srgb, #fff 6%, transparent);
          @supports (color: color-mix(in lab, red, red)) {
            background-color: color-mix(in oklab, var(--color-white) 6%, transparent);
          }
        }
      }
    }
  }
  .dark\:hover\:text-blue-400 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-blue-400);
        }
      }
    }
  }
  .dark\:hover\:text-gray-200 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-gray-200);
        }
      }
    }
  }
  .dark\:hover\:text-gray-300 {
    &:where(.dark, .dark *) {
      &:hover {
        @media (hover: hover) {
          color: var(--color-gray-300);
        }
      }
    }
  }
  .dark\:focus\:border-blue-400 {
    &:where(.dark, .dark *) {
      &:focus {
        border-color: var(--color-blue-400);
      }
    }
  }
  .dark\:focus\:ring-blue-400\/20 {
    &:where(.dark, .dark *) {
      &:focus {
        --tw-ring-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 20%, transparent);
        @supports (color: color-mix(in lab, red, red)) {
          --tw-ring-color: color-mix(in oklab, var(--color-blue-400) 20%, transparent);
        }
      }
    }
  }
}
@layer base {
  :root {
    --bg: #141210;
    --bg-main: #141210;
    --bg-sidebar: #1a1815;
    --text-primary: #e8e2da;
    --text-secondary: #a0988e;
    --accent: #0ea5e9;
    --accent-rgb: 14, 165, 233;
    --brand-blue: #0ea5e9;
    --brand-blue-rgb: 14, 165, 233;
    --danger: #f87171;
    --danger-rgb: 248, 113, 113;
    --success: #34d399;
    --warning: #fbbf24;
    --border: #2e2a25;
    --card-bg: #1e1b17;
  }
  :root[data-theme="light"] {
    --bg: #f5f3ef;
    --bg-main: #f5f3ef;
    --bg-sidebar: #e6e0da;
    --text-primary: #1c1815;
    --text-secondary: #5a5248;
    --accent: #0284c7;
    --accent-rgb: 2, 132, 199;
    --brand-blue: #0284c7;
    --brand-blue-rgb: 2, 132, 199;
    --danger: #b91c1c;
    --danger-rgb: 185, 28, 28;
    --success: #2d7d4e;
    --warning: #92400e;
    --border: #c9c3bc;
    --card-bg: #ffffff;
  }
}
@layer components {
  .btn-primary {
    display: inline-flex;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing) * 2);
    border-radius: var(--radius-lg);
    border-style: var(--tw-border-style);
    border-width: 0px;
    background-color: var(--color-accent);
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-white);
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        opacity: 90%;
      }
    }
  }
  .btn-secondary {
    display: inline-flex;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    gap: calc(var(--spacing) * 2);
    border-radius: var(--radius-lg);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-border);
    background-color: transparent;
    padding-inline: calc(var(--spacing) * 4);
    padding-block: calc(var(--spacing) * 2.5);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    --tw-font-weight: var(--font-weight-semibold);
    font-weight: var(--font-weight-semibold);
    color: var(--color-muted);
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &:hover {
      @media (hover: hover) {
        border-color: var(--color-muted);
      }
    }
    &:hover {
      @media (hover: hover) {
        color: var(--color-primary);
      }
    }
  }
  .card {
    border-radius: var(--radius-xl);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-border);
    background-color: var(--color-card);
    padding: calc(var(--spacing) * 5);
  }
  .input {
    height: calc(var(--spacing) * 11);
    width: 100%;
    border-radius: var(--radius-lg);
    border-style: var(--tw-border-style);
    border-width: 1px;
    border-color: var(--color-border);
    background-color: var(--color-surface);
    @supports (color: color-mix(in lab, red, red)) {
      background-color: color-mix(in oklab, var(--color-surface) 50%, transparent);
    }
    padding-inline: calc(var(--spacing) * 3.5);
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
    color: var(--color-primary);
    transition-property: all;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
    &::placeholder {
      color: var(--color-muted);
    }
    &:focus {
      border-color: var(--color-accent);
    }
    &:focus {
      --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }
    &:focus {
      --tw-ring-color: var(--color-accent);
      @supports (color: color-mix(in lab, red, red)) {
        --tw-ring-color: color-mix(in oklab, var(--color-accent) 20%, transparent);
      }
    }
    &:focus {
      --tw-outline-style: none;
      outline-style: none;
    }
  }
}
html.preload *, html.preload *::before, html.preload *::after {
  transition: none !important;
}
html.auth-fade-out {
  background: var(--bg);
}
.dark html.auth-fade-out, html:not([data-theme="light"]).auth-fade-out {
  background: var(--bg);
}
html[data-theme="light"].auth-fade-out {
  background: var(--bg);
}
#app-loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}
#app-loader.visible {
  opacity: 1;
}
#app-loader.hidden {
  opacity: 0;
  pointer-events: none;
}
.loader-spinner {
  width: 30px;
  height: 30px;
  border: 2px solid var(--border);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: loader-spin 0.6s linear infinite;
}
@keyframes loader-spin {
  to {
    transform: rotate(360deg);
  }
}
.main-content > .container {
  transition: opacity 0.2s ease;
  animation: page-in 0.2s ease;
}
html.auth-fade-out .main-content > .container {
  opacity: 0;
}
@keyframes page-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
:root {
  --sidebar-width: 260px;
  --sidebar-bg: #1a1815;
  --sidebar-surface: #1e1b17;
  --sidebar-border: #2e2a25;
  --sidebar-text: #e8e2da;
  --sidebar-text-secondary: #a0988e;
  --sidebar-icon: #a0988e;
  --sidebar-hover-bg: rgba(255, 255, 255, 0.04);
  --sidebar-hover-text: #e8e2da;
  --sidebar-active-bg: rgba(14, 165, 233, 0.10);
  --sidebar-active-text: #0ea5e9;
  --sidebar-accent: #0ea5e9;
}
:root[data-theme="light"] {
  --sidebar-bg: #e6e0da;
  --sidebar-surface: #e0d9d2;
  --sidebar-border: #c9c3bc;
  --sidebar-text: #1c1815;
  --sidebar-text-secondary: #5a5248;
  --sidebar-icon: #5a5248;
  --sidebar-hover-bg: rgba(0, 0, 0, 0.04);
  --sidebar-hover-text: #1c1815;
  --sidebar-active-bg: rgba(2, 132, 199, 0.08);
  --sidebar-active-text: #0284c7;
  --sidebar-accent: #0284c7;
}
.sidebar {
  width: var(--sidebar-width);
  position: relative;
  background: linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg) 100%);
  @supports (color: color-mix(in lab, red, red)) {
    background: linear-gradient(180deg, var(--sidebar-bg) 0%, color-mix(in srgb, var(--sidebar-bg) 92%, #000) 100%);
  }
  border-right: 1px solid var(--sidebar-border);
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  overflow: hidden;
  transition: width 0.25s ease;
}
.sidebar::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(180deg, transparent 5%, var(--sidebar-accent) 20%, var(--sidebar-accent) 80%, transparent 95%);
  opacity: 0.25;
  pointer-events: none;
}
.sidebar .sidebar-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 16px 12px;
  min-height: 52px;
}
.sidebar .brand-icon {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  color: var(--sidebar-accent);
}
.sidebar .brand-logo {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  object-fit: contain;
}
.sidebar .brand-name {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--sidebar-text);
  letter-spacing: -0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sidebar .sidebar-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 12px 8px;
  padding: 8px 10px;
  background: var(--sidebar-surface);
  border: 1px solid var(--sidebar-border);
  border-radius: 8px;
}
.sidebar .sidebar-search .search-icon {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--sidebar-icon);
}
.sidebar .sidebar-search .search-input {
  flex: 1;
  border: none;
  background: transparent;
  color: var(--sidebar-text);
  font-size: 0.82rem;
  outline: none;
  padding: 0;
  min-width: 0;
}
.sidebar .sidebar-search .search-input::placeholder {
  color: var(--sidebar-icon);
  font-size: 0.82rem;
}
.sidebar .nav-sections {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 4px 0;
  scrollbar-width: thin;
  scrollbar-color: var(--sidebar-border) transparent;
}
.sidebar .nav-sections::-webkit-scrollbar {
  width: 3px;
}
.sidebar .nav-sections::-webkit-scrollbar-track {
  background: transparent;
}
.sidebar .nav-sections::-webkit-scrollbar-thumb {
  background: var(--sidebar-border);
  border-radius: 3px;
}
.sidebar .nav-sections::-webkit-scrollbar-thumb:hover {
  background: var(--sidebar-icon);
}
.sidebar .nav-section {
  margin: 0;
  padding: 0;
}
.sidebar .nav-section + .nav-section {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid var(--sidebar-border);
}
.sidebar .section-title {
  padding: 8px 16px 4px;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--sidebar-text-secondary);
}
.sidebar .nav-links {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sidebar .nav-item {
  margin: 0;
  padding: 0 8px;
}
.sidebar .nav-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 12px;
  border-radius: 6px;
  text-decoration: none;
  color: var(--sidebar-text);
  font-size: 0.88rem;
  font-weight: 500;
  position: relative;
  border: none;
  background: transparent;
  cursor: pointer;
  text-align: left;
  font-family: inherit;
  width: 100%;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.sidebar .nav-link:hover {
  background: var(--sidebar-hover-bg);
  color: var(--sidebar-hover-text);
  transform: translateX(3px);
}
.sidebar .nav-link.active {
  background: var(--sidebar-active-bg);
  color: var(--sidebar-active-text);
  font-weight: 600;
}
.sidebar .nav-link.active::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  border-radius: 0 3px 3px 0;
  background: var(--sidebar-accent);
  pointer-events: none;
}
.sidebar .nav-icon {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  color: var(--sidebar-icon);
  transition: color 0.12s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sidebar .nav-link:hover .nav-icon {
  color: var(--sidebar-hover-text);
}
.sidebar .nav-link.active .nav-icon {
  color: var(--sidebar-active-text);
}
.sidebar .nav-text {
  flex: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.sidebar .nav-collapse-chevron {
  flex-shrink: 0;
  width: 14px;
  height: 14px;
  color: var(--sidebar-icon);
  transition: transform 0.2s ease, color 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sidebar .nav-item-collapse.open > .nav-collapse-toggle {
  background: var(--sidebar-accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--sidebar-accent) 5%, transparent);
  }
  color: var(--sidebar-active-text);
  font-weight: 600;
}
.sidebar .nav-item-collapse.open > .nav-collapse-toggle .nav-icon {
  color: var(--sidebar-active-text);
}
.sidebar .nav-item-collapse.open .nav-collapse-chevron {
  transform: rotate(90deg);
  color: var(--sidebar-active-text);
  opacity: 0.9;
}
.sidebar .nav-sub-links {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.25s ease;
}
.sidebar .nav-item-collapse.open .nav-sub-links {
  max-height: 300px;
  padding: 2px 0 4px;
}
.sidebar .nav-sub-link {
  display: block;
  padding: 6px 8px 6px 38px;
  font-size: 0.82rem;
  color: var(--sidebar-text-secondary);
  text-decoration: none;
  border-radius: 4px;
  margin: 1px 0;
  transition: background 0.12s ease, color 0.12s ease;
}
.sidebar .nav-sub-link:hover {
  color: var(--sidebar-hover-text);
  background: var(--sidebar-hover-bg);
}
.sidebar .nav-sub-link.active {
  color: var(--sidebar-active-text);
  background: var(--sidebar-active-bg);
  font-weight: 500;
}
.sidebar .nav-sub-link.disabled {
  color: var(--sidebar-text-secondary);
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
}
.sidebar .nav-disabled-badge {
  font-size: 0.6rem;
  font-weight: 500;
  color: var(--sidebar-text-secondary);
  opacity: 0.45;
  margin-left: 4px;
}
.mobile-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: var(--text-primary);
  cursor: pointer;
  border-radius: 8px;
  transition: background 0.12s ease;
}
.mobile-menu-btn:hover {
  background: rgba(var(--accent-rgb), 0.1);
}
.mobile-menu-btn.active svg {
  transform: rotate(90deg);
  transition: transform 0.25s ease;
}
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  z-index: 998;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
}
.sidebar-overlay.active {
  opacity: 1;
  pointer-events: auto;
}
body.sidebar-open {
  overflow: hidden;
}
@media (max-width: 1024px) {
  .sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: 280px;
    height: 100vh;
    height: 100dvh;
    z-index: 999;
    transform: translateX(-100%);
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
  }
  .sidebar.open {
    transform: translateX(0);
  }
  .mobile-menu-btn {
    display: flex;
  }
  .sidebar-overlay {
    display: block;
    pointer-events: none;
  }
  .sidebar-overlay.active {
    pointer-events: auto;
  }
}
@media (max-width: 576px) {
  .sidebar {
    width: 100%;
    max-width: 320px;
  }
  .sidebar .nav-link {
    padding: 10px 12px;
    min-height: 44px;
    font-size: 0.92rem;
  }
  .sidebar .nav-sub-link {
    padding: 8px 8px 8px 44px;
    min-height: 40px;
  }
}
@media (max-width: 768px) and (orientation: landscape) {
  .sidebar {
    max-width: 280px;
  }
}
[data-theme="dark"] .sidebar {
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.4);
}
@media (prefers-contrast: high) {
  .sidebar {
    border-right-width: 2px;
  }
  .sidebar-overlay {
    background: rgba(0, 0, 0, 0.7);
  }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar, .sidebar-overlay, .mobile-menu-btn svg, .sidebar .nav-link, .sidebar .nav-icon, .sidebar .nav-collapse-chevron {
    transition: none;
  }
}
.dashboard-app * {
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
.dashboard-app {
  background-color: var(--bg-main);
  color: var(--text-primary);
  display: flex;
  min-height: 100vh;
  min-height: 100dvh;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}
.dashboard-app .user-dropdown-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  width: 260px;
  background: var(--bg-sidebar);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.3), 0 2px 8px rgba(0,0,0,0.08);
  padding: 0.75rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px) scale(0.98);
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1000;
  overflow: hidden;
}
.dashboard-app .user-dropdown-menu.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.dashboard-app .dropdown-header {
  padding: 0.75rem 0.875rem 0.625rem;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 0.25rem;
}
.dashboard-app .dropdown-username {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.01em;
}
.dashboard-app .dropdown-email {
  font-size: 0.72rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.dashboard-app .dropdown-role {
  font-size: 0.7rem;
  color: var(--text-secondary);
  font-weight: 400;
  margin-top: 1px;
}
.dashboard-app .dropdown-divider {
  height: 1px;
  background: var(--border);
  margin: 0.375rem 0;
}
.dashboard-app .dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0.625rem 0.875rem;
  border-radius: 8px;
  text-decoration: none;
  color: var(--text-secondary);
  font-size: 0.85rem;
  font-weight: 500;
  transition: all 0.15s ease;
  border: 1px solid transparent;
}
.dashboard-app .dropdown-item:hover {
  background: rgba(var(--brand-blue-rgb), 0.08);
  color: var(--text-primary);
  border-color: rgba(var(--brand-blue-rgb), 0.1);
}
.dashboard-app .dropdown-item svg {
  flex-shrink: 0;
  transition: transform 0.15s ease;
}
.dashboard-app .dropdown-item:hover svg {
  transform: scale(1.05);
  color: var(--brand-blue);
}
.dashboard-app .theme-option {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 1rem;
  border: none;
  background: transparent;
  width: 100%;
  font-size: 0.82rem;
  color: var(--text-secondary);
  cursor: pointer;
  text-align: left;
  transition: background 0.12s, color 0.12s;
  font-family: inherit;
}
.dashboard-app .theme-option:hover {
  background: rgba(var(--brand-blue-rgb), 0.05);
  color: var(--text-primary);
}
.dashboard-app .theme-option .theme-check {
  margin-left: auto;
  opacity: 0;
  transition: opacity 0.12s;
  color: var(--brand-blue);
  font-weight: 700;
  font-size: 0.78rem;
}
.dashboard-app .theme-option.active {
  color: var(--brand-blue);
}
.dashboard-app .theme-option.active .theme-check {
  opacity: 1;
}
.dashboard-app .dropdown-logout {
  color: var(--danger);
}
.dashboard-app .dropdown-logout:hover {
  background: rgba(var(--danger-rgb), 0.08);
  border-color: rgba(var(--danger-rgb), 0.15);
}
.dashboard-app .dropdown-logout:hover svg {
  color: var(--danger);
}
.dashboard-app .main-content {
  flex-grow: 1;
  overflow-y: auto;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  height: 100vh;
  height: 100dvh;
}
.dashboard-app .main-content .container {
  max-width: 100%;
}
.dashboard-app header {
  padding: 0.75rem 1.5rem;
  border-bottom: 1px solid var(--sidebar-border);
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: var(--bg-main);
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 64px;
}
.dashboard-app .user-profile {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dashboard-app .header-right .user-profile {
  padding: 0.35rem 0.75rem;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}
.dashboard-app .header-right .user-profile:hover {
  background: var(--border);
  border-color: var(--border);
}
.dashboard-app .avatar {
  width: 32px;
  height: 32px;
  background: var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dashboard-app .container {
  padding: 2rem;
  margin: 0 auto;
  width: 100%;
  padding-bottom: 4rem;
}
.dashboard-app .dashboard-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  flex-wrap: wrap;
  padding-bottom: 1rem;
}
.dashboard-app .dashboard-title h1 {
  font-size: 1.5rem;
  font-weight: 400;
  margin-bottom: 0.25rem;
}
.dashboard-app .dashboard-title p {
  color: var(--text-secondary);
  font-size: 0.9rem;
  font-weight: 400;
}
.dashboard-app .page-title-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.dashboard-app .page-title-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(var(--accent-rgb), 0.1);
  color: var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.dashboard-app .page-title-icon svg {
  width: 22px;
  height: 22px;
}
.dashboard-app .page-action {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.15s ease;
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 0.25rem;
}
.dashboard-app .page-action:hover {
  background: var(--border);
  color: var(--text-primary);
  border-color: var(--accent);
}
.dashboard-app .stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
  margin-bottom: 1.8rem;
}
.dashboard-app .stat-card .label {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin-bottom: 0.45rem;
}
.dashboard-app .stat-card .value {
  font-size: 1.5rem;
  font-weight: 700;
}
.dashboard-app table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 0.8rem;
  font-size: 0.95rem;
}
.dashboard-app th {
  text-align: left;
  padding: 0.65rem 0.9rem;
  border-bottom: 2px solid var(--border);
  color: var(--text-secondary);
  font-weight: 600;
}
.dashboard-app td {
  padding: 0.6rem 0.9rem;
  border-bottom: 1px solid var(--border);
}
.dashboard-app tr:hover td {
  background-color: rgba(255, 255, 255, 0.02);
}
.dashboard-app .status {
  padding: 3px 9px;
  border-radius: 12px;
  font-size: 0.75rem;
  background-color: var(--border);
}
.dashboard-app .status.active {
  color: #3fb950;
  border: 1px solid rgba(63, 185, 80, 0.25);
}
.dashboard-app .search-container {
  position: relative;
}
.dashboard-app .search-container input {
  background-color: var(--bg-sidebar);
  border: 1px solid var(--border);
  color: var(--text-primary);
  padding: 0.45rem 1rem 0.45rem 2.2rem;
  border-radius: 6px;
  width: 280px;
}
.dashboard-app .search-container i {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-secondary);
}
.dashboard-app .card {
  background-color: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 1.25rem;
}
.dashboard-app .card.stat-card {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.02) inset;
}
.dashboard-app .badge-soft {
  background: rgba(88, 166, 255, 0.09);
  color: var(--accent);
  padding: 4px 8px;
  border-radius: 6px;
  font-weight: 600;
}
.dashboard-app .header-left {
  display: none;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
}
.dashboard-app .header-right {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  position: relative;
  margin-left: auto;
}
@media (max-width: 1024px) {
  .dashboard-app header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1.25rem;
    background: var(--bg-main);
    border-bottom: 1px solid var(--sidebar-border);
    position: sticky;
  }
  .dashboard-app .header-left {
    display: flex;
  }
  .dashboard-app .main-content {
    margin-left: 0;
  }
  .dashboard-app .header-branding {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }
  .dashboard-app .header-logo {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
  }
  .dashboard-app .header-title {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }
  .dashboard-app .header-app-name {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary);
    letter-spacing: -0.02em;
    white-space: nowrap;
  }
}
@media (max-width: 576px) {
  .dashboard-app {
    height: 100vh;
    height: 100dvh;
  }
  .dashboard-app .main-content {
    height: 100vh;
    height: 100dvh;
  }
  .dashboard-app .container {
    padding: 1rem 1rem 4rem;
  }
  .dashboard-app header {
    padding: 0.625rem 1rem;
  }
  .dashboard-app .header-logo {
    width: 28px;
    height: 28px;
  }
  .dashboard-app .header-app-name {
    font-size: 0.85rem;
  }
  .dashboard-app .dashboard-title h1 {
    font-size: 1.25rem;
  }
  .dashboard-app .dropdown-item {
    min-height: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .dashboard-app .user-dropdown-menu {
    transition: none;
  }
}
.dashboard-app .notif-btn {
  position: relative;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: color 0.2s ease;
  flex-shrink: 0;
}
.dashboard-app .notif-btn:hover {
  color: var(--accent);
}
.dashboard-app .notif-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  min-width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--danger);
  color: #fff;
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
  padding: 0 4px;
  box-shadow: 0 0 0 2px var(--card-bg);
}
.dashboard-app .notif-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45);
  z-index: 9998;
  transition: opacity 0.25s ease;
}
.dashboard-app .notif-panel {
  position: fixed;
  top: 0;
  right: 0;
  width: 380px;
  height: 100vh;
  background: var(--card-bg);
  border-left: 1px solid var(--border);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: -8px 0 32px rgba(0,0,0,0.12);
}
.dashboard-app .notif-panel.notif-panel-open {
  transform: translateX(0);
}
.dashboard-app .notif-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 20px 12px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.dashboard-app .notif-panel-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
}
.dashboard-app .notif-panel-close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: var(--bg-sidebar);
  border-radius: 50%;
  cursor: pointer;
  color: var(--text-primary);
  transition: background 0.15s;
}
.dashboard-app .notif-panel-close:hover {
  background: var(--text-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--text-primary) 8%, transparent);
  }
}
.dashboard-app .notif-panel-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.dashboard-app .notif-panel-tab {
  flex: 1;
  padding: 12px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
}
.dashboard-app .notif-panel-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.dashboard-app .notif-panel-tab:hover {
  color: var(--text-primary);
}
.dashboard-app .notif-panel-list {
  flex: 1;
  overflow-y: auto;
  padding: 8px 0;
}
.dashboard-app .notif-panel-footer {
  border-top: 1px solid var(--border);
  padding: 12px 20px;
  flex-shrink: 0;
}
.dashboard-app .notif-panel-footer .notif-mark-all {
  width: 100%;
  padding: 10px;
  border: none;
  background: var(--accent);
  color: #fff;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: opacity 0.15s;
}
.dashboard-app .notif-panel-footer .notif-mark-all:hover {
  opacity: 0.9;
}
.dashboard-app .notif-item {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 12px 20px;
  cursor: pointer;
  transition: background 0.15s;
  border-bottom: 1px solid var(--border);
}
.dashboard-app .notif-item:last-child {
  border-bottom: none;
}
.dashboard-app .notif-item:hover {
  background: var(--text-primary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--text-primary) 4%, transparent);
  }
}
.dashboard-app .notif-unread {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 6%, transparent);
  }
}
.dashboard-app .notif-unread:hover {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }
}
.dashboard-app .notif-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}
.dashboard-app .notif-dot.unread {
  background: var(--accent);
  box-shadow: 0 0 0 2px var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);
  }
}
.dashboard-app .notif-body {
  flex: 1;
  min-width: 0;
}
.dashboard-app .notif-title-text {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-primary);
  line-height: 1.3;
}
.dashboard-app .notif-msg {
  font-size: 0.72rem;
  color: var(--text-secondary);
  margin-top: 0.1rem;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dashboard-app .notif-time {
  font-size: 0.65rem;
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.dashboard-app .notif-empty {
  padding: 2rem 1rem;
  text-align: center;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.dashboard-app .notif-load-more {
  padding: 1rem;
  text-align: center;
  font-size: 0.78rem;
  color: var(--text-secondary);
}
html {
  background-color: var(--bg-main);
  overscroll-behavior: none;
}
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--text-primary) !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(255,255,255,0.5) inset !important;
  box-shadow: 0 0 0 1000px rgba(255,255,255,0.5) inset !important;
  transition: background-color 50000s ease-in-out 0s !important;
  caret-color: var(--text-primary);
}
.dark input:-webkit-autofill, .dark input:-webkit-autofill:hover, .dark input:-webkit-autofill:focus, .dark input:-webkit-autofill:active {
  -webkit-text-fill-color: var(--text-primary) !important;
  -webkit-box-shadow: 0 0 0 1000px rgba(255,255,255,0.04) inset !important;
  box-shadow: 0 0 0 1000px rgba(255,255,255,0.04) inset !important;
  caret-color: var(--text-primary);
}
.btn-auth {
  background-color: rgba(255,255,255,0.5);
  border: 1px solid var(--border);
  color: var(--text-primary);
}
.dark .btn-auth {
  background-color: rgba(255,255,255,0.04);
  border-color: rgba(255,255,255,0.1);
  color: var(--text-primary);
}
.btn-auth:hover {
  background-color: rgba(243,244,246,0.5);
}
.dark .btn-auth:hover {
  background-color: rgba(255,255,255,0.01);
}
.auth-card.loading .auth-body > * {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}
.auth-card.loading .auth-body > .auth-loading-state {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
  text-align: center;
  opacity: 1;
  pointer-events: auto;
  animation: auth-fade-in 0.3s ease 0.15s both;
}
.auth-card.loading .auth-body {
  position: relative;
}
@keyframes auth-loading-sweep {
  0% {
    left: -40%;
  }
  100% {
    left: 100%;
  }
}
.auth-loading-sweep {
  animation: auth-loading-sweep 1.2s ease-in-out infinite;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
}
@keyframes auth-fade-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.input-auth {
  background-color: var(--card-bg);
  @supports (color: color-mix(in lab, red, red)) {
    background-color: color-mix(in srgb, var(--card-bg) 60%, var(--bg));
  }
}
.dark .input-auth {
  background-color: rgba(255,255,255,0.04);
}
.otp-row {
  display: flex;
  gap: 6px;
  justify-content: center;
  margin-bottom: 1rem;
}
.auth-checkbox:checked {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
  background-size: 85% 85%;
  background-position: center;
  background-repeat: no-repeat;
}
.otp-input {
  width: 48px;
  height: 56px;
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-primary);
  transition: all 0.15s ease;
}
.dark .otp-input {
  border-color: rgba(255,255,255,0.1);
  color: var(--text-primary);
}
.otp-input:focus {
  outline: none;
  border-color: var(--accent);
}
@media (max-width: 520px) {
  .otp-input {
    width: 44px;
    height: 52px;
    font-size: 1.15rem;
  }
}
body {
  background-color: var(--bg-main) !important;
  letter-spacing: -0.01rem;
  margin: 0;
}
.text-muted {
  color: var(--text-secondary) !important;
}
.card {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border) !important;
}
.toast-container {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: flex-end;
  pointer-events: none;
}
.toast-container > * {
  pointer-events: auto;
}
.toast-item {
  --toast-bg: #ffffff;
  --toast-border: rgba(0, 0, 0, 0.09);
  --toast-text: #1c1815;
  --toast-text-secondary: #6b6560;
  --toast-accent: #8a7f73;
}
[data-theme="dark"] .toast-item {
  --toast-bg: #1e1b17;
  --toast-border: rgba(255, 255, 255, 0.09);
  --toast-text: #e8e2da;
  --toast-text-secondary: #9e978e;
}
.toast-item {
  display: flex;
  align-items: flex-start;
  min-width: 320px;
  max-width: 420px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--toast-bg);
  border: 0.5px solid var(--toast-border);
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  position: relative;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.25s ease, transform 0.25s ease;
}
.toast-item.show {
  opacity: 1;
  transform: translateY(0);
}
.toast-accent-bar {
  width: 4px;
  min-width: 4px;
  background: var(--toast-accent);
  flex-shrink: 0;
  align-self: stretch;
}
.toast-body {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 13px 10px 13px 13px;
  flex: 1;
  min-width: 0;
}
.toast-content {
  flex: 1;
  min-width: 0;
}
.toast-icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--toast-accent);
  opacity: 0.85;
  margin-top: 2px;
}
.toast-icon svg {
  width: 15px;
  height: 15px;
  display: block;
}
.toast-title {
  font-size: 13.5px;
  font-weight: 500;
  line-height: 1.3;
  margin-bottom: 2px;
  color: var(--toast-text);
}
.toast-message {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--toast-text-secondary);
}
.toast-actions {
  margin-top: 6px;
  display: flex;
  gap: 0.5rem;
}
.toast-action {
  display: inline-block;
  font-size: 12px;
  font-weight: 500;
  color: var(--toast-accent);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  letter-spacing: 0.01em;
  text-decoration: none;
}
.toast-close {
  all: unset;
  cursor: pointer;
  flex-shrink: 0;
  opacity: 0.18;
  font-size: 13px;
  line-height: 1;
  padding-top: 2px;
  transition: opacity 0.2s ease;
  color: currentColor;
}
.toast-close:hover {
  opacity: 0.45;
}
.toast-close:focus-visible {
  opacity: 0.6;
  outline: none;
}
.toast-close svg {
  display: block;
  pointer-events: none;
}
.toast-progress {
  position: absolute;
  bottom: 0;
  left: 4px;
  right: 0;
  height: 2.5px;
  background: var(--toast-accent);
  opacity: 0.2;
  transform-origin: left;
  animation: toast-progress-shrink var(--toast-duration, 4s) linear forwards;
}
.toast-success, .toast-item[data-type="success"] {
  --toast-accent: #1a7d45;
}
.toast-error, .toast-item[data-type="error"] {
  --toast-accent: #c0392b;
}
.toast-warning, .toast-item[data-type="warning"] {
  --toast-accent: #b45309;
}
.toast-info, .toast-item[data-type="info"] {
  --toast-accent: #1565c0;
}
.toast-download, .toast-item[data-type="download"] {
  --toast-accent: #5046e5;
}
[data-theme="dark"] .toast-success, [data-theme="dark"] .toast-item[data-type="success"] {
  --toast-accent: #3dba6a;
}
[data-theme="dark"] .toast-error, [data-theme="dark"] .toast-item[data-type="error"] {
  --toast-accent: #f06b6b;
}
[data-theme="dark"] .toast-warning, [data-theme="dark"] .toast-item[data-type="warning"] {
  --toast-accent: #e09a3a;
}
[data-theme="dark"] .toast-info, [data-theme="dark"] .toast-item[data-type="info"] {
  --toast-accent: #5b9fe8;
}
[data-theme="dark"] .toast-download, [data-theme="dark"] .toast-item[data-type="download"] {
  --toast-accent: #8b82f7;
}
@keyframes toast-progress-shrink {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}
@media (max-width: 576px) {
  .toast-container {
    right: 1rem;
    left: auto;
    bottom: 1rem;
    align-items: flex-end;
  }
  .toast-item {
    width: auto;
    max-width: calc(100vw - 2rem);
    min-width: 200px;
  }
}
.collapse:not(.show) {
  display: none;
}
.collapse.show {
  display: block;
}
.empty-state {
  text-align: center;
  padding: 4rem 1rem;
  color: var(--text-secondary);
}
.empty-state svg {
  margin-bottom: 1rem;
}
.empty-state h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.empty-state p {
  margin: 0 auto 1rem;
  font-size: 0.88rem;
  max-width: 360px;
}
.ml-store-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 0;
  margin-bottom: 1rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.btn-primary-tab {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.55rem 1.2rem;
  background: var(--accent);
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
}
.incomplete-banner {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: rgba(243, 156, 18, 0.1);
  border: 1px solid #f39c12;
  border-radius: 10px;
  margin-bottom: 1.5rem;
}
.incomplete-banner svg {
  flex-shrink: 0;
  color: #f39c12;
}
.banner-text {
  flex: 1;
}
.banner-text strong {
  display: block;
  font-size: 0.9rem;
  color: var(--text-primary);
}
.banner-text p {
  margin: 0.2rem 0 0;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.banner-actions {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
}
.btn-resume {
  padding: 0.5rem 1.2rem;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  background: #f39c12;
  color: #fff;
  transition: background 0.12s;
}
.btn-resume:hover {
  background: #e08e0b;
}
.btn-reset {
  padding: 0.5rem 1.2rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-reset:hover {
  border-color: #e74c3c;
  color: #e74c3c;
}
.price-breadcrumb {
  margin-bottom: 1.25rem;
}
.price-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s;
}
.price-back:hover {
  color: var(--accent);
}
.price-steps {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 1.5rem 0;
  margin: 1rem 0 2rem;
}
.price-step {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.5rem;
  border-radius: 6px;
  transition: all 0.2s ease;
  color: var(--text-secondary);
  font-size: 0.78rem;
  font-weight: 500;
}
.price-step .step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--border);
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 700;
  transition: all 0.2s ease;
}
.price-step.active {
  color: var(--text-primary);
}
.price-step.active .step-num {
  background: var(--accent);
  color: #fff;
}
.price-step.completed .step-num {
  background: #27ae60;
  color: #fff;
}
.step-connector {
  width: 8rem;
  flex: none;
  height: 2px;
  background: var(--border);
  margin: 0 0.15rem;
  transition: background 0.2s ease;
}
.upload-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}
.upload-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(var(--accent-rgb), 0.1);
  color: var(--accent);
  flex-shrink: 0;
}
.upload-card h3 {
  margin: 0 0 0.15rem;
  font-size: 0.95rem;
  color: var(--text-primary);
}
.upload-desc {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}
.upload-card .upload-desc {
  margin: 0;
}
.file-validation {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0.85rem;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 500;
  margin-top: 0.75rem;
}
.file-validation.file-error {
  background: rgba(231, 76, 60, 0.08);
  border: 1px solid rgba(231, 76, 60, 0.25);
  color: #e74c3c;
}
.file-validation.file-success {
  background: rgba(39, 174, 96, 0.08);
  border: 1px solid rgba(39, 174, 96, 0.25);
  color: #27ae60;
}
.file-validation.file-warning {
  background: rgba(243, 156, 18, 0.08);
  border: 1px solid rgba(243, 156, 18, 0.25);
  color: #e67e22;
}
.fv-icon {
  flex-shrink: 0;
}
.upload-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}
.preview-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.25rem;
}
.preview-card-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.preview-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(39, 174, 96, 0.1);
  color: #27ae60;
  flex-shrink: 0;
}
.preview-card h3 {
  margin: 0 0 0.15rem;
  font-size: 0.95rem;
  color: var(--text-primary);
}
.preview-card-desc {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0;
}
.preview-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.preview-metric {
  display: flex;
  flex-direction: column;
  padding: 0.75rem;
  background: var(--bg);
  border-radius: 8px;
  border: 1px solid var(--border);
}
.preview-metric-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
  font-weight: 600;
  margin-bottom: 0.2rem;
}
.preview-metric-value {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
}
.preview-warning {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem 0.85rem;
  background: rgba(243, 156, 18, 0.08);
  border-radius: 8px;
  font-size: 0.8rem;
  color: #e67e22;
  margin-bottom: 1.25rem;
  line-height: 1.4;
}
.preview-warning svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.preview-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
}
.process-card-header {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.25rem;
}
.process-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: rgba(var(--accent-rgb), 0.1);
  color: var(--accent);
  flex-shrink: 0;
}
.process-card-icon svg {
  animation: spin 1.5s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.process-card h3 {
  margin: 0 0 0.15rem;
  font-size: 0.95rem;
  color: var(--text-primary);
}
.process-card-desc {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0;
}
.process-actions {
  margin-top: 1rem;
  display: flex;
  justify-content: flex-end;
}
.btn-cancel-batch {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  border: 1px solid rgba(231, 76, 60, 0.3);
  border-radius: 8px;
  background: transparent;
  color: #e74c3c;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
}
.btn-cancel-batch:hover {
  background: rgba(231, 76, 60, 0.08);
  border-color: #e74c3c;
}
.btn-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.2rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: transparent;
  color: var(--text-primary);
  text-decoration: none;
  transition: all 0.15s;
}
.btn-back:hover {
  border-color: var(--text-secondary);
  background: var(--border);
}
.pw-centered {
  margin: 2rem 0 0;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.pw-hero-upload {
  max-width: 640px;
  margin: 0 auto;
}
.pw-hero-step {
  max-width: 720px;
  margin: 0 auto;
}
.pw-steps {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 680px;
  margin: 0 auto 2rem;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.pw-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  flex: 1;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
  position: relative;
}
.pw-step-circle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--border);
  color: var(--text-secondary);
  font-size: 0.82rem;
  font-weight: 700;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  z-index: 1;
  flex-shrink: 0;
}
.pw-step.active .pw-step-circle {
  background: var(--accent);
  color: #fff;
  box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.15);
}
.pw-step.completed .pw-step-circle {
  background: #22c55e;
  color: #fff;
}
.pw-step.completed.active .pw-step-circle {
  background: #22c55e;
  color: #fff;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.15);
}
.pw-step-label {
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--text-secondary);
  white-space: nowrap;
  transition: color 0.2s ease;
}
.pw-step.active .pw-step-label {
  color: var(--text-primary);
  font-weight: 600;
}
.pw-step.completed .pw-step-label {
  color: #22c55e;
}
.pw-step-connector {
  flex: 1;
  height: 2px;
  background: var(--border);
  margin: 0 0.25rem;
  margin-bottom: 1.5rem;
  transition: background 0.3s ease;
  min-width: 20px;
}
.pw-step-connector.done {
  background: #22c55e;
}
.pw-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 2rem 2.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04);
  transition: box-shadow 0.2s ease;
}
.pw-card:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,0.06), 0 8px 24px rgba(0,0,0,0.06);
}
.pw-card-title {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}
.pw-card-desc {
  margin: 0 0 1.5rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.5;
}
.pw-hero-upload {
  text-align: center;
  padding: 0.5rem 0 1rem;
}
.pw-hero-step {
  text-align: center;
  padding: 1rem 0 1.5rem;
}
.pw-hero-title {
  margin: 0 0 0.35rem;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text-primary);
  letter-spacing: -0.02em;
}
.pw-hero-desc {
  margin: 0 0 2rem;
  font-size: 0.88rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.pw-hero-upload .pw-drop {
  padding: 3rem 1.5rem;
}
.pw-hero-upload .pw-file-label svg {
  color: var(--accent);
  opacity: 0.6;
}
.pw-hero-upload .pw-file-text {
  font-size: 0.95rem;
}
.pw-hero-upload .pw-validation {
  text-align: left;
}
.pw-hero-upload .pw-template-link {
  margin-top: 1.25rem;
}
.pw-hero-step .pw-preview-actions {
  margin-top: 1.5rem;
}
.pw-review-grid {
  display: flex;
  gap: 1.5rem;
  align-items: flex-start;
  text-align: left;
  margin-top: 1.5rem;
}
.pw-review-left {
  flex: 0 0 180px;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.pw-review-right {
  flex: 1;
  min-width: 0;
}
.pw-review-section-title {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 0.5rem;
}
.pw-review-summary {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.pw-review-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--border);
  gap: 0.5rem;
}
.pw-review-item:last-child {
  border-bottom: none;
}
.pw-ri-label {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.pw-ri-value {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.pw-review-grid + .pw-preview-warning {
  margin-top: 1.25rem;
}
@media (max-width: 640px) {
  .pw-review-grid {
    flex-direction: column;
  }
  .pw-review-left {
    flex: none;
    width: 100%;
  }
}
.pw-drop {
  border: 2px dashed var(--border);
  border-radius: 14px;
  padding: 2.5rem 1.5rem;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
  cursor: pointer;
  margin-bottom: 1rem;
}
.pw-drop:hover, .pw-drop.dragover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.04);
  box-shadow: 0 0 28px rgba(var(--accent-rgb), 0.06);
}
.pw-drop.dragover {
  transform: scale(1.01);
}
.pw-file-input {
  display: none;
}
.pw-file-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  width: 100%;
}
.pw-file-label svg {
  color: var(--text-secondary);
  transition: transform 0.3s ease;
}
.pw-drop:hover .pw-file-label > svg:first-child {
  transform: translateY(-4px);
  color: var(--accent);
}
.pw-file-text {
  font-size: 0.88rem;
  color: var(--text-secondary);
}
.pw-file-name {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--accent);
  margin-top: -0.25rem;
}
.pw-file-badges {
  display: flex;
  gap: 0.4rem;
  margin-top: 0.25rem;
}
.pw-file-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  font-size: 0.68rem;
  font-weight: 600;
  background: rgba(var(--accent-rgb), 0.08);
  color: var(--accent);
  border: 1px solid rgba(var(--accent-rgb), 0.15);
}
.pw-validation {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0.85rem;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 500;
  margin-bottom: 1rem;
}
.pw-validation.file-error {
  background: rgba(231,76,60,0.08);
  border: 1px solid rgba(231,76,60,0.25);
  color: #e74c3c;
}
.pw-validation.file-success {
  background: rgba(39,174,96,0.08);
  border: 1px solid rgba(39,174,96,0.25);
  color: #27ae60;
}
.pw-validation.file-warning {
  background: rgba(243,156,18,0.08);
  border: 1px solid rgba(243,156,18,0.25);
  color: #e67e22;
}
.pw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 0.7rem 1.5rem;
  border-radius: 10px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  text-decoration: none;
  border: none;
}
.pw-btn-primary {
  background: rgba(var(--accent-rgb), 0.06);
  color: var(--accent);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  transition: all 0.2s ease;
}
.pw-btn-primary:hover {
  background: rgba(var(--accent-rgb), 0.1);
  border-color: var(--accent);
  transform: translateY(-1px);
}
.pw-btn-primary:active {
  transform: translateY(0);
}
.pw-btn-primary:disabled {
  opacity: 0.5;
  cursor: default;
  box-shadow: none;
  transform: none;
}
.pw-btn-outline {
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-primary);
  transition: all 0.2s ease;
}
.pw-btn-outline:hover {
  border-color: var(--text-secondary);
  background: var(--border);
  transform: translateY(-1px);
}
.pw-btn-full {
  width: 100%;
}
.pw-btn-success {
  background: #27ae60;
  color: #fff;
  box-shadow: 0 2px 8px rgba(39,174,96,0.15);
  transition: all 0.2s ease;
}
.pw-btn-success:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(39,174,96,0.25);
}
.pw-btn-success:active {
  transform: translateY(0);
}
.pw-btn-secondary {
  background: rgba(39,174,96,0.06);
  color: #27ae60;
  border: 1px solid rgba(39,174,96,0.2);
  font-weight: 500;
  transition: all 0.2s ease;
}
.pw-btn-secondary:hover {
  background: rgba(39,174,96,0.1);
  border-color: #27ae60;
  transform: translateY(-1px);
}
.pw-btn-secondary:active {
  transform: translateY(0);
}
.pw-template-link {
  text-align: center;
  margin-top: 1rem;
}
.pw-template-link a {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s;
}
.pw-template-link a:hover {
  color: var(--accent);
}
.pw-preview-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.5rem;
  margin-bottom: 1rem;
  max-width: 100%;
}
.pw-preview-metric {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: var(--bg-secondary);
  border: 1px solid var(--border);
  border-radius: 8px;
}
.pw-preview-metric:last-child {
  grid-column: 1 / -1;
}
.pw-pm-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.pw-pm-value {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}
.pw-preview-warning {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: rgba(243,156,18,0.08);
  border-radius: 8px;
  font-size: 0.82rem;
  color: #e67e22;
  margin-bottom: 1.25rem;
  line-height: 1.5;
}
.pw-preview-warning svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.pw-preview-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
}
.pw-progress {
  margin: 2rem 0 1rem;
}
.pw-progress-counter {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.65rem;
  font-variant-numeric: tabular-nums;
}
.pw-percent {
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.pw-progress-counter .pw-pct {
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.pw-progress-track {
  height: 14px;
  background: var(--border);
  background-image: repeating-linear-gradient( 90deg, transparent 0, transparent 8px, rgba(0,0,0,0.06) 8px, rgba(0,0,0,0.06) 9px );
  border-radius: 4px;
  overflow: hidden;
}
.pw-progress-fill {
  height: 100%;
  background: #27ae60;
  background-image: repeating-linear-gradient( 90deg, transparent 0, transparent 8px, rgba(255,255,255,0.12) 8px, rgba(255,255,255,0.12) 9px );
  border-radius: 4px;
  transition: width 0.4s ease;
}
.pw-progress-text {
  display: none;
}
.pw-eta {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0.75rem 0 1.5rem;
  text-align: right;
}
.pw-logs {
  max-height: 250px;
  overflow-y: auto;
  font-size: 0.78rem;
  font-family: 'SF Mono', Monaco, Consolas, monospace;
  border-top: 1px solid var(--border);
  padding: 0.75rem 0 0;
  margin-top: 0.5rem;
}
.pw-logs .log-entry {
  padding: 0.25rem 0;
  display: flex;
  gap: 0.5rem;
  align-items: baseline;
  transition: background 0.12s;
  border-radius: 4px;
}
.pw-logs .log-entry:hover {
  background: rgba(var(--accent-rgb), 0.03);
}
.pw-logs .log-entry + .log-entry {
  border-top: 1px solid var(--border);
  padding-top: 0.35rem;
  margin-top: 0.2rem;
}
.pw-card-result {
  text-align: center;
}
.pw-result-title {
  margin: 0 0 1.25rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
}
.pw-result-body {
  display: flex;
  gap: 3rem;
  align-items: center;
  justify-content: center;
  margin: 1.5rem 0;
}
.pw-result-chart {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.pw-result-chart canvas {
  width: 160px;
  height: 160px;
}
.pw-result-labels {
  display: flex;
  gap: 1rem;
  font-size: 0.82rem;
}
.pw-lbl {
  color: var(--text-secondary);
  font-weight: 500;
}
.pw-lbl strong {
  font-size: 1rem;
  font-weight: 500;
}
.pw-lbl.ok strong {
  color: #27ae60;
}
.pw-lbl.err strong {
  color: #e74c3c;
}
.pw-result-stats {
  text-align: left;
  min-width: 200px;
}
.pw-stat {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.4rem 0;
  font-size: 0.85rem;
  gap: 1rem;
  border-bottom: 1px solid var(--border);
}
.pw-stat:last-child {
  border-bottom: none;
}
.pw-stat + .pw-stat {
  margin-top: 0;
}
.pw-stat-label {
  color: var(--text-secondary);
  flex-shrink: 0;
  font-size: 0.8rem;
}
.pw-stat-val {
  font-weight: 500;
  color: var(--text-primary);
  text-align: right;
  word-break: break-all;
  min-width: 0;
}
.pw-stat.ok .pw-stat-val {
  color: #27ae60;
}
.pw-stat.err .pw-stat-val {
  color: #e74c3c;
}
.pw-stat-batchid {
  font-family: 'SF Mono', monospace;
  font-size: 0.78rem;
}
.pw-valid-errors {
  text-align: left;
  padding: 0.75rem 1rem;
  background: rgba(231,76,60,0.06);
  border-radius: 8px;
  font-size: 0.82rem;
  color: #e74c3c;
  margin-bottom: 1rem;
}
.pw-valid-errors ul {
  margin: 0.3rem 0 0;
  padding-left: 1.25rem;
}
.pw-result-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 1rem;
}
.modal-eta {
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-top: -0.5rem;
  padding-bottom: 0.75rem;
}
.activity-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.activity-count {
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.activity-filters {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.activity-filters .s-input {
  flex: 1;
  min-width: 200px;
  height: 40px;
  font-weight: 400;
  text-align: left;
}
.activity-filters select {
  height: 40px;
  padding: 0 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--card-bg);
  color: var(--text-primary);
  outline: none;
  min-width: 160px;
  cursor: pointer;
}
.activity-filters select:focus {
  border-color: var(--accent);
}
.activity-filters .ut-btn {
  height: 40px;
}
.activity-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 40px;
  padding: 0 1.25rem;
  background: rgba(var(--accent-rgb), 0.06);
  color: var(--accent);
  border: 1px solid rgba(var(--accent-rgb), 0.2);
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  text-decoration: none;
  font-family: inherit;
}
.activity-btn:hover {
  background: rgba(var(--accent-rgb), 0.1);
  border-color: var(--accent);
}
.activity-wrap {
  max-width: 100%;
}
.activity-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
}
.activity-count {
  font-size: 0.78rem;
  color: var(--text-secondary);
  font-feature-settings: "tnum";
}
.activity-filters {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.activity-filters .s-input {
  flex: 1;
  min-width: 200px;
  height: 38px;
  font-weight: 400;
  text-align: left;
  font-size: 0.82rem;
  background: var(--bg);
}
.activity-filters select {
  height: 38px;
  padding: 0 0.65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.82rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  min-width: 150px;
  cursor: pointer;
}
.activity-filters select:focus {
  border-color: var(--accent);
}
.activity-log {
  display: flex;
  flex-direction: column;
}
.activity-log-row {
  display: grid;
  grid-template-columns: 140px 100px 150px 1fr 110px;
  gap: 0;
  align-items: center;
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--border);
  transition: background 0.12s ease;
  position: relative;
}
.activity-log-row:hover {
  background: rgba(var(--accent-rgb), 0.015);
}
.activity-log-row:first-child {
  border-top: 1px solid var(--border);
}
.alc-time {
  font-size: 0.75rem;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  color: var(--text-secondary);
  font-feature-settings: "tnum";
  opacity: 0.7;
}
.alc-user {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
}
.alc-action {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.alc-action-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
  opacity: 0.7;
}
.alc-action-label {
  font-size: 0.78rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.alc-auth .alc-action-dot {
  background: #27ae60;
}
.alc-auth .alc-action-label {
  color: #27ae60;
}
.alc-modify .alc-action-dot {
  background: var(--accent);
}
.alc-modify .alc-action-label {
  color: var(--accent);
}
.alc-delete .alc-action-dot {
  background: #ef4444;
}
.alc-delete .alc-action-label {
  color: #ef4444;
}
.alc-export .alc-action-dot {
  background: #f59e0b;
}
.alc-export .alc-action-label {
  color: #f59e0b;
}
.alc-desc {
  font-size: 0.82rem;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding-right: 1rem;
}
.alc-ip {
  font-size: 0.7rem;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  color: var(--text-secondary);
  opacity: 0.5;
  text-align: right;
  font-feature-settings: "tnum";
}
.activity-log-header {
  display: grid;
  grid-template-columns: 140px 100px 150px 1fr 110px;
  gap: 0;
  align-items: center;
  padding: 0.4rem 0.75rem 0.4rem;
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.5;
  border-bottom: 1px solid var(--border);
}
.activity-empty {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.activity-pages {
  display: flex;
  justify-content: center;
  gap: 0.3rem;
  margin-top: 1.5rem;
}
.activity-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  height: 30px;
  padding: 0 0.35rem;
  border: 1px solid transparent;
  border-radius: 5px;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-decoration: none;
  transition: all 0.15s ease;
}
.activity-page:hover {
  border-color: var(--border);
}
.activity-page.active {
  color: var(--accent);
  border-color: rgba(var(--accent-rgb), 0.15);
  background: rgba(var(--accent-rgb), 0.04);
}
.upload-section {
  max-width: 100%;
}
.upload-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.file-drop {
  border: 2px solid var(--border);
  border-radius: 10px;
  padding: 1.5rem;
  transition: all 0.15s;
  cursor: pointer;
}
.file-drop:hover, .file-drop.dragover {
  border-color: var(--accent);
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 5%, transparent);
  }
}
.file-input {
  display: none;
}
.file-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.file-text {
  font-weight: 500;
}
.file-name {
  font-size: 0.78rem;
  color: var(--accent);
  font-weight: 600;
}
.btn-upload {
  padding: 0.6rem 1.5rem;
  border: none;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--accent);
  color: #fff;
  transition: background 0.15s, opacity 0.15s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.btn-upload:hover {
  background: var(--accent);
  filter: brightness(1.15);
}
.btn-upload:disabled {
  background: var(--border);
  color: var(--text-secondary);
  cursor: not-allowed;
  opacity: 0.6;
}
.btn-upload-new {
  padding: 0.45rem 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-upload-new:hover {
  border-color: var(--accent);
}
.upload-info {
  margin-top: 1.5rem;
  text-align: left;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.upload-info strong {
  display: block;
  margin-bottom: 0.35rem;
  color: var(--text-primary);
}
.upload-info ul {
  margin: 0;
  padding-left: 1.25rem;
}
.upload-info li {
  margin-bottom: 0.3rem;
  line-height: 1.45;
}
.upload-info code {
  background: var(--border);
  padding: 0.1rem 0.3rem;
  border-radius: 3px;
  font-size: 0.78rem;
}
.btn-template {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--text-primary);
  background: transparent;
  transition: all 0.15s;
  white-space: nowrap;
}
.btn-template:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.processing-section {
  max-width: 100%;
}
.process-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.75rem;
}
.btn-execute {
  padding: 0.55rem 2rem;
  background: linear-gradient(135deg, #27ae60, #2ecc71);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.btn-execute:hover {
  opacity: 0.9;
}
.preview-note {
  margin-top: 0.75rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.process-notice {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem;
  background: rgba(231, 76, 60, 0.08);
  border-radius: 8px;
  font-size: 0.8rem;
  color: #e74c3c;
  margin-bottom: 0.75rem;
  line-height: 1.4;
}
.process-notice svg {
  flex-shrink: 0;
  margin-top: 2px;
}
.process-eta {
  font-size: 0.78rem;
  color: var(--text-secondary);
  margin-bottom: 0.75rem;
  font-weight: 600;
}
.modal-eta {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin: 0.5rem 0 0.75rem;
  font-weight: 600;
  text-align: center;
}
.warn-strong {
  background: rgba(231, 76, 60, 0.08) !important;
  color: #e74c3c !important;
  margin-bottom: 0 !important;
}
.progress-wrap {
  margin-bottom: 1rem;
}
.progress-bar-track {
  height: 8px;
  background: var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.progress-bar-fill {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #27ae60, #2ecc71);
  border-radius: 4px;
  transition: width 0.3s ease;
}
.progress-text {
  margin-top: 0.5rem;
  font-size: 0.82rem;
  color: var(--text-secondary);
  font-weight: 600;
}
.process-logs {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  max-height: 200px;
  overflow-y: auto;
  font-size: 0.78rem;
}
.log-entry {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.2rem 0.4rem;
  border-radius: 3px;
}
.log-entry.log-ok {
  color: #27ae60;
}
.log-entry.log-err {
  color: #e74c3c;
}
.log-entry .log-sku {
  font-weight: 600;
  color: var(--text-primary);
}
.results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.results-header h2 {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.validation-errors {
  background: rgba(231, 76, 60, 0.08);
  border: 1px solid #e74c3c;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  font-size: 0.82rem;
  color: #e74c3c;
}
.validation-errors ul {
  margin: 0.35rem 0 0;
  padding-left: 1.25rem;
}
.results-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.results-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.75rem;
}
.results-table th {
  text-align: left;
  padding: 0.5rem 0.6rem;
  font-weight: 500;
  color: var(--text-secondary);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.results-table td {
  padding: 0.4rem 0.7rem;
  border-bottom: 1px solid var(--border);
  color: var(--text-primary);
}
.results-table tr:last-child td {
  border-bottom: none;
}
.results-table .row-error td {
  background: rgba(231, 76, 60, 0.03);
}
.price-cell {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.price-cell.pos {
  color: #27ae60;
}
.price-cell.neg {
  color: #e74c3c;
}
.msg-cell {
  max-width: 250px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--text-secondary) !important;
}
.badge-ok {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  background: #27ae60;
  color: #fff;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 500;
}
.badge-err {
  display: inline-block;
  padding: 0.1rem 0.4rem;
  background: #e74c3c;
  color: #fff;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 500;
}
.results-table-wrap .dt-container .dt-search {
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.7rem 0;
}
.results-table-wrap .dt-container .dt-search label {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.results-table-wrap .dt-container .dt-search input {
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.35rem 0.6rem;
  font-size: 0.78rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s;
  width: 200px;
}
.results-table-wrap .dt-container .dt-search input:focus {
  border-color: var(--accent);
}
.results-table-wrap .dt-container .dt-paging nav {
  display: flex;
  justify-content: flex-end;
  gap: 0.15rem;
  padding: 0.5rem 0.7rem;
}
.results-table-wrap .dt-container .dt-paging button {
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0.2rem 0.5rem;
  font-size: 0.72rem;
  background: transparent;
  color: var(--text-primary);
  cursor: pointer;
  transition: border-color 0.12s;
}
.results-table-wrap .dt-container .dt-paging button.current {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.results-table-wrap .dt-container .dt-paging button:hover:not(.current) {
  border-color: var(--accent);
}
.results-table-wrap .dt-container .dt-layout-row:last-child {
  justify-content: space-between;
  align-items: center;
}
.results-table-wrap .dt-container .dt-info {
  font-size: 0.72rem;
  color: var(--text-secondary);
  padding: 0.5rem 0 0 0.7rem;
}
.results-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.75rem;
}
.results-table-wrap .dt-container .dt-scroll {
  overflow-x: auto;
}
.results-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}
.btn-export {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.78rem;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-export:hover {
  border-color: #27ae60;
  color: #27ae60;
}
.cell-mono {
  font-family: monospace;
  font-size: 0.75rem;
}
.status-badge {
  display: inline-flex;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.3;
  background: var(--border);
  color: var(--text-secondary);
}
.status-active {
  background: var(--success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--success) 15%, transparent);
  }
  color: var(--success);
}
.status-paused {
  background: var(--warning);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--warning) 15%, transparent);
  }
  color: var(--warning);
}
.status-closed {
  background: var(--text-secondary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--text-secondary) 15%, transparent);
  }
  color: var(--text-secondary);
}
.status-review {
  background: var(--danger);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
  }
  color: var(--danger);
}
.status-other {
  background: var(--text-secondary);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--text-secondary) 8%, transparent);
  }
  color: var(--text-secondary);
}
.recent-batches {
  margin-top: 1.5rem;
}
.rb-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}
.rb-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-secondary);
  margin: 0;
}
.rb-search {
  display: flex;
  align-items: center;
}
.rb-search-wrap {
  display: flex;
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0 0.5rem;
  transition: border-color 0.15s;
}
.rb-search-wrap:focus-within {
  border-color: var(--accent);
}
.rb-search-input {
  border: none;
  background: transparent;
  padding: 0.4rem 0.3rem;
  font-size: 0.8rem;
  color: var(--text-primary);
  outline: none;
  min-width: 180px;
}
.rb-search-input::placeholder {
  color: var(--text-secondary);
  opacity: 0.6;
}
.rb-search-btn {
  border: none;
  background: var(--accent);
  color: #fff;
  padding: 0.35rem 0.7rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 6px;
  cursor: pointer;
  margin-left: 0.25rem;
  transition: opacity 0.12s;
}
.rb-search-btn:hover {
  opacity: 0.85;
}
.rb-search-clear {
  display: inline-flex;
  align-items: center;
  color: var(--text-secondary);
  margin-left: 0.15rem;
  padding: 0.2rem;
  border-radius: 4px;
  text-decoration: none;
  transition: color 0.12s, background 0.12s;
}
.rb-search-clear:hover {
  color: #e74c3c;
  background: rgba(231,76,60,0.06);
}
.rb-empty {
  text-align: center;
  padding: 2rem 1rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.rb-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.rb-pagination {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 1rem;
}
.rb-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.rb-card[open] {
  border-color: var(--accent);
}
.rb-summary {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.7rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
  font-size: 0.78rem;
}
.rb-summary::-webkit-details-marker {
  display: none;
}
.rb-summary-chevron {
  display: inline-flex;
  align-items: center;
  color: var(--text-secondary);
  opacity: 0.5;
  transition: transform 0.15s;
  flex-shrink: 0;
}
.rb-card[open] .rb-summary-chevron {
  transform: rotate(90deg);
}
.rb-summary-time {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.rb-body {
  border-top: 1px solid var(--border);
  padding: 0.85rem 1rem;
}
.rb-body-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.rbs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0;
}
.rbs-row + .rbs-row {
  border-top: 1px solid var(--border);
}
.rbs-label {
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.rbs-value {
  font-size: 0.88rem;
  font-weight: 400;
  color: var(--text-primary);
}
.rbs-row.ok .rbs-value {
  color: #27ae60;
}
.rbs-row.err .rbs-value {
  color: #e74c3c;
}
.rbs-value-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.rbs-batchid {
  font-size: 0.75rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  color: var(--text-primary);
  background: var(--bg);
  border: 1px solid var(--border);
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
}
.rbs-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0.2rem;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: 4px;
  transition: color 0.12s, background 0.12s;
  opacity: 0.55;
}
.rbs-copy:hover {
  color: var(--accent);
  background: rgba(52,152,219,0.08);
  opacity: 1;
}
.rb-body-footer {
  margin-top: 0.75rem;
  display: flex;
  justify-content: flex-end;
}
.rb-body-download {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 7px;
  font-size: 0.76rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.rb-body-download:hover {
  border-color: #27ae60;
  color: #27ae60;
}
.results-summary {
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-top: 1rem;
  font-size: 0.82rem;
}
.sum-ok {
  color: #27ae60;
  font-weight: 500;
}
.sum-err {
  color: #e74c3c;
  font-weight: 500;
}
.sum-total {
  color: var(--text-secondary);
}
.modal-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.45);
  z-index: 9999;
}
.modal-box {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 2rem;
  max-width: 520px;
  width: 90%;
  text-align: center;
  box-shadow: 0 16px 48px rgba(0,0,0,0.2);
}
.modal-icon {
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.modal-box h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.modal-desc {
  font-size: 0.88rem;
  color: var(--text-secondary);
  margin: 0 0 1rem;
  line-height: 1.5;
}
.modal-warning {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.65rem 0.8rem;
  background: rgba(243, 156, 18, 0.08);
  border-radius: 8px;
  font-size: 0.8rem;
  color: #e67e22;
  text-align: left;
  margin-bottom: 1.25rem;
  line-height: 1.4;
}
.modal-warning svg {
  flex-shrink: 0;
  margin-top: 1px;
}
.modal-summary {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  margin-bottom: 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
}
.summary-ok {
  color: #27ae60;
}
.summary-err {
  color: #e74c3c;
}
.modal-preview-wrap {
  max-height: 180px;
  overflow-y: auto;
  margin-bottom: 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
}
.preview-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.preview-table th {
  text-align: left;
  padding: 0.4rem 0.6rem;
  background: var(--bg-main);
  color: var(--text-secondary);
  font-weight: 600;
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
}
.preview-table td {
  padding: 0.35rem 0.6rem;
  border-bottom: 1px solid var(--border);
  color: var(--text-primary);
}
.prow-unmatched td {
  opacity: 0.55;
}
.prow-tag {
  display: inline-block;
  font-size: 0.65rem;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  font-weight: 600;
}
.err-tag {
  background: rgba(231, 76, 60, 0.12);
  color: #e74c3c;
}
.preview-more {
  text-align: center;
  padding: 0.4rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
  border-top: 1px solid var(--border);
}
.modal-actions {
  display: flex;
  gap: 0.6rem;
  justify-content: center;
}
.btn-cancel {
  padding: 0.55rem 1.4rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: transparent;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-cancel:hover {
  border-color: #95a5a6;
}
.btn-confirm {
  padding: 0.55rem 1.4rem;
  border: none;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  background: #e67e22;
  color: #fff;
  transition: background 0.12s;
}
.btn-confirm:hover {
  background: #d35400;
}
.history-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}
.history-header h2 {
  margin: 0;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.filter-form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  font-size: 0.85rem;
}
.filter-label {
  font-weight: 600;
  color: var(--text-secondary);
  white-space: nowrap;
}
.filter-select {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.85rem;
  background: var(--card-bg);
  color: var(--text-primary);
  outline: none;
}
.filter-select:focus {
  border-color: var(--accent);
}
.hist-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.hist-chart-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.hist-chart {
  flex-shrink: 0;
  width: 140px;
  height: 140px;
}
.hist-chart-meta {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.hist-chart-stat {
  display: flex;
  flex-direction: column;
}
.hcs-val {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
}
.hcs-val.ok {
  color: #27ae60;
}
.hcs-val.err {
  color: #e74c3c;
}
.hcs-lbl {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
}
.hist-stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}
.hist-stat-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.hist-stat-card:last-child {
  grid-column: 1 / -1;
}
.h-val {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
}
.h-val.lg {
  font-size: 1.4rem;
}
.h-val.ok {
  color: #27ae60;
}
.h-val.err {
  color: #e74c3c;
}
.h-val.date {
  font-size: 0.82rem;
  font-weight: 500;
}
.h-lbl {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.batch-list {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.batch-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.batch-card[open] {
  border-color: var(--accent);
}
.batch-summary {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 1rem;
  cursor: pointer;
  list-style: none;
  user-select: none;
  flex-wrap: wrap;
}
.batch-summary::-webkit-details-marker {
  display: none;
}
.bs-chevron {
  font-size: 0.55rem;
  color: var(--text-secondary);
  transition: transform 0.15s;
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
}
.batch-card[open] .bs-chevron {
  transform: rotate(90deg);
}
.bs-main {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.bs-time {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
}
.bs-by {
  font-size: 0.72rem;
  color: var(--text-secondary);
}
.bs-id {
  font-size: 0.72rem;
  color: var(--text-secondary);
  background: var(--bg);
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  border: 1px solid var(--border);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 140px;
}
.bs-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  padding: 0.25rem;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: 4px;
  transition: color 0.12s, background 0.12s;
}
.bs-copy:hover {
  color: var(--accent);
  background: rgba(52,152,219,0.08);
}
.bs-copy.copied {
  color: #27ae60;
}
.bs-pill {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: auto;
  flex-shrink: 0;
}
.bs-pill-ok {
  font-size: 0.72rem;
  font-weight: 500;
  color: #27ae60;
  background: rgba(39,174,96,0.08);
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
}
.bs-pill-err {
  font-size: 0.72rem;
  font-weight: 500;
  color: #e74c3c;
  background: rgba(231,76,60,0.08);
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
}
.batch-metrics-v2 {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  margin-top: 0.75rem;
}
.metric-v2 {
  flex: 1 1 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 0.5rem;
  background: var(--bg);
  border-right: 1px solid var(--border);
  gap: 0.15rem;
}
.metric-v2:last-child {
  border-right: none;
}
.metric-v2.ok {
  background: rgba(39,174,96,0.05);
}
.metric-v2.err {
  background: rgba(231,76,60,0.05);
}
.metric-v2-val {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.2;
}
.metric-v2.ok .metric-v2-val {
  color: #27ae60;
}
.metric-v2.err .metric-v2-val {
  color: #e74c3c;
}
.metric-v2-lbl {
  font-size: 0.65rem;
  color: var(--text-secondary);
}
.batch-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0.75rem 0;
}
.btn-download {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.8rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.76rem;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-download:hover {
  border-color: #27ae60;
  color: #27ae60;
}
.history-search-bar {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.hsb-notice {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.hsb-notice svg {
  flex-shrink: 0;
  opacity: 0.7;
}
.hsb-form {
  margin-left: auto;
}
.hsb-input-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0 0.5rem;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.hsb-input-wrap:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.08);
}
.hsb-icon {
  color: var(--text-secondary);
  opacity: 0.6;
  margin-right: 0.35rem;
}
.hsb-input {
  border: none;
  background: transparent;
  padding: 0.45rem 0.2rem;
  font-size: 0.82rem;
  color: var(--text-primary);
  outline: none;
  min-width: 220px;
}
.hsb-input::placeholder {
  color: var(--text-secondary);
  opacity: 0.6;
}
.hsb-btn {
  border: none;
  background: var(--accent);
  color: #fff;
  padding: 0.4rem 0.8rem;
  font-size: 0.78rem;
  font-weight: 500;
  border-radius: 6px;
  margin-left: 0.35rem;
  cursor: pointer;
  transition: opacity 0.12s;
}
.hsb-btn:hover {
  opacity: 0.85;
}
.hsb-clear {
  display: inline-flex;
  align-items: center;
  color: var(--text-secondary);
  padding: 0.25rem;
  margin-left: 0.2rem;
  border-radius: 4px;
  text-decoration: none;
  transition: color 0.12s, background 0.12s;
}
.hsb-clear:hover {
  color: #e74c3c;
  background: rgba(231,76,60,0.06);
}
.settings-page {
  max-width: 720px;
}
.settings-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1.25rem;
}
.settings-tab {
  padding: 0.55rem 1.1rem;
  border: none;
  background: none;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color 0.12s, border-color 0.12s;
}
.settings-tab:hover {
  color: var(--text-primary);
}
.settings-tab.active {
  color: var(--accent);
  border-bottom-color: var(--accent);
  font-weight: 600;
}
.settings-panel {
  display: none;
}
.settings-panel.active {
  display: block;
}
.setting-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
  padding: 0.7rem 0;
}
.setting-row + .setting-row {
  border-top: 1px solid var(--border);
}
.setting-info {
  flex: 1;
  min-width: 0;
}
.setting-label {
  display: block;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.15rem;
}
.setting-hint {
  display: block;
  font-size: 0.75rem;
  color: var(--text-secondary);
  line-height: 1.4;
}
.setting-control {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
  padding-top: 0.1rem;
}
.s-input {
  width: 68px;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  text-align: center;
  background: var(--bg-main);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s;
}
.s-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.12);
}
.s-unit {
  font-size: 0.8rem;
  color: var(--text-secondary);
  font-weight: 500;
  white-space: nowrap;
}
.settings-section {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.25rem;
}
.settings-heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}
.setting-value {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text-primary);
  flex-shrink: 0;
}
.settings-footer {
  margin-top: 1.25rem;
  display: flex;
  justify-content: flex-end;
}
.settings-desc {
  margin: -0.5rem 0 1rem;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.setting-value {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text-primary);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.badge-ok {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  background: rgba(39,174,96,0.1);
  color: #27ae60;
  border-radius: 5px;
  font-size: 0.78rem;
  font-weight: 600;
}
.badge-off {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  background: var(--border);
  color: var(--text-secondary);
  border-radius: 5px;
  font-size: 0.78rem;
  font-weight: 600;
}
.btn-settings-link {
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--accent);
  background: transparent;
  transition: all 0.15s;
  cursor: pointer;
}
.btn-settings-link:hover {
  border-color: var(--accent);
  background: rgba(52,152,219,0.08);
}
.btn-logout-all {
  padding: 0.35rem 0.85rem;
  border: 1px solid rgba(231,76,60,0.3);
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  color: #e74c3c;
  background: transparent;
  cursor: pointer;
  transition: all 0.15s;
  white-space: nowrap;
}
.btn-logout-all:hover {
  border-color: #e74c3c;
  background: rgba(231,76,60,0.06);
}
[data-theme="dark"] .btn-settings-link {
  border-color: rgba(255,255,255,0.15);
  color: #60a5fa;
}
[data-theme="dark"] .btn-settings-link:hover {
  border-color: #60a5fa;
  background: rgba(96,165,250,0.1);
}
[data-theme="dark"] .btn-logout-all {
  border-color: rgba(231,76,60,0.4);
  color: #f87171;
}
[data-theme="dark"] .btn-logout-all:hover {
  border-color: #f87171;
  background: rgba(248,113,113,0.08);
}
.pw-field {
  margin-bottom: 0.75rem;
}
.pw-divider {
  height: 1px;
  background: var(--border);
  margin: 1rem 0;
}
.pw-field label {
  display: block;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-secondary);
  margin-bottom: 0.25rem;
}
.pw-input {
  width: 100%;
  padding: 0.5rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.85rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.pw-input:focus {
  border-color: var(--accent);
}
.pw-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.5rem;
}
.pw-rule {
  font-size: 0.7rem;
  color: var(--text-secondary);
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  background: var(--bg);
  border: 1px solid var(--border);
  transition: all 0.12s;
}
.pw-rule.pw-pass {
  color: #27ae60;
  border-color: #27ae60;
  background: rgba(39,174,96,0.06);
}
.batch-inner {
  border-top: 1px solid var(--border);
  padding: 1rem;
}
.batch-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.bi-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.6rem 0.75rem;
  background: var(--bg);
  border-radius: 8px;
  border: 1px solid var(--border);
}
.bi-icon {
  color: var(--accent);
  opacity: 0.8;
  flex-shrink: 0;
}
.bi-text {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.bi-label {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-secondary);
}
.bi-value {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rsc-chart-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  display: flex;
  gap: 1.5rem;
  align-items: center;
}
.rsc-chart-left {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}
.rsc-chart {
  width: 160px;
  height: 160px;
  flex-shrink: 0;
}
.rsc-chart-labels {
  display: flex;
  gap: 1rem;
  justify-content: center;
}
.rsc-chart-lbl {
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.rsc-chart-lbl strong {
  font-weight: 600;
}
.rsc-chart-lbl.ok strong {
  color: #27ae60;
}
.rsc-chart-lbl.err strong {
  color: #e74c3c;
}
.rsc-chart-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  padding-left: 1.5rem;
  border-left: 1px solid var(--border);
}
.rsc-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.45rem 0;
}
.rsc-row + .rsc-row {
  border-top: 1px solid var(--border);
}
.rsc-row .rsc-label {
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.rsc-row .rsc-val {
  font-size: 0.88rem;
  font-weight: 400;
  color: var(--text-primary);
}
.rsc-row.ok .rsc-val {
  color: #27ae60;
}
.rsc-row.err .rsc-val {
  color: #e74c3c;
}
.rsc-batchid {
  font-size: 0.75rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.rsc-actions {
  display: flex;
  gap: 0.6rem;
  align-items: center;
  justify-content: flex-end;
}
.btn-rsc-download {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--text-primary);
  transition: all 0.12s;
}
.btn-rsc-download:hover {
  border-color: #27ae60;
  color: #27ae60;
}
.btn-rsc-new {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.4rem 1rem;
  border: none;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  text-decoration: none;
  background: var(--accent);
  color: #fff;
  transition: opacity 0.12s;
}
.btn-rsc-new:hover {
  opacity: 0.85;
}
.ph-wrap {
  max-width: 100%;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.ph-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}
.ph-stat {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  animation: ph-fade-in 0.35s ease both;
}
.ph-stat:nth-child(1) {
  animation-delay: 0.03s;
}
.ph-stat:nth-child(2) {
  animation-delay: 0.06s;
}
.ph-stat:nth-child(3) {
  animation-delay: 0.09s;
}
.ph-stat:nth-child(4) {
  animation-delay: 0.12s;
}
.ph-stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.ph-stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ph-stat-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.ph-stat-number {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.ph-stat-number--rate {
  color: #22c55e;
}
.ph-stat-number--rate[data-rate="0"] {
  color: var(--text-secondary);
}
.ph-stat-number--rate[data-rate="100"] {
  color: #22c55e;
}
.ph-stat-label {
  font-size: 0.72rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
}
.ph-search {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.85rem 1rem;
  margin-bottom: 1.25rem;
}
.ph-search form {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.ph-search-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.ph-search-group {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.ph-search-icon {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-secondary);
  opacity: 0.5;
  pointer-events: none;
}
.ph-search-input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.2rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  font-family: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.ph-search-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.ph-search-input::placeholder {
  color: var(--text-secondary);
  opacity: 0.6;
}
.ph-search-field {
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.ph-search-label {
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-secondary);
  white-space: nowrap;
}
.ph-date-input {
  padding: 0.45rem 0.65rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  font-family: inherit;
  transition: border-color 0.15s;
  max-width: 160px;
}
.ph-date-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.ph-search-btn {
  padding: 0.5rem 1.25rem;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-primary);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.12s, color 0.12s, background 0.12s;
  white-space: nowrap;
}
.ph-search-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
}
.ph-search-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ph-search-clear {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 500;
  transition: color 0.12s;
}
.ph-search-clear:hover {
  color: #ef4444;
}
.ph-empty {
  text-align: center;
  padding: 3.5rem 1.5rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.ph-empty-icon {
  opacity: 0.2;
  color: var(--text-primary);
  margin-bottom: 0.75rem;
}
.ph-empty h3 {
  margin: 0 0 0.35rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ph-empty p {
  margin: 0 0 1.25rem;
  font-size: 0.88rem;
  color: var(--text-secondary);
}
.ph-empty-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.25rem;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-primary);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 0.12s, color 0.12s, background 0.12s;
}
.ph-empty-btn:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
}
.ph-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.ph-batch {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  transition: box-shadow 0.2s ease;
  animation: ph-fade-in 0.35s ease both;
}
.ph-batch:nth-child(1) {
  animation-delay: 0.03s;
}
.ph-batch:nth-child(2) {
  animation-delay: 0.06s;
}
.ph-batch:nth-child(3) {
  animation-delay: 0.09s;
}
.ph-batch:nth-child(4) {
  animation-delay: 0.12s;
}
.ph-batch:nth-child(5) {
  animation-delay: 0.15s;
}
.ph-batch:nth-child(6) {
  animation-delay: 0.18s;
}
.ph-batch:nth-child(7) {
  animation-delay: 0.21s;
}
.ph-batch:nth-child(8) {
  animation-delay: 0.24s;
}
.ph-batch:nth-child(9) {
  animation-delay: 0.27s;
}
.ph-batch:nth-child(10) {
  animation-delay: 0.30s;
}
.ph-batch:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.ph-batch::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
}
.ph-batch-ok::before {
  background: #22c55e;
}
.ph-batch-warn::before {
  background: #f59e0b;
}
.ph-batch-err::before {
  background: #ef4444;
}
.ph-batch-body {
  padding: 0.85rem 1.15rem 0.85rem 1.35rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.ph-batch-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.ph-batch-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ph-batch-ok .ph-batch-status {
  color: #22c55e;
}
.ph-batch-warn .ph-batch-status {
  color: #f59e0b;
}
.ph-batch-err .ph-batch-status {
  color: #ef4444;
}
.ph-batch-icon {
  display: flex;
}
.ph-batch-status-label {
  font-weight: 600;
}
.ph-batch-time {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-left: 0.25rem;
}
.ph-batch-date {
  font-size: 0.72rem;
  color: var(--text-secondary);
}
.ph-batch-duration {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 500;
  color: var(--text-secondary);
  padding: 0.05rem 0.45rem;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: rgba(128,128,128,0.04);
  margin-left: auto;
}
.ph-batch-meta {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}
.ph-batch-id-lbl {
  font-size: 0.65rem;
  color: var(--text-secondary);
  opacity: 0.5;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.ph-batch-id {
  font-size: 0.78rem;
  font-family: 'SF Mono', Monaco, Consolas, monospace;
  color: var(--text-primary);
  opacity: 0.7;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 360px;
  background: none;
  padding: 0;
}
.ph-batch-copy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: 4px;
  opacity: 0.4;
  transition: opacity 0.12s, color 0.12s, background 0.12s;
}
.ph-batch-copy:hover {
  opacity: 1;
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.08);
}
.ph-batch-copy:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ph-batch-footer {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  padding-top: 0.4rem;
  border-top: 1px solid var(--border);
}
.ph-batch-stat {
  display: inline-flex;
  align-items: baseline;
  gap: 0.2rem;
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.ph-batch-stat-value {
  font-weight: 600;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.ph-batch-stat-value--rate {
  font-weight: 700;
}
.ph-batch-stat-label {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ph-batch-divider {
  width: 1px;
  height: 14px;
  background: var(--border);
  flex-shrink: 0;
}
.ph-batch-spacer {
  flex: 1;
  min-width: 0;
}
.ph-batch-dl {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 0.75rem;
  font-weight: 500;
  transition: border-color 0.12s, color 0.12s;
  opacity: 0.6;
}
.ph-batch-dl:hover {
  opacity: 1;
  border-color: #22c55e;
  color: #22c55e;
}
.ph-batch-dl:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ph-pagination {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 1.5rem;
}
.ph-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  text-decoration: none;
  transition: border-color 0.12s, color 0.12s;
  background: transparent;
  font-family: inherit;
}
.ph-page:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.ph-page:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ph-page.current {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.ph-page-prev, .ph-page-next {
  font-weight: 600;
}
@keyframes ph-fade-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 900px) {
  .ph-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .ph-batch-id {
    max-width: 200px;
  }
}
@media (max-width: 640px) {
  .ph-stats {
    grid-template-columns: 1fr;
  }
  .ph-search-row--dates {
    flex-direction: column;
    align-items: stretch;
  }
  .ph-search-field {
    width: 100%;
  }
  .ph-date-input {
    max-width: none;
    width: 100%;
  }
  .ph-search-btn {
    width: 100%;
    justify-content: center;
  }
  .ph-batch-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .ph-batch-duration {
    margin-left: 0;
  }
  .ph-batch-id {
    max-width: 160px;
  }
  .ph-batch-footer {
    gap: 0.4rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ph-stat, .ph-batch {
    animation: none;
  }
  .ph-stat:hover {
    transform: none;
  }
}
.pw-step-enter {
  animation: pw-fade-slide-in 0.35s ease both;
}
.pw-step-leave {
  animation: pw-fade-slide-out 0.25s ease both;
}
@keyframes pw-fade-slide-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes pw-fade-slide-out {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-8px);
  }
}
.pw-preview-table-wrap {
  margin-bottom: 1.25rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.pw-preview-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.pw-preview-table th {
  background: var(--bg-secondary);
  color: var(--text-secondary);
  font-weight: 600;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.5rem 0.75rem;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.pw-preview-table td {
  padding: 0.4rem 0.75rem;
  color: var(--text-primary);
  border-bottom: 1px solid var(--border);
  font-family: 'SF Mono', monospace;
  font-size: 0.8rem;
}
.pw-preview-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,0.025);
}
.pw-preview-table tbody tr:hover {
  background: rgba(var(--accent-rgb), 0.03);
}
.pw-preview-table tr:last-child td {
  border-bottom: none;
}
.pw-preview-table-more {
  text-align: center;
  padding: 0.4rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
  border-top: 1px solid var(--border);
  background: var(--bg-secondary);
}
.pw-btn-loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}
.pw-btn-loading::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  top: 50%;
  left: 50%;
  margin: -8px 0 0 -8px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: pw-btn-spin 0.6s linear infinite;
}
@keyframes pw-btn-spin {
  to {
    transform: rotate(360deg);
  }
}
.pw-stat {
  animation: pw-stat-in 0.3s ease both;
}
.pw-stat:nth-child(1) {
  animation-delay: 0.05s;
}
.pw-stat:nth-child(2) {
  animation-delay: 0.1s;
}
.pw-stat:nth-child(3) {
  animation-delay: 0.15s;
}
.pw-stat:nth-child(4) {
  animation-delay: 0.2s;
}
.pw-stat:nth-child(5) {
  animation-delay: 0.25s;
}
.pw-stat:nth-child(6) {
  animation-delay: 0.3s;
}
@keyframes pw-stat-in {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.pw-stat-rate-high .pw-stat-val {
  color: #27ae60;
}
.pw-stat-rate-mid .pw-stat-val {
  color: #e67e22;
}
.pw-stat-rate-low .pw-stat-val {
  color: #e74c3c;
}
.pw-logs {
  max-height: 300px;
}
.pw-centered input:focus-visible, .pw-centered button:focus-visible, .pw-centered select:focus-visible, .pw-centered a:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.log-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.log-badge.ok {
  background: rgba(39, 174, 96, 0.12);
  color: #27ae60;
}
.log-badge.err {
  background: rgba(231, 76, 60, 0.12);
  color: #e74c3c;
}
.log-sku {
  font-weight: 600;
  color: var(--text-primary);
  font-family: 'SF Mono', Monaco, Consolas, monospace;
  font-size: 0.75rem;
}
@media (prefers-reduced-motion: reduce) {
  .pw-step-circle, .pw-step-connector, .pw-drop, .pw-file-label svg, .pw-stat, .pw-step-enter, .pw-step-leave {
    animation: none !important;
    transition: none !important;
  }
  .pw-drop:hover .pw-file-label svg {
    transform: none;
  }
  .pw-drop.dragover {
    transform: none;
  }
}
.users-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.us-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.85rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.us-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.us-icon-total {
  background: rgba(99,102,241,0.1);
  color: #6366f1;
}
.us-icon-ok {
  background: rgba(22,163,74,0.1);
  color: #16a34a;
}
.us-icon-warn {
  background: rgba(217,119,6,0.1);
  color: #d97706;
}
.us-icon-info {
  background: rgba(37,99,235,0.1);
  color: #2563eb;
}
.us-body {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.us-val {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
}
.us-lbl {
  font-size: 0.7rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.users-toolbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.ut-search {
  flex: 1;
  min-width: 0;
}
.ut-search-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.55rem 0.85rem;
  width: 100%;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ut-search-field:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.08);
}
.ut-search-field svg {
  color: var(--text-secondary);
  opacity: 0.5;
  flex-shrink: 0;
}
.ut-search-field input {
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 0.88rem;
  outline: none;
  width: 100%;
}
.ut-search-field input::placeholder {
  color: var(--text-secondary);
  opacity: 0.5;
  font-variant-numeric: tabular-nums;
}
.ut-search-clear {
  display: inline-flex;
  color: var(--text-secondary);
  opacity: 0.5;
  transition: opacity 0.12s, color 0.12s;
  text-decoration: none;
}
.ut-search-clear:hover {
  opacity: 1;
  color: #e74c3c;
}
.ut-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.ut-btn-primary {
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
}
.ut-btn-primary:hover {
  background: #15803d;
  border-color: #15803d;
}
.ut-btn-secondary {
  background: var(--bg);
  color: var(--text-primary);
  border-color: var(--border);
}
.ut-btn-secondary:hover {
  background: var(--border);
}
.ut-role-filters {
  display: flex;
  gap: 0.25rem;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}
.ut-role-filter {
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.78rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--text-secondary);
  background: transparent;
  transition: all 0.12s;
}
.ut-role-filter:hover {
  border-color: var(--accent);
  color: var(--text-primary);
}
.ut-role-filter.active {
  background: rgba(52,152,219,0.1);
  color: var(--accent);
  border-color: rgba(52,152,219,0.25);
}
[data-theme="dark"] .ut-role-filter.active {
  background: rgba(52,152,219,0.2);
  color: #60a5fa;
  border-color: rgba(52,152,219,0.3);
}
.ut-table-wrap {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.ut-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}
.ut-table thead {
  background: var(--bg);
}
.ut-table th {
  text-align: left;
  padding: 0.65rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.ut-table td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.ut-table tbody tr:last-child td {
  border-bottom: none;
}
.ut-tr-inactive {
  opacity: 0.5;
}
.ut-tr:hover {
  background: rgba(0,0,0,0.015);
}
.ut-user-cell {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}
.ut-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 0.72rem;
  font-weight: 600;
  color: #fff;
  text-transform: uppercase;
}
.ut-user-info {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.ut-username {
  font-size: 0.84rem;
  font-weight: 500;
  color: var(--text-primary);
}
.ut-email {
  font-size: 0.72rem;
  color: var(--text-secondary);
}
.ut-td-role {
  font-size: 0.82rem;
  color: var(--text-primary);
}
.ut-status-cell {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ut-toggle {
  position: relative;
  display: inline-block;
  width: 34px;
  height: 20px;
  flex-shrink: 0;
  cursor: pointer;
}
.ut-toggle-input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.ut-toggle-slider {
  position: absolute;
  inset: 0;
  background: #d1d5db;
  border-radius: 20px;
  transition: background 0.2s ease;
}
.ut-toggle-slider::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 2px;
  width: 16px;
  height: 16px;
  background: #fff;
  border-radius: 50%;
  transition: transform 0.2s ease;
  box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.ut-toggle-input:checked + .ut-toggle-slider {
  background: #16a34a;
}
.ut-toggle-input:checked + .ut-toggle-slider::before {
  transform: translateX(14px);
}
.ut-toggle-input:disabled + .ut-toggle-slider {
  opacity: 0.35;
  cursor: not-allowed;
}
.ut-status-text {
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.ut-status-text.active {
  color: #16a34a;
}
.ut-status-text.inactive {
  color: #d97706;
}
.ut-2fa-cell {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.ut-2fa-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
}
.ut-2fa-dot.on {
  background: #16a34a;
}
.ut-2fa-dot.off {
  background: #cbd5e1;
}
.ut-activity-cell {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
  color: var(--text-secondary);
  white-space: nowrap;
}
.ut-activity-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.ut-activity-dot.online {
  background: #16a34a;
}
.ut-activity-dot.offline {
  background: #94a3b8;
}
.ut-td-date {
  font-size: 0.78rem;
  color: var(--text-secondary);
  white-space: nowrap;
}
.ut-td-actions {
  text-align: right;
  white-space: nowrap;
}
.ut-edit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  color: var(--text-secondary);
  text-decoration: none;
  transition: all 0.12s;
}
.ut-edit-btn:hover {
  background: rgba(52,152,219,0.08);
  color: var(--accent);
}
.umodal {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.umodal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(2px);
}
.umodal-card {
  position: relative;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.18);
  max-width: 380px;
  width: 100%;
  overflow: hidden;
  animation: umodalIn 220ms cubic-bezier(.22,1,.36,1);
}
@keyframes umodalIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.umodal-body {
  padding: 1.5rem 1.75rem 1rem;
  text-align: center;
}
.umodal-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(217,119,6,0.08);
  color: #d97706;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
}
.umodal-title {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
}
.umodal-text {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.umodal-actions {
  display: flex;
  gap: 0.6rem;
  padding: 0.75rem 1.75rem 1.25rem;
  justify-content: center;
}
.umodal-actions .ut-btn {
  min-width: 110px;
  justify-content: center;
}
.btn-warn {
  background: #d97706;
  color: #fff;
  border-color: #d97706;
}
.btn-warn:hover {
  background: #b45309;
  border-color: #b45309;
}
.btn-danger {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}
.btn-danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}
.users-empty {
  text-align: center;
  padding: 3.5rem 1rem;
  color: var(--text-secondary);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.users-empty svg {
  opacity: 0.3;
}
.users-empty p {
  margin: 0;
  font-size: 0.9rem;
}
.uf-layout {
  max-width: 720px;
}
.uf-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.uf-header {
  padding: 1.5rem 1.75rem 1rem;
  border-bottom: 1px solid var(--border);
}
.uf-header h2 {
  margin: 0 0 0.25rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
}
.uf-header p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.uf-profile {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 1.75rem;
  border-bottom: 1px solid var(--border);
  background: rgba(0,0,0,0.012);
}
.uf-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  box-shadow: inset 0 0 0 2px rgba(255,255,255,0.15);
}
.uf-profile-info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.uf-profile-info h2 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
}
.uf-profile-email {
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.uf-profile-meta {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.2rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.uf-divider {
  opacity: 0.4;
}
.uf-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.uf-section {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--border);
}
.uf-section:last-of-type {
  border-bottom: none;
}
.uf-section-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}
.uf-section-full {
  display: block;
}
.uf-col {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.uf-col h3 {
  margin-bottom: 0.85rem;
}
.uf-meta {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 0.75rem;
  padding: 0.65rem 0.75rem;
  background: var(--bg);
  border-radius: 8px;
}
.uf-meta-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.uf-section h3 {
  margin: 0 0 0.6rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.uf-section-desc {
  margin: -0.3rem 0 0.75rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.uf-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-bottom: 0.9rem;
}
.uf-field:last-child {
  margin-bottom: 0;
}
.uf-field label {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 500;
  font-size: 0.82rem;
  color: var(--text-primary);
}
.uf-field label svg {
  color: var(--text-secondary);
  opacity: 0.6;
  flex-shrink: 0;
}
.uf-field input, .uf-field select, .uf-select {
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-main);
  color: var(--text-primary);
  font-size: 0.88rem;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.uf-field input:focus, .uf-field select:focus, .uf-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.08);
}
.uf-field input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--bg);
}
.uf-hint {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 0.05rem;
}
.uf-hint-inline {
  font-size: 0.75rem;
  color: var(--text-secondary);
  font-weight: 400;
}
.uf-row {
  display: flex;
  gap: 1rem;
}
.uf-row .uf-field {
  flex: 1 1 50%;
  margin-bottom: 0;
}
.uf-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  padding-top: 1rem;
}
[data-theme="dark"] .uf-profile {
  background: rgba(255,255,255,0.015);
}
[data-theme="dark"] .uc-toggle-slider {
  background: #475569;
}
[data-theme="dark"] .user-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}
@media (max-width: 768px) {
  .users-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .users-toolbar {
    flex-direction: column;
    align-items: stretch;
  }
  .ut-search-field {
    max-width: none;
  }
  .users-grid {
    grid-template-columns: 1fr;
  }
  .uf-layout {
    margin: 0 -0.5rem;
  }
  .uf-section, .uf-actions {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }
  .uf-row {
    flex-direction: column;
    gap: 0.9rem;
  }
}
@media (max-width: 576px) {
  .users-stats {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.5rem;
  }
  .us-card {
    padding: 0.65rem 0.75rem;
  }
  .us-val {
    font-size: 1.15rem;
  }
  .uf-actions {
    flex-direction: column;
  }
  .uf-actions .ut-btn {
    width: 100%;
    justify-content: center;
  }
}
@media (max-width: 768px) {
  .uf-section-cols {
    grid-template-columns: 1fr;
    gap: 0;
  }
}
[data-theme="dark"] .umodal-backdrop {
  background: rgba(0,0,0,0.55);
}
[data-theme="dark"] .umodal-icon {
  background: rgba(217,119,6,0.12);
}
.ue-layout {
  display: flex;
  gap: 1.5rem;
  max-width: 1200px;
  margin: 0 auto;
}
.ue-sidebar {
  width: 320px;
  flex-shrink: 0;
}
.ue-sidebar-inner {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  position: sticky;
  top: 1rem;
}
.ue-avatar-section {
  text-align: center;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
  margin-bottom: 1.25rem;
}
.ue-avatar {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  box-shadow: inset 0 0 0 3px rgba(255,255,255,0.15), 0 4px 12px rgba(0,0,0,0.1);
  position: relative;
  margin-bottom: 0.75rem;
}
.ue-avatar-status {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 3px solid var(--card-bg);
}
.ue-avatar-status.online {
  background: #16a34a;
}
.ue-avatar-status.offline {
  background: #94a3b8;
}
.ue-username {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 0.25rem;
}
.ue-online-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
}
.ue-online-status .ue-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #94a3b8;
}
.ue-online-status.online .ue-dot {
  background: #16a34a;
}
.ue-online-status.offline .ue-dot {
  background: #94a3b8;
}
.ue-badges {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}
.ue-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.65rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.ue-badge-admin {
  background: rgba(59, 130, 246, 0.1);
  color: #3b82f6;
  border: 1px solid rgba(59, 130, 246, 0.2);
}
.ue-badge-2fa.enabled {
  background: rgba(22, 163, 74, 0.1);
  color: #16a34a;
  border: 1px solid rgba(22, 163, 74, 0.2);
}
.ue-badge-2fa.disabled {
  background: rgba(148, 163, 184, 0.1);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.2);
}
.ue-stats {
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.ue-stats h3 {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-secondary);
  margin: 0 0 0.75rem;
}
.ue-stat-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}
.ue-stat-row:last-child {
  margin-bottom: 0;
}
.ue-stat-label {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ue-stat-value {
  font-size: 0.8rem;
  color: var(--text-primary);
  font-weight: 500;
  text-align: right;
}
.ue-meta {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.ue-meta-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ue-meta-item svg {
  flex-shrink: 0;
  opacity: 0.6;
}
.ue-main {
  flex: 1;
  min-width: 0;
}
.ue-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.ue-form {
  display: flex;
  flex-direction: column;
}
.ue-section {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--border);
}
.ue-section:last-of-type {
  border-bottom: none;
}
.ue-section h3 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.ue-section h3 svg {
  color: var(--text-secondary);
  opacity: 0.7;
}
.ue-section-desc {
  margin: -0.4rem 0 1rem;
  font-size: 0.8rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.ue-field {
  margin-bottom: 1rem;
}
.ue-field:last-child {
  margin-bottom: 0;
}
.ue-field label {
  display: block;
  margin-bottom: 0.4rem;
  font-weight: 500;
  font-size: 0.85rem;
  color: var(--text-primary);
}
.ue-field input, .ue-field select, .ue-select {
  width: 100%;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-main);
  color: var(--text-primary);
  font-size: 0.9rem;
  transition: border-color 0.15s, box-shadow 0.15s;
  outline: none;
}
.ue-field input:focus, .ue-field select:focus, .ue-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.1);
}
.ue-field input:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  background: var(--bg);
}
.ue-hint {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ue-error {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  color: #dc2626;
}
.ue-password-section {
  display: grid;
  gap: 1rem;
}
.ue-password-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.ue-password-input-wrapper input {
  padding-right: 2.5rem;
}
.ue-btn-icon {
  position: absolute;
  width: 28px;
  height: 28px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s, color 0.15s;
}
.ue-btn-icon:hover {
  background: rgba(0,0,0,0.05);
  color: var(--text-primary);
}
.ue-password-input-wrapper .ue-btn-toggle {
  right: 80px;
}
.ue-password-input-wrapper .ue-btn-generate {
  right: 44px;
}
.ue-password-input-wrapper .ue-btn-copy {
  right: 8px;
}
.ue-confirm-input-wrapper .ue-btn-toggle {
  right: 8px;
}
.ue-password-strength {
  margin-top: 0.5rem;
}
.ue-strength-bar {
  height: 4px;
  background: rgba(0,0,0,0.1);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 0.35rem;
}
.ue-strength-fill {
  height: 100%;
  width: 0%;
  background: #dc2626;
  transition: width 0.2s, background 0.2s;
}
.ue-strength-fill[data-strength="1"] {
  width: 20%;
  background: #dc2626;
}
.ue-strength-fill[data-strength="2"] {
  width: 40%;
  background: #f59e0b;
}
.ue-strength-fill[data-strength="3"] {
  width: 60%;
  background: #f59e0b;
}
.ue-strength-fill[data-strength="4"] {
  width: 80%;
  background: #16a34a;
}
.ue-strength-fill[data-strength="5"] {
  width: 100%;
  background: #16a34a;
}
.ue-strength-text {
  font-size: 0.7rem;
  color: var(--text-secondary);
}
.ue-password-requirements {
  list-style: none;
  padding: 0;
  margin: 0.5rem 0 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.25rem;
}
.ue-password-requirements li {
  font-size: 0.7rem;
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.ue-req-icon {
  font-size: 0.6rem;
  color: #cbd5e1;
}
.ue-password-requirements li.met .ue-req-icon {
  color: #16a34a;
}
.ue-match-status {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ue-match-status.match {
  color: #16a34a;
}
.ue-match-status.mismatch {
  color: #dc2626;
}
.ue-danger-zone {
  background: rgba(220, 38, 38, 0.02);
  border: 1px solid rgba(220, 38, 38, 0.15);
  border-radius: 8px;
  margin: 1rem 1.5rem;
}
.ue-danger-zone h3 {
  color: #dc2626;
}
.ue-danger-zone h3 svg {
  color: #dc2626;
}
.ue-danger-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-top: 1rem;
}
.ue-danger-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem;
  border: 1px solid rgba(220, 38, 38, 0.1);
  border-radius: 6px;
  background: rgba(255,255,255,0.4);
}
.ue-danger-info h4 {
  margin: 0 0 0.2rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ue-danger-info p {
  margin: 0;
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ue-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.6rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.15s;
  outline: none;
}
.ue-btn:focus {
  box-shadow: 0 0 0 3px rgba(52,152,219,0.15);
}
.ue-btn-primary {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.ue-btn-primary:hover {
  background: #2980b9;
  border-color: #2980b9;
}
.ue-btn-secondary {
  background: transparent;
  color: var(--text-primary);
  border: 1px solid var(--border);
}
.ue-btn-secondary:hover {
  background: rgba(0,0,0,0.03);
  border-color: var(--text-secondary);
}
.ue-btn-warn {
  background: #f59e0b;
  color: #fff;
  border-color: #f59e0b;
}
.ue-btn-warn:hover {
  background: #d97706;
  border-color: #d97706;
}
.ue-btn-danger {
  background: #dc2626;
  color: #fff;
  border-color: #dc2626;
}
.ue-btn-danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
}
.ue-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
  padding: 1rem 1.5rem;
  border-top: 1px solid var(--border);
  background: rgba(0,0,0,0.015);
}
.ue-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.ue-modal {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.5rem;
  max-width: 420px;
  width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.3);
  animation: ueModalSlideIn 0.2s ease-out;
}
@keyframes ueModalSlideIn {
  from {
    opacity: 0;
    transform: translateY(-20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.ue-modal-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 1rem;
  background: rgba(220, 38, 38, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #dc2626;
}
.ue-modal h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}
.ue-modal p {
  margin: 0 0 1.25rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  text-align: center;
  line-height: 1.5;
}
.ue-modal-actions {
  display: flex;
  gap: 0.6rem;
  justify-content: center;
}
[data-theme="dark"] .ue-sidebar-inner {
  background: rgba(255,255,255,0.02);
}
[data-theme="dark"] .ue-danger-zone {
  background: rgba(220, 38, 38, 0.04);
}
[data-theme="dark"] .ue-danger-item {
  background: rgba(255,255,255,0.02);
}
[data-theme="dark"] .ue-actions {
  background: rgba(255,255,255,0.015);
}
[data-theme="dark"] .ue-modal-icon {
  background: rgba(220, 38, 38, 0.15);
}
.users-stats, .ut-table, .uf-layout, .ue-layout {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.status-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 0.25rem;
  vertical-align: middle;
}
.status-dot.online {
  background: #16a34a;
}
.status-dot.offline {
  background: #94a3b8;
}
.settings-section .setting-value {
  display: flex;
  align-items: center;
}
.ut-search-field input::placeholder {
  color: var(--text-secondary);
  opacity: 0.5;
}
.ut-toggle-input:focus-visible + .ut-toggle-slider, .ut-edit-btn:focus-visible, .ut-btn:focus-visible, .uf-field input:focus-visible, .uf-field select:focus-visible, .ue-field input:focus-visible, .ue-field select:focus-visible, .ue-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.ut-search-field input:focus-visible {
  outline: none;
}
.ut-toggle-input:focus-visible + .ut-toggle-slider {
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.2);
}
.ut-toggle {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.us-card {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  transform: translateY(0);
}
.us-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.ut-table tbody tr {
  animation: ut-row-in 0.3s ease both;
}
.ut-table tbody tr:nth-child(1) {
  animation-delay: 0.02s;
}
.ut-table tbody tr:nth-child(2) {
  animation-delay: 0.04s;
}
.ut-table tbody tr:nth-child(3) {
  animation-delay: 0.06s;
}
.ut-table tbody tr:nth-child(4) {
  animation-delay: 0.08s;
}
.ut-table tbody tr:nth-child(5) {
  animation-delay: 0.10s;
}
.ut-table tbody tr:nth-child(6) {
  animation-delay: 0.12s;
}
.ut-table tbody tr:nth-child(7) {
  animation-delay: 0.14s;
}
.ut-table tbody tr:nth-child(8) {
  animation-delay: 0.16s;
}
.ut-table tbody tr:nth-child(9) {
  animation-delay: 0.18s;
}
.ut-table tbody tr:nth-child(10) {
  animation-delay: 0.20s;
}
@keyframes ut-row-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .ut-table tbody tr {
    animation: none;
  }
  .us-card {
    transition: none;
  }
  .us-card:hover {
    transform: none;
  }
  .umodal-card {
    animation: none;
  }
}
.ml-dashboard {
  width: 100%;
  padding: 0;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.dash-alert {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1.15rem;
  border-radius: 10px;
  font-size: 0.85rem;
  margin-bottom: 1.5rem;
  animation: dash-fade-in 0.3s ease both;
}
.dash-alert-warning {
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: var(--text-primary);
}
.dash-alert strong {
  font-weight: 600;
}
.dash-alert-text {
  flex: 1;
}
.dash-alert-link {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity 0.12s;
}
.dash-alert-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}
.dash-empty {
  text-align: center;
  padding: 3rem 1.5rem;
  max-width: 420px;
  margin: 8rem auto 2rem;
}
.dash-empty h3 {
  margin: 0 0 0.4rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-secondary);
}
.dash-empty p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  opacity: 0.5;
  line-height: 1.5;
}
.dash-section {
  margin-bottom: 2rem;
  margin-top: 1.5rem;
}
.dash-section-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.store-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 0.75rem;
}
.store-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1rem 1.15rem;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  transition: all 0.2s ease;
  animation: dash-card-in 0.35s ease both;
  position: relative;
}
.store-card:nth-child(1) {
  animation-delay: 0.02s;
}
.store-card:nth-child(2) {
  animation-delay: 0.06s;
}
.store-card:nth-child(3) {
  animation-delay: 0.10s;
}
.store-card:nth-child(4) {
  animation-delay: 0.14s;
}
.store-card:nth-child(5) {
  animation-delay: 0.18s;
}
.store-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
.store-card.active {
  border-color: #10b981;
  background: rgba(16, 185, 129, 0.03);
}
.store-card-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--bg);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
  position: relative;
}
.store-check-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 17px;
  height: 17px;
  background: #10b981;
  border-radius: 50%;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.store-card.active .store-card-icon {
  background: rgba(16, 185, 129, 0.12);
  color: #10b981;
}
.store-card-body {
  flex: 1;
  min-width: 0;
}
.store-card-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-card-meta {
  font-size: 0.72rem;
  color: var(--text-secondary);
  margin-top: 0.1rem;
}
.store-card-action {
  flex-shrink: 0;
}
.badge-active {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.5rem;
  border-radius: 20px;
  background: rgba(16, 185, 129, 0.1);
  color: #10b981;
  font-size: 0.65rem;
  font-weight: 600;
}
.badge-active::before {
  content: '';
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #10b981;
}
.btn-store-select {
  display: inline-flex;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}
.btn-store-select:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.05);
}
.btn-store-select:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.btn-store-reconnect {
  display: inline-flex;
  padding: 0.35rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: #f59e0b;
  font-size: 0.72rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
}
.btn-store-reconnect:hover {
  border-color: #f59e0b;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.05);
}
.btn-store-blocked {
  font-size: 0.7rem;
  color: var(--text-secondary);
  opacity: 0.5;
  white-space: nowrap;
}
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
  margin-bottom: 1rem;
}
.kpi-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.65rem 0.85rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: all 0.2s ease;
  animation: dash-card-in 0.4s ease both;
}
.kpi-card:nth-child(1) {
  animation-delay: 0.05s;
}
.kpi-card:nth-child(2) {
  animation-delay: 0.10s;
}
.kpi-card:nth-child(3) {
  animation-delay: 0.15s;
}
.kpi-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
  border-color: var(--accent);
}
.kpi-content {
  flex: 1;
  min-width: 0;
}
.kpi-value {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}
.kpi-label {
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
  margin-bottom: 0.3rem;
}
.kpi-label-hint {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  opacity: 0.7;
}
.kpi-sublabel {
  font-size: 0.7rem;
  color: var(--text-secondary);
  opacity: 0.6;
  margin-top: 0.05rem;
}
.kpi-spinner {
  display: inline-block;
  width: 22px;
  height: 22px;
  border: 2.5px solid rgba(148, 163, 184, 0.2);
  border-top-color: var(--accent);
  border-radius: 50%;
  animation: kpi-spin 0.7s linear infinite;
  vertical-align: middle;
}
@keyframes kpi-spin {
  to {
    transform: rotate(360deg);
  }
}
.kpi-error {
  display: none;
  margin-top: 0.75rem;
  padding: 0.75rem 1rem;
  background: rgba(239, 68, 68, 0.08);
  color: #ef4444;
  border-radius: 8px;
  font-size: 0.82rem;
  animation: dash-fade-in 0.25s ease both;
}
@keyframes skeleton-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.is-loading .dash-stat-value .kpi-spinner {
  display: none;
}
.is-loading .dash-stat-value::after {
  content: '';
  display: block;
  width: 40px;
  height: 18px;
  background: linear-gradient(90deg, var(--border) 25%, rgba(255,255,255,0.04) 50%, var(--border) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
}
.is-loading .kpi-sublabel {
  display: none;
}
.skelbar {
  display: none;
}
.is-loading .skelbar {
  display: block;
}
.is-loading .chart-card .chart-header {
  opacity: 0;
}
.is-loading #stockChart {
  height: 170px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 10px;
  padding: 0 0.5rem;
}
.is-loading #stockChart .skelbar {
  height: 14px;
  background: linear-gradient(90deg, var(--border) 25%, rgba(255,255,255,0.04) 50%, var(--border) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.5s ease-in-out infinite;
  border-radius: 4px;
}
.dash-stats {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.5rem 1.25rem 0.5rem 0;
  border-right: 1px solid var(--border);
  min-width: 120px;
  text-align: center;
}
.dash-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
}
.dash-stat-value {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.dash-stat-label {
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-secondary);
}
.dash-stat-sep {
  color: var(--text-secondary);
  opacity: 0.3;
  font-size: 1.2rem;
  line-height: 1;
}
.charts-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.85rem;
}
.chart-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 0.75rem 0.85rem 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  animation: dash-card-in 0.45s ease both;
}
.chart-layout {
  display: flex;
  align-items: stretch;
  gap: 1.5rem;
}
.chart-right {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.chart-card:nth-child(1) {
  animation-delay: 0.08s;
}
.chart-card:nth-child(2) {
  animation-delay: 0.14s;
}
.chart-card:nth-child(3) {
  animation-delay: 0.20s;
  grid-column: 1 / -1;
}
.chart-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0;
  margin-bottom: 0.65rem;
}
.chart-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
}
.chart-title-count {
  font-size: 0.7rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.chart-body {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: 0 1rem 0.5rem;
}
.chart-body div {
  width: 100%;
}
.chart-card:nth-child(3) .chart-body div {
  max-width: 100%;
  width: 100% !important;
}
.chart-card:nth-child(2) .chart-body div {
  max-width: 100%;
  width: 100% !important;
}
.apexcharts-canvas, .apexcharts-svg, .apexcharts-background {
  background: transparent !important;
}
.apexcharts-canvas svg {
  background: transparent !important;
}
.apexcharts-tooltip {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  max-width: 160px !important;
}
.apexcharts-tooltip-title {
  display: none !important;
}
.apexcharts-tooltip-series-group {
  padding: 0 !important;
}
.dash-tooltip {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 5px 8px;
  font-size: 11px;
  max-width: 150px;
  line-height: 1.3;
  pointer-events: none;
}
.dash-tooltip-label {
  font-size: 10px;
  color: var(--text-secondary);
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dash-tooltip-value {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--text-primary);
  font-weight: 600;
}
.dash-tooltip-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.tools-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 0.75rem;
}
.tool-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  transition: all 0.2s ease;
  animation: dash-card-in 0.4s ease both;
}
.tool-card:nth-child(1) {
  animation-delay: 0.10s;
}
.tool-card:nth-child(2) {
  animation-delay: 0.15s;
}
.tool-card:nth-child(3) {
  animation-delay: 0.20s;
}
.tool-card:nth-child(4) {
  animation-delay: 0.25s;
}
.tool-card:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.tool-card.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  pointer-events: none;
  animation: none;
}
.tool-card.disabled .tool-label {
  color: var(--text-muted);
}
.tool-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.tool-body {
  flex: 1;
  min-width: 0;
}
.tool-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.tool-desc {
  display: block;
  font-size: 0.72rem;
  color: var(--text-secondary);
  margin-top: 0.1rem;
}
.tool-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 0.35rem;
  border-radius: 10px;
  font-size: 0.65rem;
  font-weight: 700;
  background: rgba(var(--accent-rgb), 0.1);
  color: var(--accent);
  flex-shrink: 0;
}
.tool-badge.warn {
  background: rgba(245, 158, 11, 0.1);
  color: #f59e0b;
}
@keyframes dash-card-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes dash-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media (max-width: 1024px) {
  .charts-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 768px) {
  .chart-layout {
    flex-direction: column;
  }
  .dash-stats {
    flex-direction: row;
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 0.5rem 0 0.75rem;
    min-width: 0;
    gap: 1.25rem;
  }
  .kpi-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .charts-grid {
    grid-template-columns: 1fr;
  }
  .store-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .tools-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .chart-card:nth-child(2) .chart-body div {
    max-width: 100%;
  }
}
@media (max-width: 576px) {
  .kpi-grid {
    grid-template-columns: 1fr;
  }
  .store-grid {
    grid-template-columns: 1fr;
  }
  .tools-grid {
    grid-template-columns: 1fr;
  }
  .store-card {
    animation: none;
  }
  .kpi-card {
    animation: none;
  }
  .chart-card {
    animation: none;
  }
  .tool-card {
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .store-card, .kpi-card, .chart-card, .tool-card {
    animation: none;
  }
  .store-card:hover, .kpi-card:hover, .tool-card:hover {
    transform: none;
  }
  .kpi-spinner {
    animation-duration: 1.4s;
  }
}
.form-inline {
  display: inline;
}
.connect-page {
  max-width: 520px;
  margin: 0 auto;
  min-height: calc(100vh - 128px);
  display: flex;
  align-items: center;
}
.connect-card-header {
  text-align: center;
  margin-bottom: 1.5rem;
}
.connect-card-icon-large {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  border-radius: 16px;
  background: rgba(52, 131, 250, 0.1);
  color: #3483fa;
  margin-bottom: 1rem;
}
.connect-card-title {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--text-primary);
}
.connect-card-desc {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.45;
}
.connect-copy-field {
  display: flex;
  align-items: stretch;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.connect-copy-field:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);
  }
}
.connect-copy-input {
  flex: 1;
  min-width: 0;
  width: 100%;
  padding: 0.7rem 0.5rem 0.7rem 0.85rem;
  border: none;
  background: transparent;
  color: #c9d1d9;
  font-family: 'SF Mono', Monaco, Consolas, 'Liberation Mono', monospace;
  font-size: 0.78rem;
  line-height: 1.35;
  outline: none;
  cursor: default;
  text-overflow: ellipsis;
  overflow: hidden;
  white-space: nowrap;
}
.connect-copy-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.75rem;
  padding: 0;
  border: none;
  border-left: 1px solid #21262d;
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-secondary);
  cursor: pointer;
  transition: background 0.15s, color 0.15s;
}
.connect-copy-icon-btn:hover {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
}
.connect-copy-icon-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.connect-copy-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.connect-copy-icon-check {
  display: none;
  color: #22c55e;
}
.connect-copy-icon-btn.is-copied .connect-copy-icon-copy {
  display: none;
}
.connect-copy-icon-btn.is-copied .connect-copy-icon-check {
  display: inline-flex;
}
.connect-help {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 1.25rem;
  margin-top: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.connect-help-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #3483fa;
  text-decoration: none;
  font-size: 0.82rem;
  font-weight: 500;
  transition: color 0.12s;
}
.connect-help-link:hover {
  color: #2968c8;
}
.connect-steps {
  display: flex;
  flex-direction: column;
  margin-top: 1rem;
}
.connect-step {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 0;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.connect-step:first-child {
  border-top: none;
  padding-top: 0.35rem;
}
.connect-step:last-child {
  padding-bottom: 0;
}
.connect-step-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1;
}
.connect-step p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.45;
}
.alert-config {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  background: rgba(52, 131, 250, 0.05);
  border: 1px solid rgba(52, 131, 250, 0.2);
  border-radius: 10px;
  color: var(--text-secondary);
  font-size: 0.82rem;
  margin-bottom: 1.25rem;
  line-height: 1.5;
}
.alert-config svg {
  flex-shrink: 0;
  margin-top: 0.1rem;
  color: #3483fa;
}
.alert-config code {
  background: rgba(52, 131, 250, 0.1);
  color: #3483fa;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  font-size: 0.78rem;
}
.alert-config strong {
  font-weight: 700;
  word-break: break-all;
  color: #3483fa;
}
[data-theme="light"] .connect-copy-field {
  background: #eef1f5;
  border-color: #d8dee6;
}
[data-theme="light"] .connect-copy-input {
  color: #334155;
}
[data-theme="light"] .connect-copy-icon-btn {
  border-left-color: #d8dee6;
  background: rgba(0, 0, 0, 0.03);
  color: #64748b;
}
[data-theme="light"] .connect-copy-icon-btn:hover {
  background: rgba(0, 0, 0, 0.06);
  color: #334155;
}
[data-theme="light"] .connect-step {
  border-top-color: rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .connect-step-num {
  border-color: rgba(0, 0, 0, 0.15);
}
[data-theme="light"] .connect-help {
  border-top-color: rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .connect-help-link:hover {
  color: var(--accent);
}
[data-theme="light"] .alert-config {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 6%, transparent);
  }
  border-color: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--accent) 18%, transparent);
  }
}
[data-theme="light"] .alert-config svg {
  color: var(--accent);
}
[data-theme="light"] .alert-config code {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }
  color: var(--accent);
}
[data-theme="light"] .alert-config strong {
  color: var(--accent);
}
[data-theme="light"] .connect-benefits {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 5%, transparent);
  }
  border-color: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    border-color: color-mix(in srgb, var(--accent) 15%, transparent);
  }
}
[data-theme="light"] .connect-benefits-title {
  color: var(--text-primary);
}
[data-theme="light"] .connect-benefits-title svg {
  color: var(--accent);
}
[data-theme="light"] .connect-help {
  border-top-color: rgba(0, 0, 0, 0.08);
}
[data-theme="light"] .connect-help-link:hover {
  color: var(--accent);
}
.audit-container {
  width: 100%;
}
.audit-breadcrumb {
  margin-bottom: 1rem;
}
.audit-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.82rem;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s;
}
.audit-back:hover {
  color: var(--accent);
}
.audit-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
}
.audit-card-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}
.audit-card-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: rgba(var(--accent-rgb, 52, 131, 250), 0.1);
  color: var(--accent, #3483fa);
}
.audit-card-header h3 {
  margin: 0 0 0.2rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.audit-card-header p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.audit-card-header code {
  font-size: 0.75rem;
  background: var(--bg-secondary);
  padding: 0.1rem 0.3rem;
  border-radius: 4px;
}
.audit-file-row {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.audit-file-name {
  font-size: 0.85rem;
  color: var(--text-secondary);
  word-break: break-all;
}
.audit-status {
  font-size: 0.88rem;
  color: var(--text-secondary);
  margin: 0 0 0.75rem;
}
.audit-progress {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 2.5rem 2rem;
  text-align: center;
}
.audit-progress .spinner {
  margin: 0 auto;
}
.audit-progress p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--text-secondary);
}
.audit-progress-sub {
  font-size: 0.8rem !important;
  opacity: 0.7;
}
.ahub {
  margin-top: 0.5rem;
}
.ahub-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
  max-width: 780px;
}
.ahub-tile {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
}
.ahub-tile:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.ahub-tile-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ahub-tile-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.ahub-tile-label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ahub-tile-desc {
  font-size: 0.7rem;
  color: var(--text-secondary);
  line-height: 1.3;
}
.ahub-activity {
  margin-top: 1.5rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.ahub-activity-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1.15rem;
  border-bottom: 1px solid var(--border);
}
.ahub-activity-header h3 {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ahub-activity-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.78rem;
  color: var(--accent);
  text-decoration: none;
  transition: color 0.15s;
}
.ahub-activity-link:hover {
  opacity: 0.8;
}
.ahub-activity-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 2rem 1rem;
  color: var(--text-secondary);
  font-size: 0.85rem;
}
.ahub-activity-feed {
  display: flex;
  flex-direction: column;
}
.ahub-activity-item {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 0.85rem 1.15rem;
  transition: background 0.15s;
  text-decoration: none;
  cursor: pointer;
}
.ahub-activity-item:not(:last-child) {
  border-bottom: 1px solid var(--border);
}
.ahub-activity-item:hover {
  background: rgba(255, 255, 255, 0.02);
}
.ahub-activity-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.ahub-activity-body {
  flex: 1;
  min-width: 0;
}
.ahub-activity-top {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.15rem;
}
.ahub-activity-type {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
}
.ahub-activity-sku {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ahub-activity-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.ahub-activity-ok {
  font-size: 0.78rem;
  color: #10b981;
  font-weight: 500;
}
.ahub-activity-issue {
  font-size: 0.78rem;
  color: #ef4444;
  font-weight: 500;
}
.ahub-activity-warn {
  font-size: 0.78rem;
  color: #f59e0b;
  font-weight: 500;
}
.ahub-activity-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.1rem;
  flex-shrink: 0;
}
.ahub-activity-time {
  font-size: 0.75rem;
  color: var(--text-secondary);
}
.ahub-activity-store-inline {
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.ahub-activity-store {
  font-size: 0.7rem;
  color: var(--text-secondary);
  opacity: 0.7;
}
@media (max-width: 640px) {
  .ahub-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .ahub-activity-meta {
    display: none;
  }
}
.audit-batch-header-info {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.audit-batch-header-info h3 {
  margin: 0 0 0.15rem;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.audit-batch-header-info p {
  margin: 0;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.audit-batch-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.audit-batch-group-label {
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.35rem;
  padding-left: 0.15rem;
}
.audit-batch-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.7rem 0.15rem;
  text-decoration: none;
  transition: background 0.12s ease;
  cursor: pointer;
  animation: audit-row-in 0.3s ease both;
}
.audit-batch-row:hover {
  background: rgba(255, 255, 255, 0.02);
}
@keyframes audit-row-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.audit-batch-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}
.audit-batch-row-body {
  flex: 1;
  min-width: 0;
}
.audit-batch-row-title {
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--text-primary);
  margin-bottom: 0.1rem;
}
.audit-batch-row-sub {
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.audit-batch-row-date {
  font-size: 0.75rem;
  color: var(--text-secondary);
  white-space: nowrap;
  flex-shrink: 0;
}
.audit-batch-separator {
  height: 1px;
  background: var(--border);
  margin: 0 0.15rem;
}
.audit-batch-issue {
  color: #ef4444;
}
.audit-batch-warn {
  color: #f59e0b;
}
.audit-batch-ok {
  color: #10b981;
}
.audit-batch-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 3rem 2rem;
  text-align: center;
  color: var(--text-secondary);
}
.audit-batch-empty p {
  margin: 0;
  font-size: 0.88rem;
}
.pd-hero {
  display: flex;
  gap: 1.25rem;
  padding: 1.25rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  align-items: flex-start;
}
.pd-hero-img {
  width: 140px;
  height: 140px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg-sidebar);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pd-hero-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.pd-hero-body {
  flex: 1;
  min-width: 0;
}
.pd-hero-title {
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.pd-hero-price {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  margin-top: 0.3rem;
}
.pd-hero-meta {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin-top: 0.15rem;
}
.pd-hero-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.5rem;
  flex-shrink: 0;
}
.pd-ml-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--accent);
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }
  text-decoration: none;
  transition: background 0.12s;
  white-space: nowrap;
}
.pd-ml-btn:hover {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 18%, transparent);
  }
}
.pd-section {
  margin-top: 1.25rem;
}
.pd-section-title {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.6rem;
}
.pd-info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.5rem;
}
.pd-info-group + .pd-info-group {
  margin-top: 1rem;
}
.pd-info-group-title {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.4rem;
}
.pd-info-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 0.65rem 0.75rem;
}
.pd-info-label {
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.pd-info-value {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-top: 0.15rem;
  word-break: break-all;
}
.pd-parent-card {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 0.75rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
}
.pd-parent-card .pd-parent-label {
  color: var(--text-secondary);
}
.pd-parent-card a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pd-parent-card a:hover {
  text-decoration: underline;
}
.pd-var-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
}
.pd-var-table thead tr {
  background: var(--bg-sidebar);
}
.pd-var-table th {
  padding: 0.5rem 0.6rem;
  text-align: left;
  font-weight: 600;
  color: var(--text-secondary);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.pd-var-table th.pd-right {
  text-align: right;
}
.pd-var-table th.pd-center {
  text-align: center;
}
.pd-var-table td {
  padding: 0.4rem 0.6rem;
  border-top: 1px solid var(--border);
}
.pd-var-table tr {
  cursor: pointer;
  transition: background 0.12s;
}
.pd-var-table tbody tr:hover {
  background: var(--bg-sidebar);
}
.pd-var-img {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  overflow: hidden;
  background: var(--bg-sidebar);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pd-var-title {
  max-width: 280px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pd-var-sku {
  color: var(--text-secondary);
}
.pd-var-price {
  font-weight: 600;
  text-align: right;
}
.pd-var-stock {
  font-weight: 600;
  text-align: right;
}
.pd-var-status {
  text-align: center;
}
.pd-discount-badge {
  display: inline-block;
  background: var(--danger);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  margin-left: 0.3rem;
  vertical-align: middle;
}
.pd-free-shipping {
  display: inline-block;
  background: var(--success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--success) 15%, transparent);
  }
  color: var(--success);
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.05rem 0.35rem;
  border-radius: 4px;
  margin-left: 0.15rem;
  vertical-align: middle;
}
.pd-metrics {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.pd-metric {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.55rem 0.75rem;
  border-radius: 10px;
  flex: 1;
  min-width: 110px;
  border: 1px solid var(--border);
  background: var(--card-bg);
}
.pd-metric-icon {
  width: 34px;
  height: 34px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pd-metric-body {
  display: flex;
  flex-direction: column;
}
.pd-metric-value {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--text-primary);
}
.pd-metric-label {
  font-size: 0.65rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-secondary);
}
.pd-metric-sold .pd-metric-icon {
  background: color-mix(in srgb, #f59e0b 15%, transparent);
  color: #d97706;
}
.pd-metric-discount .pd-metric-icon {
  background: var(--danger);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--danger) 15%, transparent);
  }
  color: var(--danger);
}
.pd-metric-shipping .pd-metric-icon {
  background: var(--success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--success) 15%, transparent);
  }
  color: var(--success);
}
.pd-metric-time .pd-metric-icon {
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 15%, transparent);
  }
  color: var(--accent);
}
.pd-info {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.pd-info-row {
  display: flex;
  align-items: baseline;
  padding: 0.55rem 0.85rem;
  gap: 1rem;
}
.pd-info-row + .pd-info-row {
  border-top: 1px solid var(--border);
}
.pd-info-label {
  width: 100px;
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 500;
  color: var(--text-secondary);
}
.pd-info-value {
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  word-break: break-word;
}
@media (max-width: 640px) {
  .pd-hero {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .pd-hero-img {
    width: 100px;
    height: 100px;
  }
  .pd-hero-actions {
    align-items: center;
  }
  .pd-info-grid {
    grid-template-columns: 1fr;
  }
  .pd-metrics {
    flex-direction: column;
  }
}
.audit-table-wrapper {
  overflow-x: auto;
}
.audit-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
}
.audit-table th {
  text-align: left;
  padding: 0.6rem 0.75rem;
  border-bottom: 2px solid var(--border);
  color: var(--text-secondary);
  font-weight: 600;
  white-space: nowrap;
}
.audit-table td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--border);
  color: var(--text-primary);
}
.audit-table tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}
.audit-sku {
  font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
  font-size: 0.8rem;
  color: var(--text-primary);
}
.audit-ml-link {
  color: var(--accent);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.audit-ml-link:hover {
  text-decoration: underline;
}
.audit-not-found {
  color: var(--text-secondary);
  font-style: italic;
  font-size: 0.78rem;
}
.audit-positive {
  color: #10b981;
  font-weight: 600;
}
.audit-negative {
  color: #ef4444;
  font-weight: 600;
}
.audit-ok {
  color: var(--text-secondary);
}
.audit-row-diff td {
  background: rgba(245, 158, 11, 0.04);
}
.audit-row-not-found td {
  background: rgba(148, 163, 184, 0.05);
}
#audit-table .tabulator {
  background: var(--card-bg) !important;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 0.82rem;
}
#audit-table .tabulator-header {
  background: var(--bg-main) !important;
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--bg-main) 60%, var(--card-bg)) !important;
  }
  border-bottom: 1px solid var(--border);
}
#audit-table .tabulator-header .tabulator-col {
  background: transparent !important;
  border-right: none;
}
#audit-table .tabulator-header .tabulator-col .tabulator-col-content {
  padding: 0.55rem 0.75rem;
}
#audit-table .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title {
  font-size: 0.72rem;
  font-weight: 600;
  color: #e0e0e0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
#audit-table .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title {
  padding-right: 1.5rem;
}
#audit-table .tabulator-header .tabulator-arrow {
  border-bottom-color: var(--text-secondary);
  opacity: 0.5;
}
#audit-table .tabulator-header .tabulator-col.tabulator-sortable:hover .tabulator-col-title {
  color: var(--text-primary);
}
#audit-table .tabulator-tableholder {
  background: var(--card-bg) !important;
}
#audit-table .tabulator-tableholder .tabulator-table {
  background: var(--card-bg) !important;
}
#audit-table .tabulator-row {
  background: var(--card-bg) !important;
  border-bottom: 1px solid var(--border);
  min-height: 40px;
}
#audit-table .tabulator-row .tabulator-cell {
  padding: 0.5rem 0.75rem;
  border-right: none;
  color: var(--text-primary);
  background: transparent !important;
}
#audit-table .tabulator-row:hover .tabulator-cell {
  background: rgba(255, 255, 255, 0.04) !important;
}
#audit-table .tabulator-row.tabulator-selected .tabulator-cell {
  background: rgba(14, 165, 233, 0.08) !important;
}
#audit-table .tabulator-row.tabulator-selected:hover .tabulator-cell {
  background: rgba(14, 165, 233, 0.12) !important;
}
#audit-table .tabulator-row.audit-row-notfound .tabulator-cell {
  opacity: 0.45;
  font-style: italic;
}
#audit-table .tabulator-footer {
  display: none;
}
#audit-table .tabulator-placeholder .tabulator-placeholder-contents {
  color: var(--text-secondary);
}
.audit-diff {
  font-weight: 600;
  font-size: 0.82rem;
}
.audit-diff-pos {
  color: #34d399;
}
.audit-diff-neg {
  color: #f87171;
}
.audit-diff-zero {
  color: var(--text-secondary);
}
.audit-diff-none {
  color: var(--text-secondary);
  opacity: 0.4;
}
.phub {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  box-sizing: border-box;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.phub-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}
.phub-stat {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  animation: phub-in 0.35s ease both;
}
.phub-stat:nth-child(1) {
  animation-delay: 0.03s;
}
.phub-stat:nth-child(2) {
  animation-delay: 0.06s;
}
.phub-stat:nth-child(3) {
  animation-delay: 0.09s;
}
.phub-stat:nth-child(4) {
  animation-delay: 0.12s;
}
.phub-stat:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.phub-stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.phub-stat-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.phub-stat-value {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.phub-stat-value--sm {
  font-size: 0.85rem;
  font-weight: 600;
}
.phub-stat-value.is-empty {
  color: var(--text-secondary);
  font-weight: 600;
}
.phub-stat-hint {
  font-size: 0.68rem;
  color: var(--text-secondary);
}
.phub-rate-ok {
  color: #22c55e;
}
.phub-rate-warn {
  color: #f59e0b;
}
.phub-rate-err {
  color: #ef4444;
}
.phub-stat-label {
  font-size: 0.72rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
}
.phub-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.phub-action {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.9rem 1rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  text-decoration: none;
  transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
  animation: phub-in 0.35s ease both;
  min-width: 0;
  overflow: hidden;
}
.phub-action:nth-child(1) {
  animation-delay: 0.06s;
}
.phub-action:nth-child(2) {
  animation-delay: 0.10s;
}
.phub-action:nth-child(3) {
  animation-delay: 0.14s;
}
.phub-action:hover {
  border-color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.phub-action:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.phub-action--soon {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
  border-style: dashed;
  position: relative;
}
.phub-action--soon:hover {
  border-color: var(--border);
  transform: none;
  box-shadow: none;
}
.phub-action--disabled {
  opacity: 0.35;
  cursor: default;
  pointer-events: none;
  position: relative;
}
.phub-action--disabled:hover {
  border-color: var(--border);
  transform: none;
  box-shadow: none;
}
.phub-action--disabled .phub-action-title::after {
  content: 'Deshabilitado';
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(220,53,69,0.15);
  color: #dc3545;
  vertical-align: middle;
}
.phub-banner-disabled {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 1rem;
  margin-bottom: 0.75rem;
  border-radius: 8px;
  background: rgba(220,53,69,0.08);
  border: 1px solid rgba(220,53,69,0.2);
  color: #dc3545;
  font-size: 0.85rem;
  font-weight: 500;
}
.phub-action--soon .phub-action-title::after {
  content: 'Próximamente';
  display: inline-block;
  margin-left: 0.5rem;
  padding: 0.1rem 0.45rem;
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: rgba(148,163,184,0.15);
  color: #94a3b8;
  vertical-align: middle;
}
.phub-action-icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.phub-action-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.phub-action-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
}
.phub-action-desc {
  font-size: 0.75rem;
  color: var(--text-secondary);
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.phub-action-meta {
  font-size: 0.7rem;
  color: var(--text-secondary);
  opacity: 0.8;
  line-height: 1.3;
  margin-top: 0.05rem;
}
.phub-action-arrow {
  color: var(--text-secondary);
  flex-shrink: 0;
  opacity: 0.35;
  transition: transform 0.15s, opacity 0.15s, color 0.15s;
}
.phub-action:hover .phub-action-arrow {
  opacity: 1;
  color: var(--accent);
  transform: translateX(3px);
}
.phub-recent {
  margin-top: 1.5rem;
}
.phub-recent-title {
  margin: 0 0 0.75rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
}
.phub-recent-list {
  display: flex;
  flex-direction: column;
}
.phub-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid var(--border);
  font-size: 0.82rem;
}
.phub-row:first-child {
  border-top: 1px solid var(--border);
}
.phub-row-icon {
  display: flex;
  flex-shrink: 0;
}
.phub-row-label {
  font-weight: 600;
  min-width: 90px;
}
.phub-row-date {
  color: var(--text-secondary);
  flex: 1;
}
.phub-row-items {
  color: var(--text-secondary);
  font-variant-numeric: tabular-nums;
}
.phub-row-rate {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  min-width: 40px;
  text-align: right;
}
.phub-recent-link {
  display: inline-block;
  margin-top: 0.65rem;
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--accent);
  text-decoration: none;
  transition: opacity 0.15s;
}
.phub-recent-link:hover {
  opacity: 0.85;
  text-decoration: underline;
}
@keyframes phub-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (max-width: 900px) {
  .phub-stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .phub-actions {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 640px) {
  .phub-stats {
    grid-template-columns: 1fr;
  }
  .phub-batch-id {
    max-width: 160px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .phub-stat, .phub-action {
    animation: none;
  }
  .phub-stat:hover, .phub-action:hover {
    transform: none;
  }
}
.audit-error {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  background: rgba(239,68,68,0.06);
  border: 1px solid rgba(239,68,68,0.2);
  border-radius: 8px;
  color: #ef4444;
  font-size: 0.88rem;
  margin-top: 1rem;
}
.ml-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.ml-subtitle {
  margin: 0;
  font-size: 0.88rem;
  color: var(--text-secondary);
  flex: 1;
}
.btn-connect {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 1.1rem;
  border: 1px solid rgba(52, 131, 250, 0.3);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.2s ease;
  background: rgba(52, 131, 250, 0.1);
  color: var(--ml-blue);
  white-space: nowrap;
}
.btn-connect:hover {
  background: rgba(52, 131, 250, 0.18);
  transform: translateY(-1px);
}
.alert-config {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.8rem 1rem;
  background: rgba(52, 131, 250, 0.05);
  border: 1px solid rgba(52, 131, 250, 0.2);
  border-radius: 8px;
  color: var(--text-secondary);
  font-size: 0.82rem;
  margin-bottom: 1.5rem;
  line-height: 1.5;
}
.alert-config svg {
  flex-shrink: 0;
  color: var(--ml-blue);
}
.alert-config code {
  background: rgba(52, 131, 250, 0.1);
  color: var(--ml-blue);
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  font-size: 0.78rem;
}
.alert-config strong {
  font-weight: 700;
  word-break: break-all;
}
[data-theme="light"] .alert-config {
  background: rgba(13, 110, 253, 0.04);
  border-color: rgba(13, 110, 253, 0.15);
}
.empty-state {
  text-align: center;
  padding: 4rem 1rem;
  color: var(--text-secondary);
}
.empty-state svg {
  margin-bottom: 1rem;
}
.empty-state h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.empty-state p {
  margin: 0;
  font-size: 0.88rem;
  max-width: 360px;
  margin: 0 auto;
}
.stores-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.25rem;
}
.stores-grid .store-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  transition: all 0.2s ease;
}
.stores-grid .store-card:hover {
  border-color: var(--accent);
}
.stores-grid .store-card.active {
  border-color: #a8e6cf;
  box-shadow: 0 0 0 1px #a8e6cf;
}
.stores-grid .store-card.disabled {
  opacity: 0.55;
  border-color: var(--border);
}
.stores-grid .store-card.disabled:hover {
  border-color: var(--border);
}
.store-top {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.store-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: rgba(52, 131, 250, 0.1);
  color: var(--ml-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.store-info {
  flex: 1;
  min-width: 0;
}
.store-name-row {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
}
.store-name-row strong {
  display: block;
  font-size: 0.95rem;
  color: var(--text-primary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.btn-rename {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  color: var(--text-secondary);
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.15s;
}
.store-card:hover .btn-rename {
  opacity: 1;
}
.btn-rename:hover {
  color: var(--accent);
}
.store-email {
  display: block;
  font-size: 0.8rem;
  color: var(--text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-country {
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--text-secondary);
  background: var(--border);
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  text-transform: uppercase;
}
.store-meta {
  display: flex;
  gap: 1rem;
  font-size: 0.78rem;
  color: var(--text-secondary);
}
.meta-item {
  display: flex;
  align-items: center;
  gap: 0.3rem;
}
.meta-item svg {
  opacity: 0.5;
}
.store-token-status {
  display: flex;
  gap: 0.5rem;
}
.token-badge {
  display: inline-block;
  padding: 0.2rem 0.6rem;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 600;
}
.token-badge.ok {
  background: #d4edda;
  color: #1a6e3a;
}
.token-badge.exp {
  background: #f8d7da;
  color: #8a3a3a;
}
.token-badge.inactive {
  background: #e9ecef;
  color: #6c757d;
}
.store-actions {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.2rem;
}
.store-actions .badge-active {
  display: inline-block;
  padding: 0.35rem 0.8rem;
  border-radius: 8px;
  font-size: 0.78rem;
  font-weight: 600;
  background: #a8e6cf;
  color: #2a5f4a;
}
.form-inline {
  display: inline;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border: none;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
}
.btn-select {
  background: #d6ecf5;
  color: #3a7a9a;
}
.btn-select:hover {
  background: #bde0f0;
}
.btn-disconnect {
  background: #f5d6d6;
  color: #9a3a3a;
}
.btn-disconnect:hover {
  background: #f0bdbd;
}
.btn-reactivate {
  background: #d6f5d6;
  color: #3a7a3a;
}
.btn-reactivate:hover {
  background: #bdf0bd;
}
.btn-refresh {
  background: #d6ecf5;
  color: #3a7a9a;
}
.btn-refresh:hover {
  background: #bde0f0;
}
.btn-delete {
  background: #f5d6d6;
  color: #9a3a3a;
}
.btn-delete:hover {
  background: #f0bdbd;
}
[data-theme="light"] .btn-connect {
  background: rgba(13, 110, 253, 0.08);
  border-color: rgba(13, 110, 253, 0.2);
}
[data-theme="light"] .btn-connect:hover {
  background: rgba(13, 110, 253, 0.15);
}
[data-theme="light"] .store-icon {
  background: rgba(13, 110, 253, 0.08);
  border: 1px solid rgba(13, 110, 253, 0.15);
}
[data-theme="light"] .btn-select {
  background: #e4eef5;
  border: 1px solid #d0dee8;
}
[data-theme="light"] .btn-select:hover {
  background: #d0e0ed;
}
[data-theme="light"] .btn-disconnect {
  background: #f5e4e4;
  border: 1px solid #e8d0d0;
}
[data-theme="light"] .btn-disconnect:hover {
  background: #edd0d0;
}
[data-theme="light"] .btn-reactivate {
  background: #e4f5e4;
  border: 1px solid #d0e8d0;
}
[data-theme="light"] .btn-reactivate:hover {
  background: #d0edd0;
}
[data-theme="light"] .btn-refresh {
  background: #e4eef5;
  border: 1px solid #d0dee8;
}
[data-theme="light"] .btn-refresh:hover {
  background: #d0e0ed;
}
[data-theme="light"] .btn-delete {
  background: #f5e4e4;
  border: 1px solid #e8d0d0;
}
[data-theme="light"] .btn-delete:hover {
  background: #edd0d0;
}
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}
.modal-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.5rem;
  width: 90%;
  max-width: 380px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.modal-card h3 {
  margin: 0 0 1rem;
  font-size: 1rem;
  color: var(--text-primary);
}
.rename-input {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.9rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  box-sizing: border-box;
}
.rename-input:focus {
  border-color: var(--accent);
}
.modal-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 1rem;
}
.btn-cancel {
  background: var(--border);
  color: var(--text-secondary);
}
.btn-cancel:hover {
  opacity: 0.8;
}
.btn-save {
  background: #3498db;
  color: #fff;
}
.btn-save:hover {
  background: #2980b9;
}
[data-theme="light"] .modal-card {
  border-color: #e0e0e0;
}
[data-theme="light"] .rename-input {
  border-color: #d0d0d0;
}
@media (max-width: 600px) {
  .stores-grid {
    grid-template-columns: 1fr;
  }
  .ml-header {
    flex-direction: column;
    align-items: stretch;
  }
  .btn-connect {
    justify-content: center;
  }
}
.empty-state {
  text-align: center;
  padding: 4rem 1rem;
  color: var(--text-secondary);
}
.empty-state svg {
  margin-bottom: 1rem;
}
.empty-state h3 {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  color: var(--text-primary);
}
.empty-state p {
  margin: 0;
  font-size: 0.88rem;
  max-width: 360px;
  margin: 0 auto;
}
.ml-store-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.6rem 0;
  margin-bottom: 0.75rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.store-bar-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.store-label {
  font-weight: 500;
}
.store-label strong {
  color: var(--text-primary);
}
.store-switcher {
  position: relative;
}
.store-switch-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: var(--card-bg);
  color: var(--text-secondary);
  font-size: 0.78rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.12s;
}
.store-switch-btn:hover {
  border-color: var(--accent);
  color: var(--text-primary);
}
.store-switch-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100;
  margin-top: 0.35rem;
  min-width: 240px;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 4px 16px rgba(0,0,0,0.12);
  overflow: hidden;
}
.store-switch-dropdown.open {
  display: block;
}
.store-switch-form {
  margin: 0;
}
.store-switch-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  width: 100%;
  padding: 0.55rem 0.75rem;
  border: none;
  background: none;
  color: var(--text-primary);
  font-size: 0.85rem;
  cursor: pointer;
  transition: background 0.1s;
  text-align: left;
}
.store-switch-item:hover {
  background: var(--border);
}
.switch-item-icon {
  flex-shrink: 0;
}
.switch-item-name {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.switch-item-country {
  font-size: 0.7rem;
  color: var(--text-secondary);
  font-weight: 700;
}
.products-toolbar {
  margin-bottom: 1rem;
}
.products-search {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-bottom: 0.75rem;
}
.products-search .search-input-wrap {
  display: flex;
  gap: 0.4rem;
  flex: 1;
  position: relative;
  align-items: center;
}
.products-search .search-icon {
  position: absolute;
  left: 0.65rem;
  color: var(--text-secondary);
  pointer-events: none;
  opacity: 0.5;
}
.products-search .search-input.has-icon {
  padding-left: 2rem;
}
.products-search .search-input {
  flex: 1;
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s;
}
.products-search .search-input:focus {
  border-color: var(--accent);
}
.products-search .btn-search {
  padding: 0.55rem 1rem;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--accent);
  color: #fff;
  white-space: nowrap;
  transition: opacity 0.15s;
}
.products-search .btn-search:hover {
  opacity: 0.85;
}
.products-search .btn-clear-search {
  padding: 0.55rem 0.8rem;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  text-decoration: none;
  color: var(--text-secondary);
  background: var(--border);
  display: inline-flex;
  align-items: center;
}
.products-search .btn-clear-search:hover {
  opacity: 0.8;
}
.products-filters {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.filter-select {
  padding: 0.4rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.8rem;
  background: var(--card-bg);
  color: var(--text-primary);
  cursor: pointer;
  outline: none;
}
.filter-select:focus {
  border-color: var(--accent);
}
.btn-export {
  padding: 0.4rem 0.85rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  color: var(--text-primary);
  background: var(--card-bg);
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-left: auto;
  transition: border-color 0.15s;
}
.btn-export:hover {
  border-color: var(--accent);
}
[data-theme="light"] .btn-export {
  background: #fff;
  border-color: #d0d0d0;
}
.products-table-wrap {
  min-height: 200px;
  position: relative;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.products-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 3rem 1rem;
  color: var(--text-secondary);
  font-size: 0.9rem;
}
.products-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 3rem 1rem;
  color: var(--text-secondary);
  text-align: center;
}
.products-error p {
  margin: 0;
  font-size: 0.9rem;
}
.btn-retry {
  padding: 0.5rem 1.2rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card-bg);
  color: var(--text-primary);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}
.btn-retry:hover {
  border-color: var(--accent);
}
.products-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.products-table thead {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--bg);
}
.products-table th {
  background: var(--bg);
  color: var(--text-secondary);
  font-weight: 500;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--border);
  text-align: left;
  white-space: nowrap;
}
.products-table td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  color: var(--text-primary);
}
.products-table tbody tr:last-child td {
  border-bottom: none;
}
.products-table tbody tr:hover {
  background: rgba(0,0,0,0.015);
}
.products-table tbody tr {
  animation: product-row-in 0.3s ease both;
}
@keyframes product-row-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.th-img {
  width: 44px;
}
.th-title {
  min-width: 100px;
}
.th-sku {
  width: 130px;
}
.th-price {
  width: 90px;
}
.th-stock {
  width: 75px;
}
.th-link {
  width: 36px;
}
.prod-img {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  border: 1px solid var(--border);
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.prod-img-src {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.prod-img-fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  opacity: 0.55;
}
.prod-link {
  color: var(--text-primary);
  text-decoration: none;
  font-weight: 500;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.prod-link:hover {
  color: var(--accent);
}
.sku-tag {
  display: inline-block;
  padding: 0.1rem 0.3rem;
  font-size: 0.72rem;
  font-weight: 400;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  color: var(--text-secondary);
  border: 1px solid var(--border);
  border-radius: 3px;
}
.text-muted {
  color: var(--text-secondary);
  opacity: 0.5;
}
.td-price {
  font-weight: 400;
  font-size: 0.78rem;
  white-space: nowrap;
}
.td-stock {
  white-space: nowrap;
}
.td-stock.stock-ok {
  color: #27ae60;
  font-weight: 400;
}
.td-stock.stock-low {
  color: #e67e22;
  font-weight: 400;
}
.td-stock.stock-out {
  color: #e74c3c;
  font-weight: 400;
}
.td-link {
  text-align: center;
}
.prod-mlink {
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s;
}
.prod-mlink:hover {
  color: var(--accent);
}
.products-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.35rem;
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
  flex-wrap: wrap;
}
.page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 0.4rem 0.5rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-primary);
  background: var(--card-bg);
  cursor: pointer;
  transition: all 0.12s;
}
.page-btn:hover {
  border-color: var(--accent);
  background: var(--border);
}
.page-btn.current {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.page-dots {
  padding: 0.4rem 0.3rem;
  font-size: 0.82rem;
  color: var(--text-secondary);
}
.products-info {
  text-align: center;
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-top: 0.5rem;
}
.btn-primary-tab {
  display: inline-block;
  margin-top: 1rem;
  padding: 0.55rem 1.2rem;
  background: var(--accent);
  color: #fff;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 600;
}
.export-desc {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin: 0 0 1rem;
}
.field-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.field-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  font-size: 0.85rem;
  cursor: pointer;
  transition: background 0.12s;
}
.field-check:hover {
  background: var(--border);
}
.field-check input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  accent-color: var(--accent);
  cursor: pointer;
}
.field-check span {
  color: var(--text-primary);
}
.export-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  width: 100%;
}
.btn-modal-secondary {
  padding: 0.45rem 1rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  background: var(--card-bg);
  color: var(--text-primary);
}
.btn-modal-secondary:hover {
  border-color: var(--accent);
}
.btn-modal-primary {
  padding: 0.45rem 1rem;
  border: none;
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  background: #27ae60;
  color: #fff;
  display: inline-flex;
  align-items: center;
}
.btn-modal-primary:hover {
  background: #219a52;
}
@media (max-width: 768px) {
  .products-table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .products-table thead th, .products-table tbody td {
    white-space: nowrap;
    font-size: 0.78rem;
    padding: 0.45rem 0.35rem;
  }
  .prod-thumb {
    width: 32px;
    height: 32px;
  }
  .th-sku, .td-sku .sku-tag {
    display: none;
  }
  .products-search {
    flex-direction: column;
  }
  .products-search .search-input-wrap {
    width: 100%;
  }
  .products-filters {
    gap: 0.4rem;
  }
  .btn-export {
    margin-left: 0;
  }
}
.users-toolbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}
.ut-search {
  flex: 1;
  min-width: 0;
}
.ut-search-field {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.55rem 0.85rem;
  width: 100%;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ut-search-field:focus-within {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(52,152,219,0.08);
}
.ut-search-field svg {
  color: var(--text-secondary);
  opacity: 0.5;
  flex-shrink: 0;
}
.ut-search-field input {
  border: none;
  background: transparent;
  color: var(--text-primary);
  font-size: 0.88rem;
  outline: none;
  width: 100%;
}
.ut-search-field input::placeholder {
  color: var(--text-secondary);
  opacity: 0.5;
}
.ut-search-clear {
  display: inline-flex;
  color: var(--text-secondary);
  opacity: 0.5;
  transition: opacity 0.12s, color 0.12s;
  text-decoration: none;
}
.ut-search-clear:hover {
  opacity: 1;
  color: #e74c3c;
}
.ut-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.ut-btn-primary {
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
}
.ut-btn-primary:hover {
  background: #15803d;
  border-color: #15803d;
}
.ut-btn-secondary {
  background: var(--bg);
  color: var(--text-primary);
  border-color: var(--border);
}
.ut-btn-secondary:hover {
  background: var(--border);
}
.products-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 5rem 1rem;
  color: var(--text-secondary);
  text-align: center;
}
.products-empty svg {
  opacity: 0.4;
}
.products-empty p {
  margin: 0;
  font-size: 0.9rem;
}
:root {
  --ml-blue: #3483fa;
}
.ut-table-wrap {
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
.ut-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.84rem;
}
.ut-table thead {
  background: var(--bg);
}
.ut-table th {
  text-align: left;
  padding: 0.65rem 0.75rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.ut-table td {
  padding: 0.55rem 0.75rem;
  border-bottom: 1px solid var(--border);
  vertical-align: middle;
  color: var(--text-primary);
}
.ut-table tbody tr:last-child td {
  border-bottom: none;
}
.ut-tr-inactive {
  opacity: 0.5;
}
.ut-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1rem;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 0.84rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.ut-btn-primary {
  background: #16a34a;
  color: #fff;
  border-color: #16a34a;
}
.ut-btn-primary:hover {
  background: #15803d;
  border-color: #15803d;
}
.ut-edit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  text-decoration: none;
  transition: all 0.12s;
}
.ut-edit-btn:hover {
  background: rgba(52,152,219,0.08);
  color: var(--accent);
}
.users-empty {
  text-align: center;
  padding: 3.5rem 1rem;
  color: var(--text-secondary);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.users-empty svg {
  opacity: 0.3;
}
.users-empty p {
  margin: 0;
  font-size: 0.9rem;
}
.td-store {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.td-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(52, 131, 250, 0.1);
  color: var(--ml-blue);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.td-info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
}
.td-actions {
  display: flex;
  gap: 0.15rem;
}
.d-badge {
  display: inline-block;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  font-size: 0.7rem;
  font-weight: 600;
}
.d-badge.active {
  background: rgba(16,185,129,0.1);
  color: #16a34a;
}
.d-badge.inactive {
  background: rgba(148,163,184,0.1);
  color: #94a3b8;
}
.d-badge.ok {
  background: rgba(16,185,129,0.1);
  color: #16a34a;
}
.d-badge.exp {
  background: rgba(239,68,68,0.1);
  color: #e74c3c;
}
.d-badge.country {
  background: var(--bg);
  color: var(--text-secondary);
  border: 1px solid var(--border);
}
.metric-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(148,163,184,0.25);
  border-top-color: #3483fa;
  border-radius: 50%;
  animation: metricSpin 0.7s linear infinite;
  vertical-align: middle;
}
@keyframes metricSpin {
  to {
    transform: rotate(360deg);
  }
}
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(2px);
}
.modal-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 1.5rem;
  width: 90%;
  max-width: 380px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.modal-card h3 {
  margin: 0 0 1rem;
  font-size: 1rem;
  color: var(--text-primary);
}
.rename-input {
  width: 100%;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.9rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  box-sizing: border-box;
}
.rename-input:focus {
  border-color: var(--accent);
}
.modal-actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
  margin-top: 1rem;
}
.btn-cancel {
  background: var(--border);
  color: var(--text-secondary);
}
.btn-cancel:hover {
  opacity: 0.8;
}
.btn-save {
  background: var(--accent);
  color: #fff;
}
.btn-save:hover {
  filter: brightness(1.1);
}
.umodal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.umodal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  backdrop-filter: blur(2px);
}
.umodal-card {
  position: relative;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.18);
  max-width: 380px;
  width: 100%;
  overflow: hidden;
  animation: umodalIn 220ms cubic-bezier(.22,1,.36,1);
}
@keyframes umodalIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
.umodal-body {
  padding: 1.5rem 1.75rem 1rem;
  text-align: center;
}
.umodal-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: rgba(217,119,6,0.08);
  color: #d97706;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
}
.umodal-icon.danger {
  background: var(--danger);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--danger) 10%, transparent);
  }
  color: var(--danger);
}
.umodal-icon.success {
  background: rgba(16,185,129,0.08);
  color: #10b981;
}
.umodal-title {
  margin: 0 0 0.4rem;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text-primary);
}
.umodal-text {
  margin: 0;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.umodal-actions {
  display: flex;
  gap: 0.6rem;
  padding: 0.75rem 1.75rem 1.25rem;
  justify-content: center;
}
.umodal-actions .ut-btn {
  min-width: 110px;
  justify-content: center;
}
.ut-btn-secondary {
  background: var(--card-bg);
  color: var(--text-primary);
  border: 1px solid var(--border);
}
.ut-btn-secondary:hover {
  border-color: var(--accent);
}
.btn-warn {
  background: #d97706;
  color: #fff;
  border-color: #d97706;
}
.btn-warn:hover {
  background: #b45309;
}
.btn-success-ud {
  background: #10b981;
  color: #fff;
  border-color: #10b981;
}
.btn-success-ud:hover {
  background: #059669;
}
[data-theme="light"] .modal-card {
  border-color: #e0e0e0;
}
[data-theme="light"] .rename-input {
  border-color: #d0d0d0;
}
@media (max-width: 768px) {
  .ut-table {
    font-size: 0.78rem;
  }
  .ut-table th, .ut-table td {
    padding: 0.45rem 0.5rem;
  }
  .td-actions {
    flex-direction: column;
    gap: 0.15rem;
  }
}
.settings-layout {
  display: flex;
  gap: 2rem;
  align-items: flex-start;
}
.settings-nav {
  width: 210px;
  flex-shrink: 0;
  position: sticky;
  top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.settings-nav-item {
  display: block;
  padding: 0.5rem 0.75rem;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.12s, color 0.12s;
}
.settings-nav-item:hover {
  background: var(--bg-main);
  color: var(--text-primary);
}
.settings-nav-item.active {
  background: var(--border);
  color: var(--text-primary);
  font-weight: 600;
}
.settings-content {
  flex: 1;
  min-width: 0;
}
.settings-panel {
  display: none;
}
.settings-panel.active {
  display: block;
}
.btn-save-settings {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.55rem 1.4rem;
  background: #238636;
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.btn-save-settings:hover {
  background: #2ea043;
}
.purge-section {
  margin-top: 1.5rem;
}
.purge-section h4 {
  font-size: 0.95rem;
  color: var(--text-primary);
  margin: 0 0 0.6rem;
}
.purge-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}
.purge-card {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}
.purge-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.purge-card-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text-primary);
}
.purge-badge {
  display: inline-block;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  background: rgba(52, 131, 250, 0.1);
  color: #3483fa;
}
.purge-badge.danger {
  background: #f8d7da;
  color: #8a3a3a;
}
.purge-form {
  display: flex;
  gap: 0.5rem;
  align-items: flex-end;
}
.purge-form label {
  font-size: 0.82rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.purge-form input[type="number"] {
  width: 80px;
  padding: 0.45rem 0.6rem;
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.85rem;
  background: var(--bg-main);
  color: var(--text-primary);
  text-align: center;
}
.purge-form input[type="number"]:focus {
  outline: none;
  border-color: var(--accent);
}
.btn-purge {
  padding: 0.45rem 1rem;
  border: none;
  border-radius: 6px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  background: #e74c3c;
  color: #fff;
  transition: background 0.15s;
  white-space: nowrap;
}
.btn-purge:hover {
  background: #c0392b;
}
.purge-result {
  font-size: 0.82rem;
  padding: 0.3rem 0;
}
.purge-result.success {
  color: #27ae60;
}
.purge-result.error {
  color: #e74c3c;
}
.al-wrap {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
.al-wrap .al-stat-number, .al-wrap .alc-time, .al-wrap .alc-ip {
  font-variant-numeric: tabular-nums;
}
.al-wrap h1, .al-wrap h2, .al-wrap h3 {
  text-wrap: balance;
}
.al-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.85rem;
  margin-bottom: 1.25rem;
}
.al-stat-card {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  padding: 1rem 1.15rem;
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  transform: translateY(0);
}
.al-stat-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
  transform: translateY(-2px);
}
.al-stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.al-stat-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.al-stat-number {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
}
.al-stat-number.sm {
  font-size: 1rem;
  font-weight: 600;
}
.al-stat-label {
  font-size: 0.72rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  font-weight: 600;
}
.al-search {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 0.75rem 1rem;
  margin-bottom: 1.25rem;
}
.al-search-form {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}
.al-search-group {
  position: relative;
  flex: 1;
  min-width: 220px;
}
.al-search-icon {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-secondary);
  opacity: 0.5;
  pointer-events: none;
}
.al-search-group .al-input {
  width: 100%;
  padding: 0.45rem 0.75rem 0.45rem 2.2rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  transition: border-color 0.15s, box-shadow 0.15s;
  font-family: inherit;
}
.al-search-group .al-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.al-search-group .al-input::placeholder {
  color: var(--text-secondary);
  opacity: 0.6;
}
.al-select {
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.85rem;
  background: var(--bg);
  color: var(--text-primary);
  outline: none;
  cursor: pointer;
  transition: border-color 0.15s;
  font-family: inherit;
  min-width: 170px;
}
.al-select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(var(--accent-rgb), 0.1);
}
.al-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-primary);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
  white-space: nowrap;
}
.al-btn:hover {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
  color: var(--accent);
}
.al-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.al-count {
  font-size: 0.82rem;
  color: var(--text-secondary);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.al-table-wrap {
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;
}
.al-table {
  width: 100%;
  border-collapse: collapse;
}
.al-table thead th {
  padding: 0.6rem 0.85rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
  text-align: left;
  white-space: nowrap;
}
.al-table thead th:last-child {
  text-align: right;
}
.al-table tbody tr {
  transition: background 0.12s ease;
  animation: al-row-in 0.35s ease both;
}
.al-table tbody tr:nth-child(even) {
  background: rgba(255,255,255,0.015);
}
.al-table tbody tr:hover {
  background: rgba(var(--accent-rgb), 0.03);
}
.al-table tbody tr:not(:last-child) td {
  border-bottom: 1px solid var(--border);
}
.al-table tbody td {
  padding: 0.55rem 0.85rem;
  font-size: 0.82rem;
  color: var(--text-primary);
  vertical-align: middle;
}
.al-table tbody td:last-child {
  text-align: right;
}
.al-table tbody tr:nth-child(1) {
  animation-delay: 0.02s;
}
.al-table tbody tr:nth-child(2) {
  animation-delay: 0.04s;
}
.al-table tbody tr:nth-child(3) {
  animation-delay: 0.06s;
}
.al-table tbody tr:nth-child(4) {
  animation-delay: 0.08s;
}
.al-table tbody tr:nth-child(5) {
  animation-delay: 0.10s;
}
.al-table tbody tr:nth-child(6) {
  animation-delay: 0.12s;
}
.al-table tbody tr:nth-child(7) {
  animation-delay: 0.14s;
}
.al-table tbody tr:nth-child(8) {
  animation-delay: 0.16s;
}
.al-table tbody tr:nth-child(9) {
  animation-delay: 0.18s;
}
.al-table tbody tr:nth-child(10) {
  animation-delay: 0.20s;
}
.al-table tbody tr:nth-child(11) {
  animation-delay: 0.22s;
}
.al-table tbody tr:nth-child(12) {
  animation-delay: 0.24s;
}
.al-table tbody tr:nth-child(13) {
  animation-delay: 0.26s;
}
.al-table tbody tr:nth-child(14) {
  animation-delay: 0.28s;
}
.al-table tbody tr:nth-child(15) {
  animation-delay: 0.30s;
}
@keyframes al-row-in {
  from {
    opacity: 0;
    transform: translateY(6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.al-table .alc-time {
  font-size: 0.75rem;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  color: var(--text-secondary);
  opacity: 0.7;
  white-space: nowrap;
}
.al-table .alc-user {
  font-weight: 600;
  font-size: 0.82rem;
  color: var(--text-primary);
}
.al-table .alc-action {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
}
.al-table .alc-action-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.al-table .alc-action-label {
  font-size: 0.78rem;
  font-weight: 500;
}
.al-table .alc-desc {
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.82rem;
  color: var(--text-primary);
}
.al-table .alc-ip {
  font-size: 0.7rem;
  font-family: 'SF Mono', 'Menlo', 'Consolas', monospace;
  color: var(--text-secondary);
  opacity: 0.5;
}
.al-row-auth .alc-action-dot {
  background: #22c55e;
}
.al-row-auth .alc-action-label {
  color: #22c55e;
}
.al-row-modify .alc-action-dot {
  background: var(--accent);
}
.al-row-modify .alc-action-label {
  color: var(--accent);
}
.al-row-delete .alc-action-dot {
  background: #ef4444;
}
.al-row-delete .alc-action-label {
  color: #ef4444;
}
.al-row-export .alc-action-dot {
  background: #f59e0b;
}
.al-row-export .alc-action-label {
  color: #f59e0b;
}
.al-empty {
  text-align: center;
  padding: 3.5rem 1.5rem;
}
.al-empty-icon {
  opacity: 0.2;
  color: var(--text-primary);
  margin-bottom: 0.75rem;
}
.al-empty h3 {
  margin: 0 0 0.35rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--text-primary);
}
.al-empty p {
  margin: 0;
  font-size: 0.88rem;
  color: var(--text-secondary);
}
.al-pagination {
  display: flex;
  justify-content: center;
  gap: 0.35rem;
  margin-top: 1.5rem;
  padding-bottom: 0.5rem;
}
.al-page {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 0.5rem;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--text-primary);
  text-decoration: none;
  transition: all 0.12s;
  background: transparent;
  font-family: inherit;
}
.al-page:hover {
  border-color: var(--accent);
  color: var(--accent);
}
.al-page:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.al-page.current {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.al-page-prev, .al-page-next {
  font-weight: 600;
}
@media (max-width: 900px) {
  .al-stats {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 640px) {
  .al-stats {
    grid-template-columns: 1fr;
  }
  .al-search-form {
    flex-direction: column;
    align-items: stretch;
  }
  .al-search-group {
    min-width: 0;
  }
  .al-select {
    width: 100%;
  }
  .al-btn {
    width: 100%;
    justify-content: center;
  }
  .al-table thead {
    display: none;
  }
  .al-table tbody tr {
    display: block;
    padding: 0.75rem;
    border-bottom: 1px solid var(--border);
    animation: none;
  }
  .al-table tbody td {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.3rem 0;
    border-bottom: none;
    text-align: right;
  }
  .al-table tbody td::before {
    content: attr(data-label);
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: left;
  }
  .al-table tbody td:last-child {
    text-align: right;
  }
  .al-table .alc-desc {
    max-width: 180px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .al-table tbody tr {
    animation: none;
  }
  .al-stat-card {
    transition: none;
  }
}
.wp-wrap {
  --wp-teal: #14b8a6;
  --wp-teal-rgb: 20, 184, 166;
  --wp-amber: #f59e0b;
  --wp-amber-rgb: 245, 158, 11;
  --wp-green: #22c55e;
  --wp-green-rgb: 34, 197, 94;
  --wp-red: #ef4444;
  --wp-red-rgb: 239, 68, 68;
  --wp-border: var(--border);
  --wp-text: var(--wp-text);
  --wp-text-dim: var(--text-secondary);
  --wp-font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --wp-font-mono: 'SF Mono', 'JetBrains Mono', ui-monospace, monospace;
  --wp-radius: 12px;
  --wp-radius-sm: 8px;
  --wp-radius-xs: 6px;
  --wp-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
  --wp-shadow-md: 0 4px 6px rgba(0,0,0,0.07), 0 2px 4px rgba(0,0,0,0.06);
  max-width: 900px;
  margin: 2rem auto 0;
  font-family: var(--wp-font-body);
  color: var(--wp-text);
}
.wp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.wp-section {
  margin-bottom: 1.5rem;
  background: var(--card-bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  padding: 1.25rem 1.5rem;
  box-shadow: var(--wp-shadow);
}
.wp-section-heading {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-section-icon {
  display: flex;
  align-items: center;
  color: var(--wp-teal);
}
.wp-section-icon {
  display: flex;
  align-items: center;
  color: var(--wp-teal);
  margin-right: 0;
}
.wp-section-content {
  display: block;
  padding: 0;
}
@keyframes wpSlideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.wp-section-desc {
  font-size: 0.85rem;
  color: var(--wp-text-dim);
  margin: 0 0 1rem;
  line-height: 1.55;
}
.wp-card {
  background: var(--bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}
.wp-card:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.wp-card-title {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-card-status {
  align-items: center;
  text-align: center;
}
.wp-card-status-header {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.wp-card-status-icon {
  display: flex;
  align-items: center;
  color: var(--wp-green);
}
.wp-card-status-info {
  display: flex;
  flex-direction: column;
  text-align: left;
}
.wp-card-status-info strong {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-card-status-info span {
  font-size: 0.78rem;
  color: var(--wp-text-dim);
}
.wp-card-status-success .wp-card-status-icon {
  color: var(--wp-green);
}
.wp-alert {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.875rem 1rem;
  margin-bottom: 1rem;
  border-radius: var(--wp-radius-sm);
  font-size: 0.85rem;
}
.wp-alert-warning {
  background: rgba(var(--wp-amber-rgb), 0.1);
  border: 1px solid rgba(var(--wp-amber-rgb), 0.2);
  color: var(--wp-amber);
}
.wp-alert-icon {
  flex-shrink: 0;
}
.wp-alert-message {
  flex: 1;
}
.wp-quick-action {
  border-top: 1px solid var(--wp-border);
  padding-top: 1rem;
  margin-top: 0.25rem;
}
.wp-quick-action-body {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.wp-quick-action-text {
  flex: 1;
  min-width: 0;
}
.wp-quick-action-text strong {
  display: block;
  font-size: 0.84rem;
  color: var(--wp-text);
  font-weight: 600;
}
.wp-quick-action-text span {
  display: block;
  font-size: 0.73rem;
  color: var(--wp-text-dim);
  margin-top: 0.1rem;
}
.wp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.5rem 1rem;
  border-radius: var(--wp-radius-sm);
  font-size: 0.82rem;
  font-weight: 600;
  font-family: var(--wp-font-body);
  cursor: pointer;
  text-decoration: none;
  border: 1px solid var(--wp-border);
  white-space: nowrap;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  background: transparent;
  color: var(--wp-text);
}
.wp-btn:active {
  transform: scale(0.98);
}
.wp-btn:focus-visible {
  outline: 2px solid var(--wp-teal);
  outline-offset: 2px;
}
.wp-btn-primary {
  border-color: var(--wp-teal);
  color: var(--wp-teal);
}
.wp-btn-primary:hover {
  background: rgba(var(--wp-teal-rgb), 0.08);
}
.wp-btn-success {
  border-color: var(--wp-green);
  color: var(--wp-green);
}
.wp-btn-success:hover {
  background: rgba(var(--wp-green-rgb), 0.08);
}
.wp-btn-amber {
  border-color: var(--wp-amber);
  color: var(--wp-amber);
}
.wp-btn-amber:hover {
  background: rgba(var(--wp-amber-rgb), 0.08);
}
.wp-btn-ghost {
  border-color: transparent;
  color: var(--wp-text-dim);
}
.wp-btn-ghost:hover {
  color: var(--wp-text);
  background: rgba(128,128,128,0.06);
}
.wp-btn-outline:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: rgba(var(--accent-rgb), 0.06);
}
.wp-btn-sm {
  padding: 0.375rem 0.75rem;
  font-size: 0.78rem;
}
.wp-btn-block {
  width: 100%;
  justify-content: center;
}
.wp-btn-icon {
  padding: 0.375rem;
  border-radius: var(--wp-radius-xs);
  min-width: 32px;
  min-height: 32px;
}
.wp-btn-group {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
  width: 100%;
}
.pw-card-review-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
  color: var(--accent);
  font-size: 0.95rem;
  font-weight: 700;
}
.pw-card-review-desc {
  margin: 0 0 1rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.pw-btn-amber {
  border: 1px solid #f59e0b;
  background: transparent;
  color: #f59e0b;
  transition: all 0.2s ease;
}
.pw-btn-amber:hover {
  background: rgba(245, 158, 11, 0.08);
  transform: translateY(-1px);
}
.wp-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.2rem 0.5rem;
  font-size: 0.7rem;
  font-weight: 600;
  white-space: nowrap;
  font-family: var(--wp-font-body);
  border-radius: 999px;
  background: rgba(128,128,128,0.08);
  color: var(--wp-text-dim);
  transition: all 0.2s ease;
}
.wp-badge:hover {
  transform: scale(1.05);
}
.wp-badge-green {
  background: rgba(var(--wp-green-rgb), 0.12);
  color: var(--wp-green);
}
.wp-badge-amber {
  background: rgba(var(--wp-amber-rgb), 0.12);
  color: var(--wp-amber);
}
.wp-badge-red {
  background: rgba(var(--wp-red-rgb), 0.12);
  color: var(--wp-red);
}
.wp-table-wrap {
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  overflow: auto;
  background: var(--bg);
  max-height: 60vh;
  position: relative;
  scroll-behavior: smooth;
}
.wp-table-wrap.is-virtualized {
  overflow-y: scroll;
  contain: strict;
}
.wp-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  table-layout: fixed;
}
.wp-table.is-virtualized tbody {
  display: block;
}
.wp-table.is-virtualized thead, .wp-table.is-virtualized tbody tr {
  display: table;
  width: 100%;
  table-layout: fixed;
}
.wp-table thead th {
  text-align: left;
  padding: 0.7rem 0.85rem;
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--wp-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--card-bg);
  border-bottom: 2px solid var(--wp-border);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 10;
  box-shadow: 0 1px 0 var(--wp-border);
}
.wp-table thead th:nth-child(1) {
  width: 32px;
}
.wp-table thead th:nth-child(2) {
  width: 120px;
}
.wp-table thead th:nth-child(3) {
  width: auto;
}
.wp-table thead th:nth-child(4) {
  width: 80px;
}
.wp-table thead th:nth-child(5) {
  width: 100px;
}
.wp-table thead th:nth-child(6) {
  width: 70px;
}
.wp-table thead th:nth-child(7) {
  width: 150px;
}
.wp-table thead th:nth-child(8) {
  width: 48px;
}
.wp-table tbody td {
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--wp-border);
  color: var(--wp-text);
  vertical-align: middle;
}
.wp-table tbody tr:last-child td {
  border-bottom: none;
}
.wp-table tbody tr {
  transition: background-color 0.15s ease, transform 0.15s ease;
}
.wp-table tbody tr:hover {
  background: rgba(var(--accent-rgb), 0.02);
}
.wp-table tbody tr.has-errors {
  background: rgba(var(--wp-red-rgb), 0.04);
}
.wp-table tbody tr.has-errors:hover {
  background: rgba(var(--wp-red-rgb), 0.06);
}
.wp-table tbody tr.has-issues {
  background: rgba(var(--wp-amber-rgb), 0.04);
}
.wp-table tbody tr.has-issues:hover {
  background: rgba(var(--wp-amber-rgb), 0.06);
}
.wp-table td code {
  font-family: var(--wp-font-mono);
  font-size: 0.75rem;
  color: var(--wp-text);
  background: rgba(128,128,128,0.06);
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
}
.wp-table .wp-cell-num {
  font-variant-numeric: tabular-nums;
  text-align: right;
  font-weight: 600;
}
.wp-table-truncate {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wp-table tbody tr {
  content-visibility: auto;
  contain-intrinsic-size: 0 40px;
}
.wp-virtual-scroll-container {
  height: 100%;
  overflow-y: auto;
  contain: strict;
}
.wp-virtual-scroll-spacer {
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
}
.wp-virtual-scroll-items {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  will-change: transform;
}
.wp-table-info {
  margin-top: 0.5rem;
  font-size: 0.75rem;
  color: var(--wp-text-dim);
  text-align: center;
}
.wp-table-controls {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 0.75rem;
  flex-wrap: wrap;
}
.wp-search-input {
  position: relative;
  flex: 1;
  min-width: 200px;
}
.wp-search-input svg {
  position: absolute;
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--wp-text-dim);
  pointer-events: none;
}
.wp-search-input input {
  width: 100%;
  padding: 0.5rem 0.75rem 0.5rem 2.25rem;
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  font-size: 0.82rem;
  background: var(--bg);
  color: var(--wp-text);
  font-family: var(--wp-font-body);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wp-search-input input:focus {
  border-color: var(--wp-teal);
  box-shadow: 0 0 0 3px rgba(var(--wp-teal-rgb), 0.12);
  outline: none;
}
.wp-search-input input::placeholder {
  color: var(--wp-text-dim);
}
.wp-search-clear {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.25rem;
  background: transparent;
  border: none;
  border-radius: var(--wp-radius-xs);
  color: var(--wp-text-dim);
  cursor: pointer;
  transition: all 0.15s ease;
}
.wp-search-clear:hover {
  background: rgba(128,128,128,0.1);
  color: var(--wp-text);
}
.wp-table-filters {
  display: flex;
  gap: 0.5rem;
}
.wp-btn[aria-pressed="true"] {
  background: rgba(var(--wp-teal-rgb), 0.1);
  border-color: var(--wp-teal);
  color: var(--wp-teal);
}
.wp-status-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(128,128,128,0.08);
  color: var(--wp-text-dim);
  transition: all 0.2s ease;
}
.wp-status-icon:hover {
  transform: scale(1.1);
}
.wp-status-ok {
  background: rgba(var(--wp-green-rgb), 0.12);
  color: var(--wp-green);
}
.wp-status-warning {
  background: rgba(var(--wp-amber-rgb), 0.12);
  color: var(--wp-amber);
}
.wp-status-error {
  background: rgba(var(--wp-red-rgb), 0.12);
  color: var(--wp-red);
}
.wp-issue-tag {
  display: inline-flex;
  padding: 0.1rem 0.4rem;
  border-radius: 4px;
  font-size: 0.62rem;
  font-weight: 700;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--wp-red);
  background: rgba(var(--wp-red-rgb), 0.1);
  margin-right: 0.25rem;
}
.wp-issue-more-inline {
  font-size: 0.62rem;
  color: var(--wp-text-dim);
  font-weight: 600;
}
.wp-quality-gate {
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  overflow: hidden;
  background: var(--bg);
}
.wp-quality-gate-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.875rem 1.125rem;
  background: var(--card-bg);
  border-bottom: 1px solid var(--wp-border);
  flex-wrap: wrap;
}
.wp-quality-gate-header h3 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-quality-gate-actions {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  flex-wrap: wrap;
}
.wp-quality-gate-legend {
  display: flex;
  gap: 1rem;
  align-items: center;
  padding: 0.5rem 1.125rem;
  font-size: 0.7rem;
  color: var(--wp-text-dim);
  border-bottom: 1px solid var(--wp-border);
  background: var(--card-bg);
}
.wp-quality-gate-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.wp-legend-ok {
  color: var(--wp-green);
  font-weight: 700;
}
.wp-legend-err {
  color: var(--wp-red);
  font-weight: 700;
}
.wp-legend-sys {
  display: inline-flex;
  padding: 0.08rem 0.4rem;
  border-radius: 4px;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  background: rgba(128,128,128,0.08);
  color: var(--wp-text-dim);
}
.wp-issue-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.125rem;
  font-size: 0.78rem;
  border-bottom: 1px solid var(--wp-border);
  transition: background-color 0.15s ease;
}
.wp-issue-row:hover {
  background: rgba(var(--accent-rgb), 0.02);
}
.wp-issue-row:last-child {
  border-bottom: none;
}
.wp-issue-row-icon {
  display: flex;
  align-items: center;
  color: var(--wp-red);
  flex-shrink: 0;
}
.wp-issue-row-meta {
  color: var(--wp-text-dim);
  font-size: 0.7rem;
  font-weight: 600;
  flex-shrink: 0;
}
.wp-issue-row code {
  font-family: var(--wp-font-mono);
  font-size: 0.72rem;
  color: var(--wp-text);
  white-space: nowrap;
  flex-shrink: 0;
  background: rgba(128,128,128,0.06);
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
}
.wp-issue-name {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--wp-text-dim);
  font-size: 0.76rem;
  min-width: 0;
}
.wp-issue-more {
  text-align: center;
  padding: 0.625rem;
  font-size: 0.72rem;
  color: var(--wp-text-dim);
  border-top: 1px solid var(--wp-border);
  background: var(--card-bg);
}
.wp-quality-gate-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 1.125rem;
  border-top: 1px solid var(--wp-border);
  font-size: 0.76rem;
  color: var(--wp-text-dim);
  flex-wrap: wrap;
  background: var(--card-bg);
}
.wp-dropzone {
  border: 2px dashed var(--wp-border);
  border-radius: var(--wp-radius-sm);
  padding: 1.75rem 1.25rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  background: var(--bg);
  overflow: hidden;
}
.wp-dropzone::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(var(--wp-teal-rgb), 0.03) 0%, transparent 50%, rgba(var(--wp-teal-rgb), 0.03) 100%);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.wp-dropzone:hover::before, .wp-dropzone.is-dragover::before {
  opacity: 1;
}
.wp-dropzone:hover, .wp-dropzone.is-dragover {
  border-color: var(--wp-teal);
  background: rgba(var(--wp-teal-rgb), 0.04);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(var(--wp-teal-rgb), 0.08);
}
.wp-dropzone.is-dragover {
  border-style: solid;
  box-shadow: 0 0 0 4px rgba(var(--wp-teal-rgb), 0.15), 0 12px 24px rgba(var(--wp-teal-rgb), 0.2);
  transform: translateY(-4px);
}
.wp-dropzone:focus-visible {
  outline: 2px solid var(--wp-teal);
  outline-offset: 2px;
}
.wp-dropzone-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 0.5rem;
  color: var(--wp-text-dim);
  transition: color 0.2s ease;
}
.wp-dropzone:hover .wp-dropzone-icon {
  color: var(--wp-teal);
}
.wp-dropzone-text {
  font-size: 0.85rem;
  color: var(--wp-text-dim);
  line-height: 1.5;
}
.wp-dropzone-text strong {
  color: var(--wp-text);
  font-weight: 700;
}
.wp-dropzone-hint {
  font-size: 0.7rem;
  color: var(--wp-text-dim);
  margin-top: 0.375rem;
}
.wp-dropzone-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.wp-dropzone-file {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  background: rgba(var(--wp-teal-rgb), 0.08);
  border: 1px solid rgba(var(--wp-teal-rgb), 0.2);
  border-radius: var(--wp-radius-xs);
  font-size: 0.78rem;
  color: var(--wp-teal);
  font-weight: 500;
  margin-top: 0.75rem;
}
.wp-dropzone-file.is-visible {
  display: inline-flex;
}
.wp-divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0.5rem 0;
  color: var(--wp-text-dim);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.wp-divider::before, .wp-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--wp-border);
}
.wp-modal .modal-content {
  background: var(--card-bg);
  border: 1px solid var(--wp-border);
  color: var(--wp-text);
  border-radius: var(--wp-radius);
}
.wp-modal .modal-header {
  border-bottom: 1px solid var(--wp-border);
  padding: 1rem 1.25rem;
}
.wp-modal .modal-title {
  font-size: 1.05rem;
  font-weight: 700;
}
.wp-modal .modal-body {
  padding: 1.25rem;
}
.wp-modal .modal-footer {
  border-top: 1px solid var(--wp-border);
  padding: 0.875rem 1.25rem;
  gap: 0.5rem;
}
.wp-modal .form-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--wp-text);
  margin-bottom: 0.375rem;
}
.wp-modal .form-control {
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  font-size: 0.85rem;
  padding: 0.5rem 0.75rem;
  background: var(--bg);
  color: var(--wp-text);
  font-family: var(--wp-font-body);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wp-modal .form-control:focus {
  border-color: var(--wp-teal);
  box-shadow: 0 0 0 3px rgba(var(--wp-teal-rgb), 0.12);
  outline: none;
}
.wp-modal .form-text {
  font-size: 0.7rem;
  color: var(--wp-text-dim);
  margin-top: 0.25rem;
}
.wp-empty-state {
  text-align: center;
  padding: 2.5rem 1.5rem;
  background: var(--bg);
  border: 2px dashed var(--wp-border);
  border-radius: var(--wp-radius);
  margin-bottom: 1rem;
}
.wp-empty-state-icon {
  display: flex;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--wp-text-dim);
  opacity: 0.5;
}
.wp-empty-state-title {
  margin: 0 0 0.5rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-empty-state-text {
  margin: 0 0 1.25rem;
  font-size: 0.85rem;
  color: var(--wp-text-dim);
  line-height: 1.6;
}
.wp-empty-state-features {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  max-width: 400px;
  margin: 0 auto;
}
.wp-empty-state-feature {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.78rem;
  color: var(--wp-text-dim);
  justify-content: center;
}
.wp-empty-state-feature svg {
  color: var(--wp-green);
  flex-shrink: 0;
}
.wp-processing-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  animation: wpFadeIn 0.2s ease;
}
@keyframes wpFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.wp-processing-content {
  background: var(--card-bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius);
  padding: 2rem 2.5rem;
  text-align: center;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}
.wp-processing-spinner {
  width: 48px;
  height: 48px;
  border: 3px solid var(--wp-border);
  border-top-color: var(--wp-teal);
  border-radius: 50%;
  margin: 0 auto 1rem;
  animation: wpSpin 0.8s linear infinite;
}
.wp-processing-text {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--wp-text);
}
.wp-processing-subtext {
  margin: 0;
  font-size: 0.78rem;
  color: var(--wp-text-dim);
}
.wp-table-skeleton {
  background: var(--bg);
  border: 1px solid var(--wp-border);
  border-radius: var(--wp-radius-sm);
  padding: 0.5rem;
  margin-bottom: 1rem;
}
.wp-skeleton-row {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  padding: 0.65rem 0.75rem;
  border-bottom: 1px solid var(--wp-border);
}
.wp-skeleton-row:last-child {
  border-bottom: none;
}
.wp-skeleton-cell {
  flex: 1;
}
.wp-skeleton-text {
  height: 14px;
  background: linear-gradient(90deg, var(--bg) 0%, var(--wp-border) 50%, var(--bg) 100%);
  background-size: 200% 100%;
  border-radius: 4px;
  animation: wpShimmer 1.5s ease-in-out infinite;
}
.wp-skeleton-text-lg {
  height: 18px;
}
@keyframes wpShimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
.wp-form-hints {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--wp-border);
}
.wp-form-hint {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.75rem;
  color: var(--wp-text-dim);
}
.wp-form-hint code {
  font-family: var(--wp-font-mono);
  font-size: 0.7rem;
  background: rgba(128,128,128,0.08);
  padding: 0.1rem 0.3rem;
  border-radius: 4px;
  color: var(--wp-text);
}
.wp-form-error {
  display: none;
  font-size: 0.73rem;
  color: var(--wp-red);
  margin-top: 0.25rem;
  font-weight: 500;
}
.wp-form-error:not(:empty) {
  display: block;
}
.form-control.is-invalid {
  border-color: var(--wp-red);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23ef4444' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ef4444' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px 12px;
  padding-right: 2.5rem;
}
.form-control.is-invalid:focus {
  border-color: var(--wp-red);
  box-shadow: 0 0 0 3px rgba(var(--wp-red-rgb), 0.12);
}
.wp-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  pointer-events: none;
}
.wp-btn:disabled svg[style*="animation"] {
  animation: wpSpin 1s linear infinite;
}
@keyframes wpSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.step-panel {
  display: none;
  animation: wpFadeIn 0.25s ease;
}
.step-panel.is-active {
  display: block;
}
.wp-skip-link {
  position: absolute;
  top: -100px;
  left: 50%;
  transform: translateX(-50%);
  padding: 0.75rem 1.25rem;
  background: var(--wp-teal);
  color: white;
  font-weight: 600;
  border-radius: var(--wp-radius-sm);
  z-index: 9999;
  transition: top 0.2s ease;
}
.wp-skip-link:focus {
  top: 1rem;
  outline: 2px solid white;
  outline-offset: 2px;
}
.wp-mt-1 {
  margin-top: 0.5rem;
}
@media (prefers-reduced-motion: reduce) {
  .wp-btn, .wp-dropzone, .wp-dropzone-icon, .wp-modal .form-control {
    transition: none;
  }
}
@media (max-width: 768px) {
  .wp-wrap {
    padding: 0 0.75rem;
  }
  .wp-quality-gate-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .wp-quality-gate-actions {
    width: 100%;
  }
  .wp-issue-row {
    flex-wrap: wrap;
    gap: 0.375rem;
  }
  .wp-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .wp-quick-action-body {
    flex-wrap: wrap;
  }
  .wp-btn-group {
    flex-direction: column;
  }
  .wp-btn-block {
    width: 100%;
  }
}
.info-page {
  background-color: var(--bg-main);
  color: var(--text-primary);
  min-height: 100vh;
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
}
.info-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 1px solid var(--border);
  background: var(--bg-main);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--bg-main) 85%, transparent);
  }
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.info-nav-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0.75rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.info-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s;
}
.info-back:hover {
  color: var(--accent);
}
.info-theme-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}
.info-theme-toggle:hover {
  border-color: var(--accent);
  color: var(--accent);
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 8%, transparent);
  }
}
.info-theme-toggle span {
  position: absolute;
  opacity: 0;
  transform: scale(0.5);
  transition: opacity 0.25s, transform 0.25s;
}
.info-theme-toggle[data-current-theme="auto"] .theme-icon-auto, .info-theme-toggle[data-current-theme="light"] .theme-icon-light, .info-theme-toggle[data-current-theme="dark"] .theme-icon-dark {
  opacity: 1;
  transform: scale(1);
}
.info-wrapper {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
}
.info-hero {
  padding: 2.5rem 0 1.5rem;
}
.info-hero-title {
  font-size: 1.75rem;
  font-weight: 400;
  color: var(--text-primary);
  margin: 0;
  letter-spacing: -0.03em;
}
.info-hero-subtitle {
  font-size: 0.9rem;
  color: var(--text-secondary);
  margin: 0.75rem 0 0;
  line-height: 1.6;
  max-width: 520px;
}
.info-body {
  background: var(--card-bg);
  border-radius: 12px;
  padding: 2rem 2.5rem;
  border: 1px solid var(--border);
  box-shadow: 0 1px 4px rgba(0,0,0,0.03);
}
.info-layout {
  display: flex;
  gap: 3rem;
  align-items: flex-start;
  padding-top: 1.5rem;
}
.info-sidenav {
  width: 200px;
  flex-shrink: 0;
}
.sidenav-sticky {
  position: sticky;
  top: 5rem;
}
.sidenav-label {
  display: block;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 0.75rem;
}
.sidenav-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.sidenav-link {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.4rem 0;
  font-size: 0.82rem;
  color: var(--text-secondary);
  text-decoration: none;
  transition: color 0.15s, border-color 0.15s;
  border-left: 2px solid transparent;
  padding-left: 0.75rem;
}
.sidenav-link:hover {
  color: var(--accent);
}
.sidenav-link.active {
  color: var(--text-primary);
  font-weight: 600;
  border-left-color: var(--accent);
}
.info-content {
  flex: 1;
  min-width: 0;
}
.info-section {
  display: none;
  scroll-margin-top: 5.5rem;
}
.info-section.active {
  display: block;
  animation: sectionFadeIn 0.25s ease;
}
@keyframes sectionFadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.info-section-header {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 1.5rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--border);
}
.info-section-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--accent);
  flex-shrink: 0;
}
.info-section-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0;
}
.info-section-body {
  padding-left: 2.5rem;
}
.prose {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--text-primary);
}
.prose h3 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 1.5rem 0 0.5rem;
}
.prose h4 {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 1.25rem 0 0.4rem;
}
.prose p {
  margin: 0 0 1rem;
}
.prose ul, .prose ol {
  margin: 0 0 1rem;
  padding-left: 1.25rem;
}
.prose li {
  margin-bottom: 0.35rem;
}
.prose strong {
  color: var(--text-primary);
  font-weight: 600;
}
.prose a {
  color: var(--accent);
  text-decoration: none;
}
.prose a:hover {
  text-decoration: underline;
}
.info-table {
  display: flex;
  flex-direction: column;
}
.info-table-row {
  display: flex;
  gap: 1rem;
  padding: 0.5rem 0;
}
.info-table-label {
  font-size: 0.875rem;
  color: var(--text-secondary);
  font-weight: 500;
  min-width: 120px;
  flex-shrink: 0;
}
.info-table-value {
  font-size: 0.875rem;
  color: var(--text-primary);
  font-weight: 600;
}
.badge {
  display: inline-block;
  padding: 0.2rem 0.625rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
}
.badge-ok {
  background: var(--success);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--success) 12%, transparent);
  }
  color: var(--success);
}
.info-tech-stack {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.tech-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.tech-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.tech-badge {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  border-radius: 8px;
  background: var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 600;
  border: 1px solid var(--accent);
  @supports (color: color-mix(in lab, red, red)) {
    border: 1px solid color-mix(in srgb, var(--accent) 18%, transparent);
  }
}
.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 0.75rem;
}
.feature-card {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--bg-sidebar);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--bg-sidebar) 50%, var(--card-bg));
  }
}
.feature-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--accent);
  flex-shrink: 0;
  margin-top: 0.1rem;
}
.feature-title {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0 0 0.15rem;
}
.feature-desc {
  font-size: 0.78rem;
  color: var(--text-secondary);
  margin: 0;
  line-height: 1.5;
}
.faq-list {
  display: flex;
  flex-direction: column;
}
.faq-item {
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 0.5rem;
  overflow: hidden;
  transition: border-color 0.15s;
}
.faq-item[open] {
  border-color: var(--border);
}
.faq-question {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  list-style: none;
  transition: color 0.15s, background 0.15s;
  background: var(--bg-sidebar);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--bg-sidebar) 50%, var(--card-bg));
  }
}
.faq-question::-webkit-details-marker {
  display: none;
}
.faq-question:hover {
  color: var(--accent);
}
.faq-question svg {
  color: var(--text-secondary);
  flex-shrink: 0;
  transition: transform 0.2s;
}
.faq-item[open] .faq-question svg {
  transform: rotate(90deg);
  color: var(--accent);
}
.faq-answer {
  padding: 0.25rem 1rem 1rem 2.5rem;
  font-size: 0.85rem;
  color: var(--text-secondary);
  line-height: 1.7;
}
.faq-answer strong {
  color: var(--text-primary);
  font-weight: 600;
}
.contact-grid {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.contact-card {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}
.contact-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--text-secondary);
  flex-shrink: 0;
}
.contact-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.contact-card-label {
  font-size: 0.8rem;
  color: var(--text-secondary);
  font-weight: 500;
}
.contact-card-value {
  font-size: 0.9rem;
  color: var(--text-primary);
  font-weight: 600;
}
.docs-grid {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.doc-card {
  display: flex;
  align-items: center;
  gap: 0.875rem;
  padding: 0.625rem 0.75rem;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.15s;
  border: 1px solid transparent;
}
.doc-card:hover {
  background: var(--bg-sidebar);
  @supports (color: color-mix(in lab, red, red)) {
    background: color-mix(in srgb, var(--bg-sidebar) 50%, var(--card-bg));
  }
  border-color: var(--border);
  transform: translateX(4px);
}
.doc-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  color: var(--accent);
  flex-shrink: 0;
}
.doc-card-internal .doc-card-icon {
  color: var(--success);
}
.doc-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.doc-card-title {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--text-primary);
}
.doc-card-desc {
  font-size: 0.78rem;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.info-footer {
  text-align: center;
  padding: 2rem 0 0.5rem;
}
.info-copyright {
  font-size: 0.82rem;
  color: var(--text-secondary);
  margin: 0 0 0.35rem;
}
.info-credit {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin: 0;
  font-style: italic;
}
@media (max-width: 768px) {
  .info-sidenav {
    display: none;
  }
  .info-layout {
    display: block;
  }
  .info-wrapper {
    max-width: 100%;
  }
}
@media (max-width: 640px) {
  .info-nav-inner {
    padding: 0.625rem 1rem;
  }
  .info-wrapper {
    padding: 0 1rem;
  }
  .info-hero-title {
    font-size: 1.5rem;
  }
  .info-section-body {
    padding-left: 1.5rem;
  }
  .info-table-row {
    flex-direction: column;
    gap: 0.15rem;
  }
  .faq-answer {
    padding-left: 1.25rem;
  }
  .contact-grid, .docs-grid {
    gap: 0.625rem;
  }
  .info-body {
    padding: 1.5rem 1.25rem;
    border-radius: 8px;
  }
  .features-grid {
    grid-template-columns: 1fr;
  }
}
.sync-widget {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 9000;
  font-family: 'Plus Jakarta Sans', sans-serif;
}
.sync-widget-toggle {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 16px 48px rgba(0,0,0,0.12);
  position: relative;
}
.sync-widget-toggle.status-idle {
  background: #10b981;
}
.sync-widget-toggle.status-idle:hover {
  background: #059669;
}
.sync-widget-toggle.status-syncing {
  background: #f59e0b;
}
.sync-widget-toggle.status-syncing:hover {
  background: #d97706;
}
.sync-widget-toggle.status-error {
  background: #ef4444;
}
.sync-widget-toggle.status-error:hover {
  background: #dc2626;
}
.sync-widget-toggle:hover {
  transform: translateY(-2px);
  background: #059669;
  box-shadow: 0 16px 48px rgba(0,0,0,0.15);
}
.sync-widget-toggle svg {
  width: 20px;
  height: 20px;
  color: #fff;
}
.sync-widget-badge {
  display: none;
  position: absolute;
  top: -2px;
  right: -2px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #f59e0b;
  border: 2px solid #059669;
  animation: sync-pulse 1.5s ease-in-out infinite;
}
.sync-toggle-dot {
  position: absolute;
  bottom: -1px;
  right: -1px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #10b981;
  border: 2.5px solid #059669;
  z-index: 1;
}
.sync-toggle-dot.error {
  background: #ef4444;
}
@keyframes sync-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.sync-widget-panel {
  display: none;
  position: absolute;
  bottom: 52px;
  right: 0;
  width: 300px;
  background: var(--bg-sidebar);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 16px 48px rgba(0,0,0,0.3), 0 2px 8px rgba(0,0,0,0.08);
  overflow: hidden;
  animation: sync-slide-in 0.2s ease;
}
@keyframes sync-slide-in {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes sync-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.sync-widget-toggle.spinning svg {
  animation: sync-spin 0.4s ease-in-out;
}
.sync-widget-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border);
}
.sync-widget-header h4 {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-primary);
}
.sync-widget-next-sync {
  font-size: 0.65rem;
  color: var(--text-secondary);
  opacity: 0.7;
  font-weight: 400;
  margin-left: 0.5rem;
}
.sync-widget-close {
  cursor: pointer;
  color: var(--text-secondary);
  font-size: 1rem;
  line-height: 1;
  padding: 2px;
}
.sync-widget-close:hover {
  color: var(--text-primary);
}
.sync-widget-body {
  padding: 0.5rem;
  max-height: 300px;
  overflow-y: auto;
}
.sync-widget-empty {
  text-align: center;
  padding: 1.5rem 1rem;
  color: var(--text-secondary);
  font-size: 0.8rem;
}
.sync-widget-store {
  padding: 0.6rem 0.75rem;
  border-radius: 8px;
  transition: background 0.15s ease;
}
.sync-widget-store:hover {
  background: rgba(255,255,255,0.03);
}
.sync-widget-store-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}
.sync-widget-store-name {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-primary);
  flex: 1;
}
.sync-widget-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  width: 24px;
  height: 24px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  transition: all 0.15s ease;
  padding: 0;
}
.sync-widget-btn:hover {
  background: var(--border);
  color: var(--text-primary);
}
.sync-widget-store-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.sync-widget-status {
  font-size: 0.7rem;
  color: var(--text-secondary);
}
.sync-widget-count {
  font-size: 0.65rem;
  color: var(--text-secondary);
  opacity: 0.6;
}
.sync-widget-progress {
  height: 3px;
  background: var(--border);
  border-radius: 2px;
  margin-top: 0.4rem;
  overflow: hidden;
}
.sync-widget-progress-bar {
  height: 100%;
  background: #f59e0b;
  border-radius: 2px;
  transition: width 0.3s ease;
}
.sync-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.sync-dot.idle {
  background: #10b981;
}
.sync-dot.syncing {
  background: #f59e0b;
  animation: sync-pulse 1.5s ease-in-out infinite;
}
.sync-dot.error {
  background: #ef4444;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .loader-spinner {
    animation: none !important;
    opacity: 0.6;
  }
  .pw-drop:hover, .pw-drop.dragover {
    transform: none !important;
  }
  .pw-step-circle {
    transition: none !important;
  }
  .pw-step-connector {
    transition: none !important;
  }
  .toast-item {
    transition: none !important;
  }
}
@property --tw-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-translate-z {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-leading {
  syntax: "*";
  inherits: false;
}
@property --tw-font-weight {
  syntax: "*";
  inherits: false;
}
@property --tw-tracking {
  syntax: "*";
  inherits: false;
}
@property --tw-ordinal {
  syntax: "*";
  inherits: false;
}
@property --tw-slashed-zero {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-figure {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-backdrop-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-duration {
  syntax: "*";
  inherits: false;
}
@property --tw-ease {
  syntax: "*";
  inherits: false;
}
@property --tw-scale-x {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-y {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@property --tw-scale-z {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-translate-x: 0;
      --tw-translate-y: 0;
      --tw-translate-z: 0;
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-space-y-reverse: 0;
      --tw-border-style: solid;
      --tw-leading: initial;
      --tw-font-weight: initial;
      --tw-tracking: initial;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --tw-backdrop-blur: initial;
      --tw-backdrop-brightness: initial;
      --tw-backdrop-contrast: initial;
      --tw-backdrop-grayscale: initial;
      --tw-backdrop-hue-rotate: initial;
      --tw-backdrop-invert: initial;
      --tw-backdrop-opacity: initial;
      --tw-backdrop-saturate: initial;
      --tw-backdrop-sepia: initial;
      --tw-duration: initial;
      --tw-ease: initial;
      --tw-scale-x: 1;
      --tw-scale-y: 1;
      --tw-scale-z: 1;
    }
  }
}
