.aice {
  --aice-ink: #eaf2ff;
  --aice-muted: #93a7cb;
  --aice-line: rgba(126, 164, 255, .22);
  --aice-accent: #46cbff;
  --aice-accent2: #629dff;
  --aice-accent3: #ae79ff;
  --aice-node: #24365e;
  --aice-node-icon: #d5e2ff;
  --aice-node-contact: #2fb6f0;
  --aice-node-b: #5677ff;
  --aice-node-dim: #1b2744;
  --aice-gold: #ffc35a;
  --aice-gold-2: #ff9b3d;
  --aice-gold-ink: #ffd27f;
  --aice-gold-soft: rgba(255, 195, 90, .2);
  --aice-on-gold: #3a2500;
  --aice-panel: rgba(17, 29, 58, .78);
  --aice-panel-stroke: rgba(126, 164, 255, .26);
  --aice-card: rgba(255, 255, 255, .055);
  --aice-card-stroke: rgba(255, 255, 255, .09);
  --aice-slot: rgba(126, 164, 255, .18);
  --aice-bubble: #f3f7ff;
  --aice-bubble-ink: #13203d;
  --aice-bubble-stroke: rgba(255, 255, 255, 0);
  --aice-step-bg: #142142;
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: inherit;
  background:
    radial-gradient(42% 60% at 20% 46%, rgba(70, 140, 255, .17), transparent 72%),
    radial-gradient(40% 55% at 80% 42%, rgba(174, 121, 255, .13), transparent 72%);
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  -webkit-user-select: none;
  user-select: none;
}
.aice[data-theme="light"] {
  --aice-ink: #10203d;
  --aice-muted: #5b6b82;
  --aice-line: rgba(39, 99, 217, .18);
  --aice-accent: #0ea5e9;
  --aice-accent2: #2763d9;
  --aice-accent3: #7c5cff;
  --aice-node: #dbe4f2;
  --aice-node-icon: #ffffff;
  --aice-node-contact: #38b6f0;
  --aice-node-b: #2f6be0;
  --aice-node-dim: #e5eaf2;
  --aice-gold: #f7a928;
  --aice-gold-2: #ef7d1a;
  --aice-gold-ink: #b45309;
  --aice-gold-soft: rgba(247, 169, 40, .16);
  --aice-on-gold: #3a2500;
  --aice-panel: rgba(255, 255, 255, .92);
  --aice-panel-stroke: #d9e3f0;
  --aice-card: #f5f8fd;
  --aice-card-stroke: #e1e9f4;
  --aice-slot: #d5dfec;
  --aice-bubble: #ffffff;
  --aice-bubble-ink: #13203d;
  --aice-bubble-stroke: #d3deec;
  --aice-step-bg: #ffffff;
  background:
    radial-gradient(42% 60% at 20% 46%, rgba(56, 140, 255, .12), transparent 72%),
    radial-gradient(40% 55% at 80% 42%, rgba(124, 92, 255, .08), transparent 72%),
    linear-gradient(180deg, #f8fbff, #eef3fa);
}
.aice-svg { display: block; width: 100%; height: 100%; overflow: visible; }
.aice text { font-family: inherit; }
.aice .t-ink { fill: var(--aice-ink); }
.aice .t-muted { fill: var(--aice-muted); }
.aice .t-gold { fill: var(--aice-gold-ink); }
.aice .st-accent { stop-color: var(--aice-accent); }
.aice .st-accent2 { stop-color: var(--aice-accent2); }
.aice .st-accent3 { stop-color: var(--aice-accent3); }
.aice .st-gold { stop-color: var(--aice-gold); }
.aice .st-white { stop-color: #fff; }
.aice .st-gold2 { stop-color: var(--aice-gold-2); }
.aice .f-accent { fill: var(--aice-accent); }
.aice .s-accent { stroke: var(--aice-accent); }
.aice .s-accent2 { stroke: var(--aice-accent2); }
.aice .s-gold { stroke: var(--aice-gold); }
.aice .f-gold { fill: var(--aice-gold); }
.aice .f-gold-soft { fill: var(--aice-gold-soft); }
.aice .s-line { stroke: var(--aice-line); }
.aice .n-body { fill: var(--aice-node); }
.aice .n-contact { fill: var(--aice-node-contact); }
.aice .n-gold { fill: var(--aice-gold); }
.aice .n-blue { fill: var(--aice-node-b); }
.aice .n-dim { fill: var(--aice-node-dim); }
.aice .n-icon { fill: var(--aice-node-icon); }
.aice .n-gold-icon { fill: var(--aice-on-gold); }
.aice .panel-bg { fill: var(--aice-panel); stroke: var(--aice-panel-stroke); stroke-width: 1.5; }
.aice[data-theme="light"] .panel-bg { filter: drop-shadow(0 12px 26px rgba(20, 45, 95, .1)); }
.aice .slot { fill: none; stroke: var(--aice-slot); stroke-width: 1.5; stroke-dasharray: 6 7; }
.aice .card-bg { fill: var(--aice-card); stroke: var(--aice-card-stroke); stroke-width: 1.2; }
.aice .bubble-cust { fill: var(--aice-bubble); stroke: var(--aice-bubble-stroke); stroke-width: 1.5; }
.aice .bubble-cust-ink { fill: var(--aice-bubble-ink); }
.aice .step-dot {
  fill: var(--aice-step-bg); stroke: var(--aice-line); stroke-width: 2; transition: fill .35s, stroke .35s;
}
.aice .step-halo { fill: none; stroke: var(--aice-accent); stroke-width: 2; opacity: 0; transition: opacity .35s; }
.aice .step-label { fill: var(--aice-muted); transition: fill .35s; }
.aice .is-done .step-dot { fill: var(--aice-accent2); stroke: var(--aice-accent2); }
.aice .is-active .step-dot { fill: var(--aice-accent); stroke: var(--aice-accent); }
.aice .is-active .step-halo { opacity: .55; }
.aice .is-active .step-label, .aice .is-done .step-label { fill: var(--aice-ink); }
.aice .is-active .step-label { font-weight: 700; }
.aice.is-compact .step-label { opacity: 0; transition: opacity .35s, fill .35s; }
.aice.is-compact .is-active .step-label { opacity: 1; }
