/* ============================================================
 * nexus-all.css —— GENERATED by build_all.py, 请勿手改
 * 事实源: css/ 下 CSS_FILES 按加载顺序的确定性拼接, 单请求直达;
 * 新增样式文件须登记 CSS_FILES 并重建
 * ============================================================ */

/* ===== nexus-tokens.css ===== */
:root {
  --app-accent: #6366f1;
  --app-accent-rgb: 99, 102, 241;
  --app-accent-hover: #818cf8;
  --app-accent-contrast: #ffffff;
  --app-name: "App";
}

:root {
  --nx-bg-base: #f8fafc;
  --nx-bg-surface: #ffffff;
  --nx-bg-elevated: #ffffff;
  --nx-bg-hover: #f1f5f9;
  --nx-bg-muted: #f1f5f9;

  --nx-border: rgba(0, 0, 0, 0.08);
  --nx-border-hover: rgba(0, 0, 0, 0.15);
  --nx-border-accent: rgba(var(--app-accent-rgb), 0.3);

  --nx-text-heading: #0f172a;
  --nx-text-body: #334155;
  --nx-text-secondary: #475569;
  --nx-text-muted: #64748b;
  --nx-text-accent: var(--app-accent-strong, var(--app-accent));
  --nx-text-on-accent: var(--app-accent-contrast, #ffffff);

  --nx-primary: var(--app-accent, #6366f1);

  --nx-success: #10b981;
  --nx-warning: #f59e0b;
  --nx-danger: #ef4444;
  --nx-info: #3b82f6;

  --nx-success-rgb: 16, 185, 129;
  --nx-warning-rgb: 245, 158, 11;
  --nx-danger-rgb: 239, 68, 68;
  --nx-info-rgb: 59, 130, 246;

  /* 文字档语义色（soft 底/tint 底上用，白底 ≥4.5:1；图形/进度条仍用上方亮档） */
  --nx-success-text: #047857;
  --nx-warning-text: #b45309;
  --nx-danger-text: #b91c1c;
  --nx-info-text: #1d4ed8;

  /* 恒暗代码面（markdown 代码块设计意图=常暗底配 atom-one-dark 高亮，不随主题翻面） */
  --nx-code-block-bg: #16202f;

  /* 实心反馈面（toast 等，白字 ≥4.5:1） */
  --nx-toast-success-bg: #047857;
  --nx-toast-warning-bg: #b45309;
  --nx-toast-danger-bg: #b91c1c;
  --nx-toast-info-bg: #1d4ed8;

  --nx-overlay-bg: rgba(0, 0, 0, 0.5);

  --nx-glass-bg: rgba(255, 255, 255, 0.7);
  --nx-glass-blur: 16px;
  --nx-glass-border: rgba(0, 0, 0, 0.06);

  --nx-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
  --nx-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
  --nx-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.12);
  --nx-shadow-glow: 0 0 20px rgba(var(--app-accent-rgb), 0.15);

  /* 组件消费令牌（与暗色块同名同义，浅色取值） */
  --nx-bg-card: var(--nx-bg-surface);
  --nx-bg-page: var(--nx-bg-base);
  --nx-bg-secondary: var(--nx-bg-elevated);
  --nx-bg-tertiary: #f1f5f9;
  --nx-bg-subtle: rgba(0, 0, 0, 0.04);
  --nx-bg-code: #f1f5f9;
  --nx-surface: var(--nx-bg-surface);
  --nx-border-strong: rgba(0, 0, 0, 0.18);
  --nx-accent: var(--nx-primary);
  --nx-accent-hover: var(--app-accent-hover);
  --nx-accent-soft: rgba(var(--app-accent-rgb), 0.12);
  --nx-color-primary: var(--nx-primary);
  --nx-color-primary-strong: var(--app-accent-hover);
  --nx-color-danger: var(--nx-danger);
  --nx-primary-soft: rgba(var(--app-accent-rgb), 0.12);
  --nx-text: var(--nx-text-body);
  --nx-text-primary: var(--nx-text-heading);
  --nx-text-strong: #0f172a;
  --nx-text-tertiary: var(--nx-text-secondary);
  --nx-warning-soft: rgba(245, 158, 11, 0.12);
  --nx-chat-kb-bg: var(--nx-bg-elevated);
  --nx-switch-track: #d5dce6;
  --nx-undo-bg: #475569;
  --nx-undo-btn-bg: #ffffff;
}

:root {
  --nx-space-1: 0.25rem;
  --nx-space-2: 0.5rem;
  --nx-space-3: 0.75rem;
  --nx-space-4: 1rem;
  --nx-space-5: 1.25rem;
  --nx-space-6: 1.5rem;
  --nx-space-8: 2rem;
  --nx-space-10: 2.5rem;
  --nx-space-12: 3rem;
}

:root {
  --nx-radius-sm: 6px;
  --nx-radius-md: 10px;
  --nx-radius-lg: 16px;
  --nx-radius-xl: 24px;
  --nx-radius-full: 9999px;
}

:root {
  --nx-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  --nx-font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", ui-monospace, "PingFang SC", "Microsoft YaHei", monospace;
  --nx-text-xs: 0.75rem;
  --nx-text-sm: 0.875rem;
  --nx-text-base: 0.9375rem;
  --nx-text-lg: 1.125rem;
  --nx-text-xl: 1.25rem;
  --nx-text-2xl: 1.5rem;
  --nx-text-3xl: 1.875rem;
  --nx-leading: 1.6;
}

:root {
  --nx-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --nx-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --nx-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --nx-transition-fast: 150ms var(--nx-ease-out);
  --nx-transition-base: 200ms var(--nx-ease-out);
  --nx-transition-slow: 300ms var(--nx-ease-in-out);
}

:root {
  /* 布局骨架（nexus-layout.css 消费；宿主可覆盖 --nxs-header-h 调整顶栏高度） */
  --nxs-header-h: 56px;
}

/*
 * 层级阶梯（由低到高）。约束：
 * - 弹层（modal 200）之下的触发器（trigger/hamburger/popover）：模态打开时页面交互被遮罩接管；
 * - 导航抽屉（drawer 999）刻意置顶于 modal/settings——移动端导航抽屉是最高优先级交互面，
 *   且 modal/settings 的触发器都在 header（100），抽屉打开期间不可达，二者不会叠加。
 * - toast-host(1100) / unlock(1150) / topmost(1200) 永远在最上层。
 */
:root {
  --nx-z-nav: 90;
  --nx-z-fab: 99;
  --nx-z-header: 100;
  --nx-z-side-mask: 110;
  --nx-z-side-panel: 120;
  --nx-z-trigger: 150;
  --nx-z-hamburger: 150;
  --nx-z-popover: 180;
  --nx-z-modal: 200;
  --nx-z-toast: 300;
  --nx-z-settings: 400;
  --nx-z-settings-panel: 401;
  --nx-z-overlay: 998;
  --nx-z-drawer: 999;
  --nx-z-toast-host: 1100;
  --nx-z-unlock: 1150;
  --nx-z-topmost: 1200;
  --nx-z-float: 1500;
  --nx-z-float-panel: 1600;
  --nx-z-max: 2147483000;
  --nx-z-max-plus: 2147483001;
}

:root {
  --nx-safe-top: env(safe-area-inset-top, 0px);
  --nx-safe-bottom: env(safe-area-inset-bottom, 0px);
  --nx-safe-left: env(safe-area-inset-left, 0px);
  --nx-safe-right: env(safe-area-inset-right, 0px);
}

[data-theme="dark"] {
  --nx-bg-base: #1e293b;
  --nx-bg-surface: #243044;
  --nx-bg-elevated: #2a3848;
  --nx-bg-hover: #334155;
  --nx-bg-muted: #2a3848;
  --nx-border: rgba(255, 255, 255, 0.08);
  --nx-border-hover: rgba(255, 255, 255, 0.15);
  --nx-text-heading: #f1f5f9;
  --nx-text-body: #cbd5e1;
  --nx-text-secondary: #a9b9cc;
  --nx-text-muted: #96a6ba;
  --nx-text-on-accent: var(--app-accent-contrast, #ffffff);
  --nx-primary: var(--app-accent, #6366f1);
  --nx-success: #34d399;
  --nx-warning: #fbbf24;
  --nx-danger: #f87171;
  --nx-info: #60a5fa;
  --nx-success-rgb: 52, 211, 153;
  --nx-warning-rgb: 251, 191, 36;
  --nx-danger-rgb: 248, 113, 113;
  --nx-info-rgb: 96, 165, 250;

  /* 文字档语义色（暗色下用亮档本身，soft 暗底 ≥4.5:1） */
  --nx-success-text: #34d399;
  --nx-warning-text: #fbbf24;
  --nx-danger-text: #fca5a5;
  --nx-info-text: #60a5fa;

  /* 恒暗代码面 / 实心反馈面（与浅色同值：代码块恒暗、toast 深实心白字两端达标） */
  --nx-code-block-bg: #16202f;
  --nx-toast-success-bg: #047857;
  --nx-toast-warning-bg: #b45309;
  --nx-toast-danger-bg: #b91c1c;
  --nx-toast-info-bg: #1d4ed8;
  --nx-overlay-bg: rgba(30, 41, 59, 0.75);
  --nx-glass-bg: rgba(36, 48, 68, 0.7);
  --nx-glass-border: rgba(255, 255, 255, 0.08);
  --nx-shadow-sm: 0 2px 8px rgba(30, 41, 59, 0.25);
  --nx-shadow-md: 0 4px 16px rgba(30, 41, 59, 0.35);
  --nx-shadow-lg: 0 8px 32px rgba(30, 41, 59, 0.45);
  /* 组件消费但暗色块缺失的色彩令牌补齐（fallback 为浅色，暗色下会白底割裂） */
  --nx-bg-card: var(--nx-bg-surface);
  --nx-bg-page: var(--nx-bg-base);
  --nx-bg-secondary: var(--nx-bg-elevated);
  --nx-bg-tertiary: #334155;
  --nx-bg-subtle: rgba(255, 255, 255, 0.06);
  --nx-bg-code: #16202f;
  --nx-surface: var(--nx-bg-surface);
  --nx-border-strong: rgba(255, 255, 255, 0.18);
  --nx-accent: var(--nx-primary);
  --nx-accent-hover: var(--app-accent-hover);
  --nx-accent-soft: rgba(var(--app-accent-rgb), 0.18);
  --nx-color-primary: var(--nx-primary);
  --nx-color-primary-strong: var(--nx-primary);
  --nx-color-danger: var(--nx-danger);
  --nx-primary-soft: rgba(var(--app-accent-rgb), 0.18);
  --nx-text: var(--nx-text-body);
  --nx-text-primary: var(--nx-text-heading);
  --nx-text-strong: #f8fafc;
  --nx-text-tertiary: var(--nx-text-secondary);
  --nx-text-accent: var(--app-accent-strong, var(--app-accent));
  --nx-warning-soft: rgba(251, 191, 36, 0.15);
  --nx-chat-kb-bg: var(--nx-bg-elevated);
  --nx-switch-track: #3b4a5f;
  --nx-undo-bg: #64748b;
  --nx-undo-btn-bg: #ffffff;
}

/*
 * ===== 主题派生令牌 · body 级解析层 =====
 * 下列令牌引用 --app-accent*，而主题类挂载在 body（或宿主在 :root 内联覆盖）。
 * CSS 自定义属性的 var() 在「定义该属性的元素」上完成替换：若只在 :root/[data-theme] 层定义，
 * 解析时永远取到 :root 默认靛紫，body 主题类无法传导（soft/hover/glow 会整体跑成默认色）。
 * 故统一在 body 层重定义，使其随 body 上的主题类/内联覆盖一同解析。
 * 优先级：:root body (0,1,1) > :root (0,1,0)；[data-theme="dark"] body (0,2,1) 压过暗色块。
 */
:root body {
  --nx-primary: var(--app-accent, #6366f1);
  --nx-accent: var(--nx-primary);
  --nx-accent-hover: var(--app-accent-hover);
  --nx-accent-soft: rgba(var(--app-accent-rgb), 0.12);
  --nx-primary-soft: rgba(var(--app-accent-rgb), 0.12);
  --nx-text-accent: var(--app-accent-strong, var(--app-accent));
  --nx-text-on-accent: var(--app-accent-contrast, #ffffff);
  --nx-border-accent: rgba(var(--app-accent-rgb), 0.3);
  --nx-shadow-glow: 0 0 20px rgba(var(--app-accent-rgb), 0.15);
  --nx-color-primary: var(--nx-primary);
  --nx-color-primary-strong: var(--app-accent-hover);
}
[data-theme="dark"] body {
  --nx-accent-soft: rgba(var(--app-accent-rgb), 0.18);
  --nx-primary-soft: rgba(var(--app-accent-rgb), 0.18);
}

/* ===== nexus-base.css ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--nx-font-sans);
  font-size: var(--nx-text-base);
  line-height: var(--nx-leading);
  color: var(--nx-text-body);
  background: var(--nx-bg-base);
  min-height: 100vh;
  min-height: 100dvh;
}

a { color: var(--app-accent); text-decoration: none; transition: color var(--nx-transition-fast); }
a:hover { color: var(--app-accent-hover); }

.nx-card {
  background: var(--nx-glass-bg);
  backdrop-filter: blur(var(--nx-glass-blur));
  -webkit-backdrop-filter: blur(var(--nx-glass-blur));
  border: 1px solid var(--nx-glass-border);
  border-radius: var(--nx-radius-lg);
  padding: var(--nx-space-6);
  transition: border-color var(--nx-transition-base), box-shadow var(--nx-transition-base);
}
.nx-card:hover {
  border-color: var(--nx-border-hover);
  box-shadow: var(--nx-shadow-md);
}

.nx-nav {
  position: sticky;
  top: 0;
  z-index: var(--nx-z-header);
  display: flex;
  align-items: center;
  gap: var(--nx-space-6);
  padding: 0 var(--nx-space-6);
  padding-top: var(--nx-safe-top, 0px);
  height: calc(56px + var(--nx-safe-top, 0px));
  background: var(--nx-glass-bg);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--nx-border);
}

.nx-sidebar {
  width: 240px;
  min-height: calc(100vh - 56px);
  min-height: calc(100dvh - 56px);
  background: var(--nx-bg-surface);
  border-right: 1px solid var(--nx-border);
  padding: var(--nx-space-4) 0;
  flex-shrink: 0;
}
.nx-sidebar-item {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  padding: var(--nx-space-2) var(--nx-space-5);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-muted);
  cursor: pointer;
  transition: all var(--nx-transition-fast);
  border-left: 2px solid transparent;
}
.nx-sidebar-item:hover { color: var(--nx-text-body); background: var(--nx-bg-hover); }
.nx-sidebar-item.active {
  color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), 0.08);
  border-left-color: var(--app-accent);
}

.nx-bg-gradient {
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(var(--app-accent-rgb), 0.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 100%, rgba(var(--app-accent-rgb), 0.04) 0%, transparent 50%),
    var(--nx-bg-base);
}

@media (max-width: 768px) {
  .nx-sidebar { display: none; }
  .nx-card { padding: var(--nx-space-4); }
  .nx-nav { padding: 0 var(--nx-space-4); }
}

.el-menu { background: var(--nx-bg-surface) !important; border-right: 1px solid var(--nx-border) !important; }
.el-menu-item { color: var(--nx-text-body) !important; }
.el-menu-item:hover { background: var(--nx-bg-hover) !important; color: var(--nx-text-heading) !important; }
.el-menu-item.is-active { color: var(--app-accent) !important; }
.el-card { background: var(--nx-bg-surface) !important; border-color: var(--nx-border) !important; color: var(--nx-text-body) !important; border-radius: var(--nx-radius-md) !important; }
.el-button { border-radius: var(--nx-radius-sm) !important; }
.el-button--primary { background: var(--app-accent) !important; border-color: var(--app-accent) !important; }
.el-button--primary:hover, .el-button--primary:focus { background: var(--app-accent-hover) !important; border-color: var(--app-accent-hover) !important; }
.el-button--danger { background: var(--nx-danger) !important; border-color: var(--nx-danger) !important; }
.el-input__wrapper { border-radius: var(--nx-radius-sm) !important; }
.el-input__wrapper.is-focus { box-shadow: 0 0 0 1px var(--app-accent) inset !important; }
.el-table { background: var(--nx-bg-surface) !important; --el-table-bg-color: var(--nx-bg-surface) !important; --el-table-tr-bg-color: var(--nx-bg-surface) !important; --el-table-header-bg-color: var(--nx-bg-elevated) !important; --el-table-row-hover-bg-color: var(--nx-bg-hover) !important; --el-table-border-color: var(--nx-border) !important; --el-table-text-color: var(--nx-text-body) !important; --el-table-header-text-color: var(--nx-text-secondary) !important; }
.el-dialog { background: var(--nx-bg-elevated) !important; border-radius: var(--nx-radius-lg) !important; box-shadow: var(--nx-shadow-lg) !important; }
.el-dialog__title { color: var(--nx-text-heading) !important; }
.el-overlay { background: var(--nx-overlay-bg) !important; }
.el-form-item__label { color: var(--nx-text-body) !important; }
.el-pagination { --el-pagination-bg-color: var(--nx-bg-surface) !important; --el-pagination-text-color: var(--nx-text-body) !important; --el-pagination-button-bg-color: var(--nx-bg-hover) !important; }
.el-drawer { background: var(--nx-bg-elevated) !important; }
.el-drawer__header { color: var(--nx-text-heading) !important; }

/* ===== Element Plus 反馈件与 nexus 反馈层视觉对齐（双轨制应用的零改造收口） ===== */

/* ElMessage 对齐 .nux-toast-item：同圆角/阴影/字号/语义色 */
.el-message {
  border-radius: var(--nx-radius-md) !important;
  box-shadow: var(--nx-shadow-md) !important;
  background: var(--nx-bg-elevated) !important;
  border: 1px solid var(--nx-border) !important;
  color: var(--nx-text-body) !important;
  font-size: var(--nx-text-sm) !important;
}
.el-message .el-message__content { color: var(--nx-text-body) !important; }
.el-message--success { --el-message-bg-color: var(--nx-bg-elevated); }
.el-message--success .el-message__icon, .el-message--success .el-message__content { color: var(--nx-success) !important; }
.el-message--warning .el-message__icon, .el-message--warning .el-message__content { color: var(--nx-warning) !important; }
.el-message--error .el-message__icon, .el-message--error .el-message__content { color: var(--nx-danger) !important; }
.el-message--info .el-message__icon, .el-message--info .el-message__content { color: var(--nx-text-secondary) !important; }

/* ElMessageBox / ElNotification 对齐 nux-modal 视觉 */
.el-message-box { border-radius: var(--nx-radius-lg) !important; background: var(--nx-bg-elevated) !important; border: 1px solid var(--nx-border) !important; box-shadow: var(--nx-shadow-lg) !important; }
.el-message-box__title { color: var(--nx-text-heading) !important; }
.el-message-box__message { color: var(--nx-text-secondary) !important; }
.el-notification { border-radius: var(--nx-radius-md) !important; background: var(--nx-bg-elevated) !important; border: 1px solid var(--nx-border) !important; box-shadow: var(--nx-shadow-md) !important; }
.el-notification__title { color: var(--nx-text-heading) !important; }
.el-notification__content { color: var(--nx-text-secondary) !important; }

/* v-loading spinner 用主题色 */
.el-loading-spinner .circular .path { stroke: var(--app-accent) !important; }
.el-loading-spinner .el-loading-text { color: var(--nx-text-secondary) !important; }

/* el-empty 描述文字对齐 nux-empty-state 层级 */
.el-empty__description p { color: var(--nx-text-secondary) !important; }

/* ElMessage 图标色（图标元素本身继承 type class 的场景） */
.el-message .el-message__badge, .el-message__icon { background: transparent !important; }

/* ===== 可访问性质量地板（全端生效） ===== */
:focus-visible {
  outline: 2px solid rgba(var(--app-accent-rgb, 99, 102, 241), 0.6);
  outline-offset: 2px;
}

@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;
  }
}

/* ===== nexus-motion.css ===== */
/* =========================================================
   nexus-motion.css — 全局交互动效层
   统一按压/抬升微交互、入场 reveal、焦点与 reduced-motion 收敛。
   遵循"增强而非覆盖"：只补充缺失动效，不改动既有设计令牌。
   ========================================================= */

/* ---- 一、统一按压微交互 ---- */
/* 通用可点元素按压反馈（克制，仅轻微） */
.nx-sidebar-item:active,
.nux-acc-head:active,
.nux-tab:active,
.nux-chip:active:not(.nux-chip--disabled) { transform: scale(0.97); }

/* ---- 二、统一卡片/可交互容器抬升 ---- */
.nx-card {
  will-change: transform;
}
.nx-card:hover {
  transform: translateY(-2px);
}

/* 列表项抬升（各应用通用 .nx-list-item / 卡片式 grid 项） */
.nx-list-item { transition: transform var(--nx-transition-fast), box-shadow var(--nx-transition-fast), background var(--nx-transition-fast); }
.nx-list-item:hover { transform: translateY(-1px); }

/* 列表进出场（配 Vue TransitionGroup 使用，替代各应用手写列表 keyframes） */
.nux-list-enter-active {
  transition: opacity var(--nx-transition-base), transform var(--nx-transition-base);
  transition-delay: var(--nx-stagger-delay, 0s);
}
.nux-list-leave-active {
  transition: opacity var(--nx-transition-fast), transform var(--nx-transition-fast);
  position: absolute;
}
.nux-list-enter-from,
.nux-list-leave-to { opacity: 0; transform: translateY(8px); }
.nux-list-move { transition: transform var(--nx-transition-base); }

/* ---- 四、统一焦点可见性（所有应用一致） ---- */
:where(.nx-sidebar-item, .nux-btn, .nux-tab, .nux-chip,
       .nux-acc-head, .nux-segmented-item, .nx-list-item):focus-visible {
  outline: 2px solid rgba(var(--app-accent-rgb), 0.6);
  outline-offset: 2px;
}

/* ---- 五、降级动效与触屏适配（全局收敛，一处管理） ---- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}

/* 触屏/无 hover：关闭抬升类位移，避免"残留悬浮"感 */
@media (hover: none) and (pointer: coarse) {
  .nx-card:hover,
.nx-list-item:hover,
.nx-sidebar-item:hover { transform: none; }
}

/* 桌面保留过渡的平滑感 */
@media (prefers-reduced-motion: no-preference) {
  .nx-card,
.nx-sidebar-item,
.nx-list-item {
    transition: transform var(--nx-transition-fast), box-shadow var(--nx-transition-fast),
                border-color var(--nx-transition-fast), background var(--nx-transition-fast);
  }
}

/* ===== nexus-themes.css ===== */
/*
 * Nexus Design System — 应用特色色配置 v2.3
 *
 * 配色原则（参考 Linear/Vercel/Notion/Figma 2025 设计趋势 + Radix 色阶实践 + Refactoring UI 色阶方法论）：
 * 1. 每个产品必须有视觉可区分的独特主色
 * 2. AI产品避免蓝紫泛滥，用暖色/绿色/青色差异化
 * 3. 金融/数据类用冷色传达专业感
 * 4. 教育/创意类用暖色传达活力感
 * 5. 开发工具用中性冷色传达技术感
 * 6. 主色需在浅色/深色模式下都可用（WCAG 实测线，2026-10 全 27 套达标）：
 *    - 浅色用 600 档：白字对比 ≥3.0（大字/图形线），多数达 4.5（正文线）
 *    - 文字级强调一律用 --app-accent-strong（同色相 700 档，白底 ≥4.5 正文 AA）
 *    - 暗色用同色相 400 档提亮（暗底 ≥4.5），hover/strong 进到 300 档
 *    - 黄色/琥珀系提亮后白字对比不足，暗色下用深色文字（--app-accent-contrast）
 * 7. 27个主题至少20个可区分色相，消除重复
 */

/* ===== AI 产品线 ===== */

/* promptGenius — AI Prompt优化 — 深靛蓝（AI工具的专业感） */
.app-prompt { --app-accent: #4f46e5; --app-accent-rgb: 79, 70, 229; --app-accent-hover: #6366f1; --app-accent-strong: #4338ca; --app-name: "PromptGenius"; }
[data-theme="dark"] .app-prompt { --app-accent: #8192fa; --app-accent-rgb: 129, 146, 250; --app-accent-hover: #a5b4fc; --app-accent-strong: #a5b4fc; --app-accent-contrast: #0f172a; }

/* promptManager — AI Prompt管理中间件 — 专业蓝（基础设施的可靠感） */
.app-prompt-manager { --app-accent: #2563eb; --app-accent-rgb: 37, 99, 235; --app-accent-hover: #3b82f6; --app-accent-strong: #1d4ed8; --app-name: "Prompt工坊"; }
[data-theme="dark"] .app-prompt-manager { --app-accent: #60a5fa; --app-accent-rgb: 96, 165, 250; --app-accent-hover: #93c5fd; --app-accent-strong: #93c5fd; --app-accent-contrast: #0f172a; }

/* oneNote — 智能笔记 — 深青（Notion式知识管理的冷静感） */
.app-one-note { --app-accent: #0d9488; --app-accent-rgb: 13, 148, 136; --app-accent-hover: #14b8a6; --app-accent-strong: #0f766e; --app-name: "思悟笔记"; }
[data-theme="dark"] .app-one-note { --app-accent: #2dd4bf; --app-accent-rgb: 45, 212, 191; --app-accent-hover: #5eead4; --app-accent-strong: #5eead4; --app-accent-contrast: #0f172a; }

/* aiPet — AI宠物健康 — 暖橘（宠物/生命的温暖感） */
.app-ai-pet { --app-accent: #ea580c; --app-accent-rgb: 234, 88, 12; --app-accent-hover: #f97316; --app-accent-strong: #c2410c; --app-name: "宠康管家"; }
[data-theme="dark"] .app-ai-pet { --app-accent: #fb923c; --app-accent-rgb: 251, 146, 60; --app-accent-hover: #fdba74; --app-accent-strong: #fdba74; --app-accent-contrast: #0f172a; }

/* verseCraft — AI小说创作 — 深玫瑰（创意/文学的热情感） */
.app-verse-craft { --app-accent: #e11d48; --app-accent-rgb: 225, 29, 72; --app-accent-hover: #f43f5e; --app-accent-strong: #be123c; --app-name: "VerseCraft"; }
[data-theme="dark"] .app-verse-craft { --app-accent: #fb7185; --app-accent-rgb: 251, 113, 133; --app-accent-hover: #fda4af; --app-accent-strong: #fda4af; --app-accent-contrast: #0f172a; }

/* resumeAI — 智能简历 — 青蓝（求职/专业的信任感） */
.app-resume-ai { --app-accent: #0891b2; --app-accent-rgb: 8, 145, 178; --app-accent-hover: #06b6d4; --app-accent-strong: #0e7490; --app-name: "ResumeAI"; }
[data-theme="dark"] .app-resume-ai { --app-accent: #22d3ee; --app-accent-rgb: 34, 211, 238; --app-accent-hover: #67e8f9; --app-accent-strong: #67e8f9; --app-accent-contrast: #0f172a; }

/* beeMemory — AI记忆管理 — 琥珀金（记忆/蜂巢的智慧感） */
.app-bee-memory { --app-accent: #d97706; --app-accent-rgb: 217, 119, 6; --app-accent-hover: #f59e0b; --app-accent-strong: #b45309; --app-name: "BeeMemory"; }
[data-theme="dark"] .app-bee-memory { --app-accent: #fbbf24; --app-accent-rgb: 251, 191, 36; --app-accent-hover: #fcd34d; --app-accent-strong: #fcd34d; --app-accent-contrast: #0f172a; }

/* chroma — 向量存储服务 — 品红（向量/嵌入的科技感） */
.app-chroma { --app-accent: #c026d3; --app-accent-rgb: 192, 38, 211; --app-accent-hover: #d946ef; --app-accent-strong: #a21caf; --app-name: "Chroma"; }
[data-theme="dark"] .app-chroma { --app-accent: #e879f9; --app-accent-rgb: 232, 121, 249; --app-accent-hover: #f0abfc; --app-accent-strong: #f0abfc; --app-accent-contrast: #0f172a; }

/* ===== 金融/数据产品线 ===== */

/* goldenStock — 智能投资 — 深蓝（金融的权威感，区别于AI靛蓝） */
.app-golden { --app-accent: #1d4ed8; --app-accent-rgb: 29, 78, 216; --app-accent-hover: #3b82f6; --app-accent-strong: #1e40af; --app-name: "GoldenStock"; }
[data-theme="dark"] .app-golden { --app-accent: #60a5fa; --app-accent-rgb: 96, 165, 250; --app-accent-hover: #93c5fd; --app-accent-strong: #93c5fd; --app-accent-contrast: #0f172a; }

/* financialKG — 金融知识图谱 — 靛青（数据/图谱的深度感） */
.app-financial-kg { --app-accent: #0e7490; --app-accent-rgb: 14, 116, 144; --app-accent-hover: #0891b2; --app-accent-strong: #155e75; --app-name: "FinancialKG"; }
[data-theme="dark"] .app-financial-kg { --app-accent: #22d3ee; --app-accent-rgb: 34, 211, 238; --app-accent-hover: #67e8f9; --app-accent-strong: #67e8f9; --app-accent-contrast: #0f172a; }

/* adSmart — 智能广告 — 玫红（营销/广告的冲击力） */
.app-ad-smart { --app-accent: #db2777; --app-accent-rgb: 219, 39, 119; --app-accent-hover: #ec4899; --app-accent-strong: #be185d; --app-name: "AdSmart"; }
[data-theme="dark"] .app-ad-smart { --app-accent: #f472b6; --app-accent-rgb: 244, 114, 182; --app-accent-hover: #f9a8d4; --app-accent-strong: #f9a8d4; --app-accent-contrast: #0f172a; }

/* ===== 教育产品线 ===== */

/* WisePath — 高考志愿 — 金色（智慧/成就的象征，区别于AdSmart玫红） */
.app-wisepath { --app-accent: #a16207; --app-accent-rgb: 161, 98, 7; --app-accent-hover: #ca8a04; --app-accent-strong: #854d0e; --app-name: "知路"; }
[data-theme="dark"] .app-wisepath { --app-accent: #facc15; --app-accent-rgb: 250, 204, 21; --app-accent-hover: #fde047; --app-accent-strong: #fde047; --app-accent-contrast: #0f172a; }

/* codeBlock — 青少年编程 — 翡翠绿（编程/成长的活力感） */
.app-code-block { --app-accent: #059669; --app-accent-rgb: 5, 150, 105; --app-accent-hover: #10b981; --app-accent-strong: #047857; --app-name: "码趣星"; }
[data-theme="dark"] .app-code-block { --app-accent: #34d399; --app-accent-rgb: 52, 211, 153; --app-accent-hover: #6ee7b7; --app-accent-strong: #6ee7b7; --app-accent-contrast: #0f172a; }

/* geniusStudent — 天才学伴 — 琥珀（学习/探索的温暖感，区别于紫罗兰） */
.app-genius-student { --app-accent: #2F56A7; --app-accent-rgb: 47, 86, 167; --app-accent-hover: #7D9BD4; --app-accent-strong: #25478c; --app-name: "天才学伴"; }
[data-theme="dark"] .app-genius-student { --app-accent: #7D9BD4; --app-accent-rgb: 125, 155, 212; --app-accent-hover: #A3BEE3; --app-accent-strong: #A3BEE3; --app-accent-contrast: #0f172a; }

/* ===== 开发工具产品线 ===== */

/* lion — 配置中心 — 深天蓝（配置/基础设施的可靠感，区别于琥珀） */
.app-lion { --app-accent: #0369a1; --app-accent-rgb: 3, 105, 161; --app-accent-hover: #0284c7; --app-accent-strong: #075985; --app-name: "Lion"; }
[data-theme="dark"] .app-lion { --app-accent: #38bdf8; --app-accent-rgb: 56, 189, 248; --app-accent-hover: #7dd3fc; --app-accent-strong: #7dd3fc; --app-accent-contrast: #0f172a; }

/* miniDeploy — 部署平台 — 天蓝（DevOps/云的开放感） */
.app-mini-deploy { --app-accent: #0284c7; --app-accent-rgb: 2, 132, 199; --app-accent-hover: #0ea5e9; --app-accent-strong: #0369a1; --app-name: "MiniDeploy"; }
[data-theme="dark"] .app-mini-deploy { --app-accent: #38bdf8; --app-accent-rgb: 56, 189, 248; --app-accent-hover: #7dd3fc; --app-accent-strong: #7dd3fc; --app-accent-contrast: #0f172a; }

/* spider — 智能爬虫 — 深绿（爬虫/自动化的持续感） */
.app-spider { --app-accent: #047857; --app-accent-rgb: 4, 120, 87; --app-accent-hover: #059669; --app-accent-strong: #065f46; --app-name: "Spider"; }
[data-theme="dark"] .app-spider { --app-accent: #34d399; --app-accent-rgb: 52, 211, 153; --app-accent-hover: #6ee7b7; --app-accent-strong: #6ee7b7; --app-accent-contrast: #0f172a; }

/* userFeedback — 反馈中台 — 朱红（反馈/告警的紧迫感） */
.app-user-feedback { --app-accent: #dc2626; --app-accent-rgb: 220, 38, 38; --app-accent-hover: #ef4444; --app-accent-strong: #b91c1c; --app-name: "UserFeedback"; }
[data-theme="dark"] .app-user-feedback { --app-accent: #f87171; --app-accent-rgb: 248, 113, 113; --app-accent-hover: #fca5a5; --app-accent-strong: #fca5a5; --app-accent-contrast: #0f172a; }

/* ===== 基础设施 ===== */

/* usercenter — 用户中心 — 靛蓝（认证/安全的权威感，区别于紫罗兰） */
.app-usercenter { --app-accent: #6366f1; --app-accent-rgb: 99, 102, 241; --app-accent-hover: #818cf8; --app-accent-strong: #4f46e5; --app-name: "用户中心"; }
[data-theme="dark"] .app-usercenter { --app-accent: #8192fa; --app-accent-rgb: 129, 146, 250; --app-accent-hover: #a5b4fc; --app-accent-strong: #a5b4fc; --app-accent-contrast: #0f172a; }

/* goldenFish — 闲鱼助手 — 金鱼橙（品牌主色，白字对比 5.2:1，暖橙 × 石板蓝灰互补） */
.app-golden-fish { --app-accent: #c2410c; --app-accent-rgb: 194, 65, 12; --app-accent-hover: #9a3412; --app-accent-strong: #9a3412; --app-name: "GoldenFish"; }
[data-theme="dark"] .app-golden-fish { --app-accent: #fb923c; --app-accent-rgb: 251, 146, 60; --app-accent-hover: #fdba74; --app-accent-strong: #fdba74; --app-accent-contrast: #431407; }

/* ===== 通用主题 ===== */

/* nexus-ui — 设计系统 — 品牌蓝 */
.app-nexus-ui { --app-accent: #3b82f6; --app-accent-rgb: 59, 130, 246; --app-accent-hover: #60a5fa; --app-accent-strong: #2563eb; --app-name: "NexusUI"; }
[data-theme="dark"] .app-nexus-ui { --app-accent: #60a5fa; --app-accent-rgb: 96, 165, 250; --app-accent-hover: #93c5fd; --app-accent-strong: #93c5fd; --app-accent-contrast: #0f172a; }

/* admin — 管理后台 — 深石板蓝（区别于FastRPC石板蓝） */
.app-admin { --app-accent: #334155; --app-accent-rgb: 51, 65, 85; --app-accent-hover: #475569; --app-accent-strong: #1e293b; --app-name: "Admin"; }
[data-theme="dark"] .app-admin { --app-accent: #94a3b8; --app-accent-rgb: 148, 163, 184; --app-accent-hover: #cbd5e1; --app-accent-strong: #cbd5e1; --app-accent-contrast: #0f172a; }

/* docs — 文档中心 — 灰色（文档/中性，区别于FinancialKG靛青） */
.app-docs { --app-accent: #6b7280; --app-accent-rgb: 107, 114, 128; --app-accent-hover: #9ca3af; --app-accent-strong: #4b5563; --app-name: "Docs"; }
[data-theme="dark"] .app-docs { --app-accent: #9ca3af; --app-accent-rgb: 156, 163, 175; --app-accent-hover: #d1d5db; --app-accent-strong: #d1d5db; --app-accent-contrast: #0f172a; }

/* ===== 新接入应用（v2.2 补齐，消除与既有主题撞色） ===== */

/* truemirror — 照妖镜（AI 内容检测） — 品红紫（照鉴真伪的锐利感，与 chroma 品红拉开：更深更紫） */
.app-truemirror { --app-accent: #9333ea; --app-accent-rgb: 147, 51, 234; --app-accent-hover: #a855f7; --app-accent-strong: #7e22ce; --app-name: "照妖镜"; }
[data-theme="dark"] .app-truemirror { --app-accent: #c084fc; --app-accent-rgb: 192, 132, 252; --app-accent-hover: #d8b4fe; --app-accent-strong: #d8b4fe; --app-accent-contrast: #0f172a; }

/* travelMate — 旅行伴侣 — 松绿（自然/旅途的沉静感） */
.app-travel-mate { --app-accent: #2e6b4f; --app-accent-rgb: 46, 107, 79; --app-accent-hover: #3d8a66; --app-accent-strong: #24523d; --app-name: "TravelMate"; }
[data-theme="dark"] .app-travel-mate { --app-accent: #4ade80; --app-accent-rgb: 74, 222, 128; --app-accent-hover: #86efac; --app-accent-strong: #86efac; --app-accent-contrast: #0f172a; }

/* MiaoBi — 妙笔（AI 写作） — 藏蓝配琥珀（书写的沉静 + 点睛） */
.app-miaobi { --app-accent: #1E3A5F; --app-accent-rgb: 30, 58, 95; --app-accent-hover: #2F54A8; --app-accent-strong: #152C4B; --app-name: "妙笔"; }
[data-theme="dark"] .app-miaobi { --app-accent: #8FAADC; --app-accent-rgb: 143, 170, 220; --app-accent-hover: #A5C0E8; --app-accent-strong: #A5C0E8; --app-accent-contrast: #0f172a; }

/* gezhi — 格致（学习管理） — 暗钢蓝（格物致知的理性感） */
.app-gezhi { --app-accent: #1f4e79; --app-accent-rgb: 31, 78, 121; --app-accent-hover: #2a6396; --app-accent-strong: #173a5c; --app-name: "格致"; }
[data-theme="dark"] .app-gezhi { --app-accent: #649ED8; --app-accent-rgb: 100, 158, 216; --app-accent-hover: #8AB6E6; --app-accent-strong: #8AB6E6; --app-accent-contrast: #0f172a; }

/* ===== nexus-components-feedback.css ===== */
.nx-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--nx-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-overlay-bg, rgba(0, 0, 0, 0.5));
  backdrop-filter: blur(4px);
  transition: opacity 0.2s ease;
}
.nx-modal-overlay.is-leaving {
  opacity: 0;
}
.nx-modal {
  position: relative;
  background: var(--nx-bg-elevated);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-xl);
  padding: var(--nx-space-8);
  max-width: 520px;
  width: calc(100% - 2rem);
  max-height: calc(100vh - 2rem);
  max-height: calc(100dvh - 2rem);
  overflow-y: auto;
  box-shadow: var(--nx-shadow-lg);
}
.nx-modal-title {
  font-size: var(--nx-text-xl);
  font-weight: 600;
  color: var(--nx-text-heading);
  margin-bottom: var(--nx-space-4);
  padding-right: 40px;
}
.nx-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--nx-text-muted);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.nx-modal-close:hover { background: var(--nx-bg-hover, rgba(15, 23, 42, 0.06)); color: var(--nx-text-heading); }
.nx-modal-close svg { width: 18px; height: 18px; }

.nux-modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--nx-space-3);
  margin-top: var(--nx-space-6);
  padding-top: var(--nx-space-4);
  border-top: 1px solid var(--nx-border);
}

.nux-modal-enter-active { transition: opacity 0.2s ease; }
.nux-modal-leave-active { transition: opacity 0.15s ease; }
.nux-modal-enter-from,
.nux-modal-leave-to { opacity: 0; }

.nux-toast-container {
  position: fixed;
  top: calc(var(--nx-space-6) + var(--nx-safe-top, 0px));
  right: var(--nx-space-6);
  z-index: var(--nx-z-toast-host);
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-2);
  pointer-events: none;
}

/* showToast({center:true}) 居中显示模式：屏幕正中，适合与视口操作强关联的成败反馈 */
.nux-toast-container--center {
  top: 50%;
  right: auto;
  left: 50%;
  transform: translate(-50%, -50%);
  align-items: center;
}

.nux-toast-item {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  padding: var(--nx-space-3) var(--nx-space-5);
  border-radius: var(--nx-radius-md);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-on-accent, #fff);
  box-shadow: var(--nx-shadow-md);
  pointer-events: auto;
  max-width: 360px;
  cursor: pointer;
  opacity: 0;
  transform: translateX(100%);
  transition: opacity var(--nx-transition-base) var(--nx-ease-out),
              transform var(--nx-transition-base) var(--nx-ease-out);
}
.nux-toast-item.is-in { opacity: 1; transform: none; }
/* 实心反馈面用深一档语义色：白字（on-accent）≥4.5:1，浅/暗色同值 */
.nux-toast-success { background: var(--nx-toast-success-bg, var(--nx-success)); }
.nux-toast-warning { background: var(--nx-toast-warning-bg, var(--nx-warning)); }
.nux-toast-error { background: var(--nx-toast-danger-bg, var(--nx-danger)); }
.nux-toast-info { background: var(--nx-toast-info-bg, var(--nx-info)); }

.nux-toast-icon { font-size: var(--nx-text-lg); line-height: 1; flex-shrink: 0; }
.nux-toast-msg { flex: 1; word-break: break-word; }

.nux-confirm-overlay { opacity: 0; }
.nux-confirm-overlay.is-in { opacity: 1; }
.nux-confirm-msg { color: var(--nx-text-secondary); margin: var(--nx-space-4) 0; white-space: pre-line; }

.nux-prompt-modal { max-width: 440px; }
.nux-prompt-msg { color: var(--nx-text-secondary); margin: var(--nx-space-4) 0 var(--nx-space-3); white-space: pre-line; }
.nux-prompt-input { resize: vertical; min-height: 0; font-family: inherit; }
.nux-prompt-input.is-invalid { border-color: var(--nx-danger); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nx-danger) 15%, transparent); }
.nux-prompt-error { margin: var(--nx-space-2) 0 0; font-size: var(--nx-text-xs); color: var(--nx-danger); }

.nux-error-state { color: var(--nx-danger); }
.nux-error-state.nx-empty-state i { font-size: 48px; color: var(--nx-danger); }
.nux-error-state .nux-error-code {
  margin-top: var(--nx-space-2);
  font-size: var(--nx-text-xs);
  color: var(--nx-text-muted);
  opacity: 0.7;
  word-break: break-all;
}

.nx-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--nx-border);
  border-top-color: var(--app-accent);
  border-radius: 50%;
  animation: nx-spin 0.6s linear infinite;
}
@keyframes nx-spin { to { transform: rotate(360deg); } }

.nux-skeleton {
  display: flex;
  gap: var(--nx-space-3);
  padding: var(--nx-space-4);
}
.nux-skeleton-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
  flex-shrink: 0;
}
.nux-skeleton-content { flex: 1; display: flex; flex-direction: column; gap: var(--nx-space-2); }
.nux-skeleton-row {
  height: 14px;
  border-radius: var(--nx-radius-sm);
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
@keyframes nx-skeleton-pulse {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ===== 会话/建议加载骨架屏（工作区规范统一语义类） ===== */
.session-skeleton {
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-2, 0.5rem);
  padding: var(--nx-space-2, 0.5rem);
}
.session-skeleton::before,
.session-skeleton::after {
  content: "";
  display: block;
  height: 14px;
  border-radius: var(--nx-radius-sm, 6px);
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
.session-skeleton::after {
  width: 70%;
}

/* ===== 卡片网格骨架屏（作品/海报/列表加载） ===== */
.nux-skeleton-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--nx-space-4, 1rem);
}
.nux-skeleton-card {
  border: 1px solid var(--nx-border, rgba(0, 0, 0, 0.08));
  border-radius: var(--nx-radius-lg, 16px);
  background: var(--nx-bg-surface, #fff);
  overflow: hidden;
}
.nux-skeleton-card-cover {
  height: 96px;
  background: linear-gradient(90deg, var(--nx-bg-muted, #f1f5f9) 25%, var(--nx-bg-hover, #e2e8f0) 50%, var(--nx-bg-muted, #f1f5f9) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
.nux-skeleton-card-body {
  padding: var(--nx-space-3, 0.75rem) var(--nx-space-4, 1rem);
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-2, 0.5rem);
}
.nux-skeleton-card-line {
  height: 13px;
  border-radius: var(--nx-radius-sm, 6px);
  background: linear-gradient(90deg, var(--nx-bg-muted, #f1f5f9) 25%, var(--nx-bg-hover, #e2e8f0) 50%, var(--nx-bg-muted, #f1f5f9) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}

.nux-drawer-overlay-enter-active { transition: opacity 0.3s ease; }
.nux-drawer-overlay-leave-active { transition: opacity 0.2s ease; }
.nux-drawer-overlay-enter-from,
.nux-drawer-overlay-leave-to { opacity: 0; }

.nux-drawer-left-enter-active,
.nux-drawer-left-leave-active { transition: transform 0.3s ease; }
.nux-drawer-left-enter-from,
.nux-drawer-left-leave-to { transform: translateX(-100%); }

.nux-drawer-right-enter-active,
.nux-drawer-right-leave-active { transition: transform 0.3s ease; }
.nux-drawer-right-enter-from,
.nux-drawer-right-leave-to { transform: translateX(100%); }@media (max-width: 768px){
  .nux-toast-container {
    left: var(--nx-space-4);
    right: var(--nx-space-4);
    top: calc(var(--nx-space-4) + var(--nx-safe-top));
  }
  .nux-toast-item { max-width: none; }
}

/* 通知管理面板（完整页面版） */
.nux-notif-panel-page { max-width: 720px; margin: 0 auto; padding: var(--nx-space-6); }
.nux-notif-panel-header {
  display: flex; align-items: center;
  margin-bottom: var(--nx-space-4); padding-bottom: var(--nx-space-4);
  border-bottom: 1px solid var(--nx-border);
}
.nux-notif-panel-title { font-size: var(--nx-text-xl); font-weight: 700; color: var(--nx-text-heading); margin: 0; }
.nux-notif-unread-pill {
  margin-left: var(--nx-space-3);
  font-size: var(--nx-text-xs); line-height: 1;
  padding: 4px 10px; border-radius: 999px;
  background: var(--nx-bg-muted); color: var(--nx-text-secondary);
}
.nux-notif-unread-pill.has-unread {
  background: rgba(var(--app-accent-rgb), 0.1); color: var(--nx-text-accent); font-weight: 600;
}
.nux-notif-panel-mark-all {
  margin-left: auto; border: 1px solid var(--nx-border); background: var(--nx-bg-surface);
  color: var(--nx-text-accent); font-size: var(--nx-text-sm); cursor: pointer;
  padding: var(--nx-space-2) var(--nx-space-4); min-height: 36px;
  border-radius: var(--nx-radius-sm); transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-notif-panel-mark-all:hover { background: var(--nx-bg-hover); border-color: rgba(var(--app-accent-rgb), 0.4); }
.nux-notif-push-slot { margin-left: auto; }
.nux-notif-panel-header .nux-notif-unread-pill { margin-left: 0; }
.nux-notif-bulk { display: inline-flex; gap: 8px; margin-left: auto; }
.nux-notif-panel-toolbar .nux-notif-seg { margin-left: 0; }
.nux-notif-panel-clean {
  border: 1px solid var(--nx-border); background: var(--nx-bg-surface);
  color: var(--nx-text-secondary); font-size: var(--nx-text-sm); cursor: pointer;
  padding: var(--nx-space-2) var(--nx-space-4); min-height: 36px;
  border-radius: var(--nx-radius-sm); transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast), color var(--nx-transition-fast);
}
.nux-notif-panel-clean:hover { background: var(--nx-bg-hover); border-color: rgba(var(--app-accent-rgb), 0.4); color: var(--nx-text-strong); }
.nux-notif-panel-clean:focus-visible, .nux-notif-panel-mark-all:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 2px; }
.nux-notif-push-pill {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid rgba(var(--app-accent-rgb), 0.35); background: var(--nx-bg-surface);
  color: var(--nx-text-accent); font-size: var(--nx-text-xs); font-weight: 600;
  padding: 5px 12px; min-height: 28px; border-radius: 999px; cursor: pointer;
  transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-notif-push-pill:hover { background: rgba(var(--app-accent-rgb), 0.08); border-color: rgba(var(--app-accent-rgb), 0.6); }
.nux-notif-push-pill.is-on { background: rgba(var(--app-accent-rgb), 0.12); border-color: transparent; }
.nux-notif-push-pill.is-denied {
  border-color: rgba(var(--nx-warning-rgb), 0.5); background: var(--nx-warning-soft);
  color: var(--nx-warning-text);
}
.nux-notif-push-pill.is-denied:hover { border-color: rgba(var(--nx-warning-rgb), 0.8); background: var(--nx-warning-soft); }
.nux-notif-push-pill.is-unsupported { border-color: var(--nx-border); color: var(--nx-text-tertiary, var(--nx-text-secondary)); cursor: default; }
.nux-notif-push-pill[disabled] { opacity: 0.6; cursor: wait; }
.nux-notif-push-banner.is-recover {
  border-color: rgba(var(--nx-warning-rgb), 0.4); background: var(--nx-warning-soft);
  color: var(--nx-text-secondary);
}
.nux-notif-push-banner.is-recover > i { color: var(--nx-warning-text); }
.nux-notif-push-banner.is-recover .nux-notif-push-banner-cta { background: transparent; border: 1px solid rgba(var(--nx-warning-rgb), 0.55); color: var(--nx-warning-text); }
.nux-notif-push-banner.is-error {
  border-color: rgba(var(--nx-danger-rgb), 0.35); background: rgba(var(--nx-danger-rgb), 0.07);
  color: var(--nx-text-secondary);
}
.nux-notif-push-banner.is-error > i { color: var(--nx-danger); }
.nux-notif-push-banner-slot:not(:empty) { margin-bottom: var(--nx-space-3); }
.nux-notif-push-banner {
  display: flex; align-items: center; gap: var(--nx-space-3);
  padding: var(--nx-space-3) var(--nx-space-4);
  border: 1px solid rgba(var(--app-accent-rgb), 0.3); border-radius: var(--nx-radius-sm);
  background: rgba(var(--app-accent-rgb), 0.06); font-size: var(--nx-text-sm); color: var(--nx-text-secondary);
}
.nux-notif-push-banner > i { color: var(--nx-text-accent); }
.nux-notif-push-banner-text { flex: 1; min-width: 0; }
.nux-notif-push-banner-cta {
  flex-shrink: 0; border: none; border-radius: var(--nx-radius-sm);
  background: var(--app-accent, var(--nx-text-accent)); color: #fff;
  font-size: var(--nx-text-sm); font-weight: 600; cursor: pointer;
  padding: var(--nx-space-2) var(--nx-space-4); min-height: 32px;
}
.nux-notif-push-banner-close {
  flex-shrink: 0; border: none; background: none; color: var(--nx-text-tertiary, var(--nx-text-secondary));
  cursor: pointer; padding: var(--nx-space-2); min-height: 28px; min-width: 28px;
}
.nux-notif-panel-mark-all:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 2px; }
.nux-notif-panel-boxes {
  display: flex; gap: 2px; margin-bottom: var(--nx-space-4);
  border-bottom: 1px solid var(--nx-border);
}
.nux-notif-box-btn {
  position: relative; border: none; background: transparent; color: var(--nx-text-secondary);
  font-size: var(--nx-text-sm); line-height: 1; padding: 10px 14px 12px;
  border-radius: 6px 6px 0 0; cursor: pointer;
  transition: color var(--nx-transition-fast);
}
.nux-notif-box-btn:hover { color: var(--nx-text-strong); }
.nux-notif-box-btn.active { color: var(--nx-text-strong); font-weight: 600; }
.nux-notif-box-btn.active::after {
  content: ''; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px;
  background: rgb(var(--app-accent-rgb)); border-radius: 999px;
}
.nux-notif-box-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: -2px; }
.nux-notif-panel-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px;
  margin-bottom: var(--nx-space-4);
}
.nux-notif-inboxseg {
  display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px;
}
.nux-notif-inboxbox-btn {
  display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--nx-border); background: var(--nx-bg-surface);
  color: var(--nx-text-secondary); font-size: var(--nx-text-sm); line-height: 1;
  padding: 8px 14px; min-height: 36px; border-radius: 999px; cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-notif-inboxbox-btn:hover { border-color: rgba(var(--app-accent-rgb), 0.45); color: var(--nx-text-strong); }
.nux-notif-inboxbox-btn.active {
  background: rgba(var(--app-accent-rgb), 0.1);
  border-color: rgba(var(--app-accent-rgb), 0.45);
  color: var(--nx-text-accent); font-weight: 600;
}
.nux-notif-inboxbox-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notif-inboxbox-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px; background: rgb(var(--app-accent-rgb));
  color: var(--nx-text-on-accent); font-size: 11px; font-weight: 600; line-height: 1;
}
.nux-notif-seg {
  display: inline-flex; gap: 2px; padding: 2px;
  border-radius: 8px; background: var(--nx-bg-muted);
}
.nux-notif-seg-btn {
  border: none; background: transparent; color: var(--nx-text-secondary);
  font-size: var(--nx-text-sm); line-height: 1; padding: 8px 16px;
  border-radius: 6px; cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast);
}
.nux-notif-seg-btn.active {
  background: var(--nx-bg-surface); color: var(--nx-text-strong); font-weight: 600;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.nux-notif-seg-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notif-chips {
  display: flex; gap: 8px; align-items: center;
  overflow-x: auto; max-width: 100%; padding: 2px;
  margin-bottom: var(--nx-space-4);
  scrollbar-width: none;
}
.nux-notif-chips::-webkit-scrollbar { display: none; }
.nux-notif-chips.is-scrollable {
  mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent);
}
.nux-notif-chip {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px;
  border: 1px solid var(--nx-border); background: var(--nx-bg-surface);
  color: var(--nx-text-secondary); font-size: var(--nx-text-xs); line-height: 1;
  padding: 8px 12px; border-radius: 999px; cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-notif-chip span { color: var(--nx-text-muted); font-weight: 600; }
.nux-notif-chip:hover { border-color: rgba(var(--app-accent-rgb), 0.45); color: var(--nx-text-strong); }
.nux-notif-chip.active {
  background: rgba(var(--app-accent-rgb), 0.1);
  border-color: rgba(var(--app-accent-rgb), 0.45);
  color: var(--nx-text-accent); font-weight: 600;
}
.nux-notif-chip.active span { color: var(--nx-text-accent); }
.nux-notif-chip:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
@media (hover: none) and (pointer: coarse) {
  .nux-notif-box-btn { padding: 14px 14px 16px; }
  .nux-notif-chip { min-height: 44px; }
  .nux-notif-inboxbox-btn { min-height: 44px; padding: 10px 16px; }
}
.nux-notif-panel-item.is-archived .nux-notif-panel-item-icon { opacity: 0.55; }
.nux-notif-panel-item.is-archived .nux-notif-panel-item-title { font-weight: 400; color: var(--nx-text-secondary); }
.nux-notif-empty-title { font-size: var(--nx-text-sm); color: var(--nx-text-secondary); }
.nux-notif-empty-sub { font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-notif-panel-list { min-height: 200px; }
.nux-notif-panel-loading, .nux-notif-panel-error, .nux-notif-panel-empty {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: var(--nx-space-12); color: var(--nx-text-muted); gap: var(--nx-space-3);
}
.nux-notif-panel-loading i, .nux-notif-panel-error i, .nux-notif-panel-empty i { font-size: 2.5rem; opacity: 0.4; }
.nux-notif-panel-item {
  display: flex; gap: var(--nx-space-3); padding: var(--nx-space-4); cursor: pointer;
  transition: background var(--nx-transition-fast); position: relative;
  border-radius: var(--nx-radius-md); margin-bottom: var(--nx-space-2);
}
.nux-notif-panel-item:hover { background: var(--nx-bg-hover); }
.nux-notif-panel-item:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: -2px; }
.nux-notif-panel-item.is-unread { background: rgba(var(--app-accent-rgb), 0.06); }
.nux-notif-panel-item:hover.is-unread { background: rgba(var(--app-accent-rgb), 0.10); }
[data-theme="dark"] .nux-notif-panel-item.is-unread { background: rgba(var(--app-accent-rgb), 0.12); }
[data-theme="dark"] .nux-notif-panel-item:hover.is-unread { background: rgba(var(--app-accent-rgb), 0.18); }
.nux-notif-panel-item-icon {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: var(--nx-radius-md);
  background: var(--nx-bg-muted); display: flex; align-items: center; justify-content: center;
  color: var(--nx-text-secondary); font-size: var(--nx-text-base);
}
.nux-notif-panel-item.tone-info .nux-notif-panel-item-icon { background: rgba(var(--nx-info-rgb), 0.13); color: rgb(var(--nx-info-rgb)); }
.nux-notif-panel-item.tone-success .nux-notif-panel-item-icon { background: rgba(var(--nx-success-rgb), 0.13); color: rgb(var(--nx-success-rgb)); }
.nux-notif-panel-item.tone-warning .nux-notif-panel-item-icon { background: rgba(var(--nx-warning-rgb), 0.15); color: rgb(var(--nx-warning-rgb)); }
.nux-notif-panel-item.tone-danger .nux-notif-panel-item-icon { background: rgba(var(--nx-danger-rgb), 0.12); color: rgb(var(--nx-danger-rgb)); }
.nux-notif-panel-item.tone-accent .nux-notif-panel-item-icon { background: rgba(var(--app-accent-rgb), 0.11); color: rgb(var(--app-accent-rgb)); }
.nux-notif-panel-item.tone-neutral .nux-notif-panel-item-icon { background: var(--nx-bg-muted); color: var(--nx-text-secondary); }
.nux-notif-panel-item-body { flex: 1; min-width: 0; }
.nux-notif-panel-item-title {
  font-size: var(--nx-text-sm); font-weight: 600; color: var(--nx-text-heading);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nux-notif-panel-item-content {
  font-size: var(--nx-text-xs); color: var(--nx-text-secondary); margin-top: 2px; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nux-notif-panel-item-time { font-size: var(--nx-text-xs); color: var(--nx-text-muted); margin-top: 4px; }
.nux-notif-panel-item-actions { flex-shrink: 0; display: flex; align-items: center; }
.nux-notif-panel-item-delete {
  border: none; background: transparent; color: var(--nx-text-muted); cursor: pointer;
  width: 36px; height: 36px; border-radius: var(--nx-radius-sm);
  font-size: var(--nx-text-sm); opacity: 0;
  transition: opacity var(--nx-transition-fast), color var(--nx-transition-fast), background var(--nx-transition-fast);
}
@media (hover: none) and (pointer: coarse) {
  .nux-notif-panel-item-delete { width: 44px; height: 44px; }
}
.nux-notif-panel-item:hover .nux-notif-panel-item-delete { opacity: 1; }
.nux-notif-panel-item-delete:hover { color: var(--nx-danger); background: rgba(var(--nx-danger-rgb), 0.1); }
.nux-notif-panel-item-delete:focus-visible { opacity: 1; outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notif-panel-item-delete.is-confirm {
  opacity: 1; width: auto; min-width: 64px; padding: 0 var(--nx-space-3);
  background: var(--nx-danger); color: var(--nx-text-on-accent); font-weight: 600;
}
.nux-notif-panel-dot {
  position: absolute; top: var(--nx-space-4); right: var(--nx-space-4);
  width: 8px; height: 8px; border-radius: var(--nx-radius-full); background: var(--nx-danger);
}
.nux-notif-panel-footer { margin-top: var(--nx-space-6); text-align: center; }
.nux-notif-panel-pages { display: inline-flex; align-items: center; gap: var(--nx-space-3); }
.nux-notif-panel-page-btn {
  border: 1px solid var(--nx-border); background: var(--nx-bg-elevated); cursor: pointer;
  width: 36px; height: 36px; border-radius: var(--nx-radius-md);
  color: var(--nx-text-secondary); font-size: var(--nx-text-sm); transition: all var(--nx-transition-fast);
}
.nux-notif-panel-page-btn:hover:not(:disabled) { border-color: var(--nx-text-accent); color: var(--nx-text-accent); }
.nux-notif-panel-page-btn:disabled { opacity: 0.4; cursor: default; }
.nux-notif-panel-page-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 2px; }
@media (hover: none) and (pointer: coarse) {
  .nux-notif-panel-page-btn { width: 44px; height: 44px; }
}
.nux-notif-panel-page-info { font-size: var(--nx-text-sm); color: var(--nx-text-muted); }@media (max-width: 768px){
  .nux-notif-panel-page { padding: var(--nx-space-4); }
  .nux-notif-panel-title { font-size: var(--nx-text-lg); }
  .nux-notif-panel-item { padding: var(--nx-space-3); }
  .nux-notif-panel-item-delete { opacity: 1; }
  .nux-notif-panel-header { flex-wrap: wrap; row-gap: var(--nx-space-2); }
  .nux-notif-panel-title { flex-basis: 100%; white-space: nowrap; }
  .nux-notif-push-slot { margin-left: 0; }
  .nux-notif-push-pill { white-space: nowrap; }
  .nux-notif-push-banner { flex-wrap: nowrap; padding: var(--nx-space-2) var(--nx-space-3); }
  .nux-notif-push-banner-text {
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  }
  .nux-notif-bulk { flex-basis: 100%; order: 3; margin-left: 0; }
  .nux-notif-bulk .nux-notif-panel-mark-all, .nux-notif-panel-clean { flex: 1; min-height: 44px; }
}

.nx-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--nx-space-12) var(--nx-space-6);
  text-align: center;
}
.nx-empty-state i {
  font-size: 40px;
  margin-bottom: var(--nx-space-4);
  color: var(--nx-text-muted);
}
.nx-empty-state h3 {
  font-size: var(--nx-text-base);
  color: var(--nx-text-secondary);
  margin-bottom: var(--nx-space-2);
}
.nx-empty-state p {
  font-size: var(--nx-text-sm);
  color: var(--nx-text-muted);
}
.nx-empty-state .nx-empty-hint {
  font-size: var(--nx-text-xs);
  color: var(--nx-text-muted);
  margin-top: var(--nx-space-1);
}
.nx-empty-actions {
  display: flex;
  gap: var(--nx-space-3);
  margin-top: var(--nx-space-4);
  flex-wrap: wrap;
  justify-content: center;
}

.nux-undo-toast {
  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: calc(var(--nux-undo-bottom, 88px) + var(--nx-safe-bottom));
  z-index: var(--nx-z-topmost);
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px 10px 18px;
  background: var(--nx-undo-bg, #475569);
  border-radius: 999px;
  box-shadow: var(--nx-shadow-lg);
  max-width: calc(100vw - 24px);
}
.nux-undo-toast.raised {
  bottom: calc(var(--nux-undo-bottom, 88px) + 66px + var(--nx-safe-bottom));
}
.nux-undo-text {
  font-size: 13px; color: var(--nx-text-on-accent);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nux-undo-btn {
  background: var(--nx-undo-btn-bg, #ffffff); color: var(--nx-undo-bg, #475569);
  border: none; border-radius: 999px;
  padding: 5px 16px; font-size: 13px; font-weight: 700;
  cursor: pointer; flex-shrink: 0;
}
.nux-undo-btn:active { transform: scale(0.95); }

.nux-selection-bar {
  position: fixed; left: 50%; transform: translateX(-50%);
  bottom: calc(var(--nux-undo-bottom, 88px) + var(--nx-safe-bottom));
  z-index: var(--nx-z-topmost);
  display: flex; align-items: center; gap: 12px;
  padding: 8px 12px 8px 18px;
  background: var(--nx-bg-surface, #ffffff);
  border: 1.5px solid rgba(var(--app-accent-rgb), 0.35);
  border-radius: 999px;
  box-shadow: 0 12px 32px rgba(31, 78, 121, 0.28);
  max-width: calc(100vw - 24px);
}
.nux-selection-count {
  font-size: 14px; font-weight: 700;
  color: var(--app-accent, #6366f1); white-space: nowrap;
}
.nux-selection-actions { display: flex; align-items: center; gap: 8px; }
.nux-selection-clear {
  background: none; border: none;
  color: var(--nx-text-secondary, #64748b);
  font-size: 13px; cursor: pointer; padding: 6px 8px;
  white-space: nowrap;
}

.nux-undo-enter-active, .nux-undo-leave-active { transition: opacity 0.2s ease, transform 0.2s ease; }
.nux-undo-enter-from, .nux-undo-leave-to { opacity: 0; transform: translateX(-50%) translateY(12px); }


/* ===== AI 生成标识 ===== */
.nx-ai-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  vertical-align: middle;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1;
  border-radius: var(--nx-radius-sm, 4px);
  white-space: nowrap;
}
.nx-ai-badge-sm { font-size: 0.6875rem; padding: 2px 6px; }
.nx-ai-badge-md { font-size: 0.75rem; padding: 3px 8px; }
.nx-ai-badge[data-tone="accent"] {
  background: var(--nx-accent-soft, rgba(79, 70, 229, 0.1));
  color: var(--nx-accent, rgb(79, 70, 229));
}
.nx-ai-badge[data-tone="slate"] {
  background: var(--nx-border, rgba(100, 116, 139, 0.14));
  color: var(--nx-text-secondary, rgb(100, 116, 139));
}
.nx-ai-badge-icon { flex: 0 0 auto; }
.nx-ai-badge-text { display: inline-block; }

/* ===== 标准应用启动加载 ===== */
.nx-app-loading-done { opacity: 0 !important; transition: opacity 0.3s ease; }

/* ===== AI 流式指示器 ===== */
.nux-ai-indicator {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  border-radius: var(--nx-radius-md, 12px);
  color: var(--nx-text-secondary, rgb(100, 116, 139));
  font-size: 0.875rem;
  background: var(--nx-bg-muted, rgb(241, 245, 249));
}
.nux-ai-indicator-dots {
  display: inline-flex;
  align-items: flex-end;
  gap: 3px;
  height: 14px;
}
.nux-ai-indicator-dots i {
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--nx-primary, rgb(14, 165, 233));
  animation: nuxAiBounce 1.2s infinite ease-in-out;
}
.nux-ai-indicator-dots i:nth-child(2) { animation-delay: 0.15s; }
.nux-ai-indicator-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes nuxAiBounce {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.45; }
  30% { transform: translateY(-4px); opacity: 1; }
}
.nux-ai-indicator-text { white-space: nowrap; }@keyframes nuxExportSpin { to { transform: rotate(360deg); } }/* ===== 骨架屏 preset（list / cards / gallery / report） ===== */
.nux-skeleton-report {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-3);
}
.nux-skeleton-report-title {
  height: 22px;
  width: 46%;
  border-radius: var(--nx-radius-sm);
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
.nux-skeleton-report-sub {
  height: 12px;
  width: 28%;
  border-radius: var(--nx-radius-sm);
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
.nux-skeleton-report-block {
  height: 140px;
  border-radius: var(--nx-radius-lg);
  background: linear-gradient(90deg, var(--nx-bg-muted) 25%, var(--nx-bg-hover) 50%, var(--nx-bg-muted) 75%);
  background-size: 200% 100%;
  animation: nx-skeleton-pulse 1.5s ease-in-out infinite;
}
.nux-skeleton-grid-gallery { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.nux-skeleton-cover-tall { height: 150px; }

/* ===== AI 长任务过程态 ===== */
.nux-ai-task {
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-3);
  padding: var(--nx-space-5);
  border-radius: var(--nx-radius-lg);
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  box-shadow: var(--nx-shadow-sm);
}
.nux-ai-task.is-compact {
  gap: var(--nx-space-2);
  padding: var(--nx-space-3) var(--nx-space-4);
  box-shadow: none;
}
.nux-ai-task-head { display: flex; align-items: center; gap: var(--nx-space-3); min-width: 0; }
.nux-ai-task-spinner {
  flex: none;
  width: 15px;
  height: 15px;
  border: 2px solid var(--nx-border);
  border-top-color: var(--nx-primary);
  border-radius: 50%;
  animation: nx-spin 0.7s linear infinite;
}
.nux-ai-task-title {
  flex: 1;
  min-width: 0;
  font-size: var(--nx-text-base);
  font-weight: 600;
  color: var(--nx-text-heading);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nux-ai-task-pct {
  flex: none;
  font-size: var(--nx-text-sm);
  font-weight: 600;
  color: var(--nx-text-secondary);
  font-variant-numeric: tabular-nums;
}
.nux-ai-task-stages {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--nx-space-2) var(--nx-space-4);
}
.nux-ai-task-stage {
  display: inline-flex;
  align-items: center;
  gap: var(--nx-space-2);
  min-width: 0;
  font-size: var(--nx-text-sm);
  color: var(--nx-text-muted);
}
.nux-ai-task-dot {
  position: relative;
  flex: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--nx-border-hover);
  background: var(--nx-bg-muted);
  box-sizing: border-box;
}
.nux-ai-task-stage.is-active .nux-ai-task-dot {
  border-color: var(--nx-primary);
  background: var(--nx-primary);
  animation: nux-ai-task-pulse 1.4s ease-in-out infinite;
}
.nux-ai-task-stage.is-active .nux-ai-task-stage-label {
  color: var(--nx-text-heading);
  font-weight: 500;
}
.nux-ai-task-stage.is-done .nux-ai-task-dot {
  border-color: var(--nx-success);
  background: var(--nx-success);
}
.nux-ai-task-stage.is-done .nux-ai-task-dot::after {
  content: "";
  position: absolute;
  left: 4px;
  top: 1.5px;
  width: 4px;
  height: 7.5px;
  border-right: 1.6px solid var(--nx-text-on-accent, #fff);
  border-bottom: 1.6px solid var(--nx-text-on-accent, #fff);
  transform: rotate(42deg);
}
@keyframes nux-ai-task-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.84); }
}
.nux-ai-task-bar {
  height: 6px;
  border-radius: var(--nx-radius-full);
  background: var(--nx-bg-muted);
  overflow: hidden;
}
.nux-ai-task-bar-val {
  height: 100%;
  border-radius: inherit;
  background: var(--nx-primary);
  transition: width var(--nx-transition-slow);
}
.nux-ai-task-msg { margin: 0; font-size: var(--nx-text-sm); color: var(--nx-text-secondary); line-height: 1.5; }
.nux-ai-task-findings { margin: var(--nx-space-2) 0 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 4px; }
.nux-ai-task-finding { display: flex; align-items: baseline; gap: 6px; font-size: var(--nx-text-sm); color: var(--nx-text-secondary); line-height: 1.5; }
.nux-ai-task-finding.is-done { color: var(--nx-text-primary); }
.nux-ai-task-finding-mark { flex: none; color: var(--nx-success, #10b981); font-size: 12px; }
.nux-ai-task-finding.is-done .nux-ai-task-finding-mark { color: var(--nx-success, #10b981); }
.nux-ai-task-finding-text { min-width: 0; }

.nux-ai-task-foot { display: flex; align-items: center; gap: var(--nx-space-2); }@media (prefers-reduced-motion: reduce){
  .nux-ai-task-spinner { animation: none; }
  .nux-ai-task-stage.is-active .nux-ai-task-dot { animation: none; }
  .nux-ai-task-bar-val { transition: none; }
}

/* ===== AI 生成内容显式标识条 ===== */
.nux-ai-notice {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  flex-wrap: wrap;
  padding: var(--nx-space-2) var(--nx-space-3);
  border-radius: var(--nx-radius-md);
  background: var(--nx-bg-muted);
  border: 1px solid var(--nx-border);
  font-size: var(--nx-text-xs);
  color: var(--nx-text-secondary);
}
.nux-ai-notice[data-tone="accent"] {
  background: rgba(var(--app-accent-rgb), 0.07);
  border-color: var(--nx-border-accent);
}
.nux-ai-notice.is-sm { padding: var(--nx-space-1) var(--nx-space-2); }
.nux-ai-notice.is-lg { padding: var(--nx-space-3) var(--nx-space-4); font-size: var(--nx-text-sm); }
.nux-ai-notice-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex: none;
  padding: 3px 8px;
  border-radius: var(--nx-radius-sm);
  background: rgba(var(--app-accent-rgb), 0.12);
  color: var(--nx-text-accent);
  font-weight: 500;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
.nux-ai-notice[data-tone="slate"] { background: var(--nx-bg-muted); border-color: var(--nx-border); }
.nux-ai-notice[data-tone="slate"] .nux-ai-notice-badge {
  background: var(--nx-border);
  color: var(--nx-text-secondary);
}
.nux-ai-notice-glyph { flex: none; }
.nux-ai-notice-note { flex: 1; min-width: 0; line-height: 1.5; }
.nux-ai-notice-actions {
  display: inline-flex;
  align-items: center;
  gap: var(--nx-space-2);
  margin-left: auto;
  flex: none;
}


/* 通知面板：时间分组 / 来源徽标 / 岗位迷你卡 / 应用静音区 */
.nux-notif-group-label {
  font-size: var(--nx-text-xs); font-weight: 600; color: var(--nx-text-muted);
  margin: var(--nx-space-4) var(--nx-space-2) var(--nx-space-2);
}
.nux-notif-panel-item-meta {
  display: flex; align-items: center; gap: var(--nx-space-2); margin-top: 4px;
}
.nux-notif-app-tag {
  font-size: 11px; line-height: 1; padding: 3px 7px; border-radius: var(--nx-radius-full);
  background: var(--nx-bg-muted); color: var(--nx-text-secondary); white-space: nowrap;
}
.nux-notif-panel-item-time { margin-top: 0; }
.nux-notif-jobs { margin-top: var(--nx-space-2); display: flex; flex-direction: column; gap: 4px; }
.nux-notif-job {
  display: flex; align-items: center; justify-content: space-between; gap: var(--nx-space-2);
  width: 100%; text-align: left; border: none; cursor: pointer;
  background: var(--nx-bg-muted); color: var(--nx-text-secondary);
  font-size: var(--nx-text-xs); padding: 6px 10px; border-radius: var(--nx-radius-sm);
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast);
}
.nux-notif-job:hover { background: var(--nx-bg-hover); color: var(--nx-text-heading); }
.nux-notif-job-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nux-notif-job i, .nux-notif-more i { font-size: 10px; color: var(--nx-text-muted); flex-shrink: 0; }
.nux-notif-more {
  display: inline-flex; align-items: center; gap: 4px; align-self: flex-start;
  border: none; background: transparent; cursor: pointer;
  color: var(--nx-text-accent); font-size: var(--nx-text-xs); padding: 4px 2px;
}
.nux-notif-more:hover { text-decoration: underline; }
.nux-notif-more i { color: var(--nx-text-accent); }
.nux-notif-mute { border-top: 1px solid var(--nx-border); margin-top: var(--nx-space-4); }
.nux-notif-mute-head {
  display: flex; align-items: center; gap: var(--nx-space-2); width: 100%;
  border: none; background: transparent; cursor: pointer;
  color: var(--nx-text-muted); font-size: var(--nx-text-sm); font-weight: 600;
  padding: var(--nx-space-3) var(--nx-space-2);
}
.nux-notif-mute-head:hover { color: var(--nx-text-secondary); }
.nux-notif-mute-head i:last-child { margin-left: auto; font-size: 11px; }
.nux-notif-mute-list { display: flex; flex-direction: column; gap: 2px; padding-bottom: var(--nx-space-2); }
.nux-notif-mute-row {
  display: flex; align-items: center; justify-content: space-between;
  font-size: var(--nx-text-sm); color: var(--nx-text-secondary); padding: 2px var(--nx-space-2);
}
.nux-notif-mute-toggle {
  border: 1px solid var(--nx-border); background: var(--nx-bg-surface); cursor: pointer;
  color: var(--nx-text-accent); font-size: var(--nx-text-xs);
  padding: 5px 12px; border-radius: var(--nx-radius-full); min-height: 28px;
  transition: all var(--nx-transition-fast);
}
.nux-notif-mute-toggle.is-muted {
  color: var(--nx-text-muted); background: var(--nx-bg-muted); border-color: transparent;
}
.nux-notif-mute-hint {
  font-size: var(--nx-text-xs); color: var(--nx-text-muted); margin: var(--nx-space-2) var(--nx-space-2) 0;
}
@media (max-width: 768px){
  .nux-notif-job { padding: 10px 12px; }
  .nux-notif-mute-toggle { padding: 8px 16px; }
}

/* nux-webpush-invite —— 页面级锁屏推送邀请条（r24）：底部居中悬浮，soft-ask 双段式 */
.nux-push-invite {
  position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  transform: translate(-50%, 12px);
  display: flex; align-items: center; gap: var(--nx-space-3);
  max-width: min(560px, calc(100vw - 32px));
  padding: 10px 12px 10px 16px;
  background: var(--nx-bg-surface); color: var(--nx-text-secondary);
  border: 1px solid rgba(var(--app-accent-rgb), 0.35);
  border-radius: 14px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
  font-size: var(--nx-text-sm); line-height: 1.5;
  opacity: 0; pointer-events: none;
  transition: opacity var(--nx-transition-fast), transform var(--nx-transition-fast);
  z-index: 2140;
}
.nux-push-invite.is-in { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.nux-push-invite-ic { color: var(--nx-text-accent); flex-shrink: 0; }
.nux-push-invite-text { flex: 1; min-width: 0; }
.nux-push-invite-text b { color: var(--nx-text-primary); font-weight: 700; }
.nux-push-invite-cta {
  flex-shrink: 0; border: none; border-radius: 999px;
  background: var(--app-accent, var(--nx-text-accent)); color: #fff;
  font-size: var(--nx-text-sm); font-weight: 600; cursor: pointer;
  padding: var(--nx-space-2) var(--nx-space-4); min-height: 32px;
}
.nux-push-invite-cta:hover { filter: brightness(1.06); }
.nux-push-invite.is-busy .nux-push-invite-cta { opacity: 0.6; cursor: wait; }
.nux-push-invite-close {
  flex-shrink: 0; border: none; background: none;
  color: var(--nx-text-tertiary, var(--nx-text-secondary));
  cursor: pointer; padding: var(--nx-space-2); min-height: 28px; min-width: 28px;
  border-radius: 999px;
}
.nux-push-invite-close:hover { background: var(--nx-bg-hover); }
@media (max-width: 640px) {
  .nux-push-invite { left: 12px; right: 12px; max-width: none; transform: translateY(12px); }
  .nux-push-invite.is-in { transform: translateY(0); }
}

/* ===== nexus-components-checkin.css ===== */
.nux-checkin { display: flex; flex-direction: column; gap: var(--nx-space-4); }

.nux-checkin-skeleton { display: flex; flex-direction: column; gap: var(--nx-space-3); padding: var(--nx-space-4) 0; }

.nux-checkin-error {
  display: flex; align-items: center; gap: var(--nx-space-2);
  padding: var(--nx-space-3); font-size: var(--nx-text-sm);
  color: var(--nx-danger); background: rgba(var(--nx-danger-rgb), 0.08);
  border: 1px solid rgba(var(--nx-danger-rgb), 0.2); border-radius: var(--nx-radius-md);
}

.nux-checkin-streak {
  position: relative; display: flex; align-items: center; gap: var(--nx-space-4);
  padding: var(--nx-space-5); overflow: hidden;
  background: linear-gradient(135deg, color-mix(in srgb, var(--app-accent, var(--nx-primary)) 12%, var(--nx-bg-surface)), var(--nx-bg-surface));
  border: 1px solid var(--nx-border); border-radius: var(--nx-radius-xl);
}
.nux-checkin-streak-icon {
  display: flex; align-items: center; justify-content: center;
  width: 56px; height: 56px; flex-shrink: 0;
  font-size: 30px; border-radius: var(--nx-radius-lg);
  background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 15%, transparent);
}
.nux-checkin-streak-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nux-checkin-streak-num { font-size: var(--nx-text-3xl); font-weight: 800; line-height: 1.1; color: var(--nx-text-heading); font-variant-numeric: tabular-nums; }
.nux-checkin-streak-num span { font-size: var(--nx-text-sm); font-weight: 500; color: var(--nx-text-secondary); margin-left: 2px; }
.nux-checkin-streak-label { display: flex; align-items: center; gap: 4px; font-size: var(--nx-text-sm); color: var(--nx-text-secondary); }
.nux-checkin-streak-label .trend { font-style: normal; font-weight: 700; }
.nux-checkin-streak-label .trend.up { color: var(--nx-success); }
.nux-checkin-streak-label .trend.down { color: var(--nx-danger); }
.nux-checkin-mile { display: inline-flex; align-items: center; gap: 4px; font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-checkin-mile .medal { font-size: 14px; line-height: 1; }
.nux-checkin-streak-shields {
  position: absolute; top: var(--nx-space-3); right: var(--nx-space-3);
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 10px; font-size: var(--nx-text-xs); font-weight: 600;
  color: var(--nx-info); background: rgba(var(--nx-info-rgb), 0.12);
  border-radius: var(--nx-radius-full);
}
.nux-checkin-streak.celebrating .nux-checkin-streak-icon { animation: nux-checkin-pop 0.6s ease; }

.nux-checkin-overview {
  display: flex; justify-content: space-around; gap: var(--nx-space-3);
  padding: var(--nx-space-4); background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border); border-radius: var(--nx-radius-lg);
}
.nux-checkin-ov { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.nux-checkin-ov b { font-size: var(--nx-text-xl); font-weight: 700; color: var(--app-accent, var(--nx-primary)); }
.nux-checkin-ov span { font-size: var(--nx-text-xs); color: var(--nx-text-muted); }

.nux-checkin-task { padding: var(--nx-space-5); }
.nux-checkin-task-head { margin-bottom: var(--nx-space-3); }
.nux-checkin-task-title { display: flex; align-items: center; gap: var(--nx-space-2); font-size: var(--nx-text-lg); font-weight: 600; color: var(--nx-text-heading); flex-wrap: wrap; }
.nux-checkin-badge-type {
  padding: 1px 8px; font-size: var(--nx-text-xs); font-weight: 600;
  color: var(--app-accent, var(--nx-primary));
  background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 12%, transparent);
  border-radius: var(--nx-radius-full);
}
.nux-checkin-task-desc { margin: var(--nx-space-2) 0 0; font-size: var(--nx-text-sm); color: var(--nx-text-secondary); }

.nux-checkin-progress { margin-bottom: var(--nx-space-3); }
.nux-checkin-progress-bar { height: 8px; overflow: hidden; background: var(--nx-bg-muted); border-radius: var(--nx-radius-full); }
.nux-checkin-progress-fill { height: 100%; border-radius: var(--nx-radius-full); transition: width var(--nx-transition-base); }
.nux-checkin-progress-info { display: flex; gap: 4px; justify-content: flex-end; margin-top: 4px; font-size: var(--nx-text-sm); font-weight: 600; color: var(--nx-text-heading); }
.nux-checkin-progress-info .sep { color: var(--nx-text-muted); font-weight: 400; }

.nux-checkin-done {
  display: flex; align-items: center; gap: var(--nx-space-2);
  padding: var(--nx-space-3); font-size: var(--nx-text-sm); font-weight: 500;
  color: var(--nx-success); background: rgba(var(--nx-success-rgb), 0.1);
  border: 1px solid rgba(var(--nx-success-rgb), 0.25); border-radius: var(--nx-radius-md);
}

.nux-checkin-action { display: flex; flex-direction: column; gap: var(--nx-space-3); }
.nux-checkin-entry { display: flex; flex-direction: column; gap: var(--nx-space-3); }
.nux-checkin-picker { display: flex; align-items: center; gap: var(--nx-space-4); justify-content: center; padding: var(--nx-space-3) 0; }
.nux-checkin-step {
  width: 52px; height: 52px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: var(--nx-text-xl); font-weight: 700;
  color: var(--app-accent, var(--nx-primary)); background: var(--nx-bg-muted);
  border: none; border-radius: var(--nx-radius-lg); cursor: pointer;
  transition: background var(--nx-transition-fast), transform var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-checkin-step:active { transform: scale(0.94); background: var(--nx-bg-hover); }
.nux-checkin-display { min-width: 96px; text-align: center; }
.nux-checkin-display .num { font-size: var(--nx-text-3xl); font-weight: 800; color: var(--nx-text-heading); line-height: 1.1; font-variant-numeric: tabular-nums; }
.nux-checkin-display .tgt { font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-checkin-presets { display: flex; gap: var(--nx-space-2); flex-wrap: wrap; justify-content: center; }
.nux-checkin-preset {
  padding: 6px 14px; font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary); background: var(--nx-bg-muted);
  border: 1px solid transparent; border-radius: var(--nx-radius-full); cursor: pointer;
  transition: all var(--nx-transition-fast);
}
.nux-checkin-preset.active { color: #fff; background: var(--app-accent, var(--nx-primary)); border-color: var(--app-accent, var(--nx-primary)); }
.nux-checkin-textarea {
  width: 100%; min-height: 92px; padding: var(--nx-space-3);
  font-size: var(--nx-text-sm); line-height: var(--nx-leading); color: var(--nx-text-body);
  background: var(--nx-bg-base); border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md); outline: none; box-sizing: border-box;
  resize: vertical; transition: border-color var(--nx-transition-fast);
}
.nux-checkin-textarea:focus { border-color: var(--app-accent, var(--nx-primary)); }
.nux-checkin-text-counter { text-align: right; font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-checkin-text-counter b { color: var(--app-accent, var(--nx-primary)); font-weight: 600; }

.nux-checkin-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--nx-space-2);
  padding: 12px 20px; font-size: var(--nx-text-base); font-weight: 600;
  color: var(--nx-text-on-accent); background: var(--app-accent, var(--nx-primary));
  border: none; border-radius: var(--nx-radius-md); cursor: pointer;
  box-shadow: var(--nx-shadow-sm);
  transition: filter var(--nx-transition-fast), transform var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-checkin-primary:disabled { opacity: 0.6; cursor: not-allowed; }
.nux-checkin-primary:not(:disabled):active { transform: scale(0.98); }
.nux-checkin-primary:not(:disabled):hover { filter: brightness(1.08); }
.nux-checkin-mini {
  padding: 8px 12px; font-size: var(--nx-text-xs);
  color: var(--nx-text-muted); background: transparent;
  border: 1px dashed var(--nx-border-hover); border-radius: var(--nx-radius-md); cursor: pointer;
  transition: all var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-checkin-mini:disabled { opacity: 0.6; cursor: not-allowed; }
.nux-checkin-mini:not(:disabled):hover { color: var(--app-accent, var(--nx-primary)); border-color: var(--app-accent, var(--nx-primary)); }

.nux-checkin-safety {
  display: flex; align-items: center; gap: var(--nx-space-2); flex-wrap: wrap;
  padding: var(--nx-space-3) var(--nx-space-4); font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary); background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border); border-radius: var(--nx-radius-lg);
}
.nux-checkin-safety i { color: var(--nx-warning); }
.nux-checkin-sub {
  display: inline-flex; align-items: center; gap: 4px; margin-left: auto;
  padding: 4px 12px; font-size: var(--nx-text-xs); font-weight: 500;
  color: var(--app-accent, var(--nx-primary)); background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 10%, transparent);
  border: 1px solid transparent; border-radius: var(--nx-radius-full); cursor: pointer;
}

.nux-checkin-calendar { padding: var(--nx-space-5); background: var(--nx-bg-surface); border: 1px solid var(--nx-border); border-radius: var(--nx-radius-xl); }
.nux-checkin-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--nx-space-4); font-size: var(--nx-text-base); font-weight: 600; color: var(--nx-text-heading); }
.nux-checkin-cal-head .legend { display: flex; align-items: center; gap: 8px; font-size: var(--nx-text-xs); font-weight: 400; color: var(--nx-text-muted); }
.nux-checkin-cal-head .legend em { display: inline-block; width: 8px; height: 8px; border-radius: 50%; font-style: normal; margin-right: 3px; }
.nux-checkin-cal-head .legend em.d { background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 30%, var(--nx-bg-muted)); }
.nux-checkin-cal-head .legend em.f { background: rgba(var(--nx-info-rgb), 0.4); }
.nux-checkin-cal-head .legend em.m { background: rgba(var(--nx-success-rgb), 0.5); }
.nux-checkin-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.nux-checkin-cell {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px;
  height: 44px; padding: 0; font-size: var(--nx-text-xs); color: var(--nx-text-secondary);
  background: var(--nx-bg-muted); border: none; border-radius: var(--nx-radius-md);
  cursor: pointer; transition: all var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent; box-sizing: border-box;
}
.nux-checkin-cell .st { font-size: 13px; line-height: 1; }
.nux-checkin-cell:disabled { cursor: default; }
.nux-checkin-cell.done { color: var(--app-accent, var(--nx-primary)); background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 22%, transparent); font-weight: 600; }
.nux-checkin-cell.frozen { color: var(--nx-info); background: rgba(var(--nx-info-rgb), 0.14); }
.nux-checkin-cell.mended { color: var(--nx-success); background: rgba(var(--nx-success-rgb), 0.18); }
.nux-checkin-cell.missed { color: var(--nx-text-muted); background: var(--nx-bg-muted); }
.nux-checkin-cell.future { color: var(--nx-text-muted); background: transparent; }
.nux-checkin-cell.today { box-shadow: inset 0 0 0 2px var(--app-accent, var(--nx-primary)); font-weight: 700; }
.nux-checkin-cell:not(:disabled):active { transform: scale(0.92); }
.nux-checkin-cal-actions { display: flex; gap: var(--nx-space-2); margin-top: var(--nx-space-4); flex-wrap: wrap; }
.nux-checkin-ghost {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 8px 16px; font-size: var(--nx-text-sm); font-weight: 500;
  color: var(--nx-text-secondary); background: transparent;
  border: 1px solid var(--nx-border); border-radius: var(--nx-radius-md); cursor: pointer;
  transition: all var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-checkin-ghost:hover { color: var(--app-accent, var(--nx-primary)); border-color: var(--app-accent, var(--nx-primary)); }
.nux-checkin-ghost.success { color: var(--nx-success); border-color: rgba(var(--nx-success-rgb), 0.4); }
.nux-checkin-ghost.success:hover { background: rgba(var(--nx-success-rgb), 0.08); }

@keyframes nux-checkin-pop {
  0% { transform: scale(1); }
  40% { transform: scale(1.25) rotate(-6deg); }
  100% { transform: scale(1); }
}

@media (max-width: 768px) {
  .nux-checkin-streak { padding: var(--nx-space-4); gap: var(--nx-space-3); }
  .nux-checkin-streak-icon { width: 48px; height: 48px; font-size: 26px; }
  .nux-checkin-streak-num { font-size: var(--nx-text-2xl); }
  .nux-checkin-task { padding: var(--nx-space-4); }
  .nux-checkin-picker { gap: var(--nx-space-3); }
  .nux-checkin-step { width: 46px; height: 46px; }
  .nux-checkin-calendar { padding: var(--nx-space-4); }
  .nux-checkin-cell { height: 40px; }
  .nux-checkin-cal-head .legend { display: none; }
  .nux-checkin-sub { margin-left: 0; }
}

/* ===== nexus-components-calendar.css ===== */
.nux-calendar {
  --cal-accent: var(--app-accent, var(--nx-primary));
  --cal-l1: color-mix(in srgb, var(--cal-accent) 14%, var(--nx-bg-muted));
  --cal-l2: color-mix(in srgb, var(--cal-accent) 36%, var(--nx-bg-muted));
  --cal-l3: color-mix(in srgb, var(--cal-accent) 62%, var(--nx-bg-muted));
  --cal-l4: color-mix(in srgb, var(--cal-accent) 86%, var(--nx-bg-muted));
  --cal-l5: var(--cal-accent);
  font-variant-numeric: tabular-nums;
  -webkit-tap-highlight-color: transparent;
}

.nux-cal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--nx-space-3);
}

.nux-cal-title {
  display: flex;
  align-items: center;
  gap: var(--nx-space-2);
}

.nux-cal-month {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--nx-text-heading);
  min-width: 108px;
  text-align: center;
}

.nux-cal-nav {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: var(--nx-radius-full);
  background: var(--nx-bg-muted);
  color: var(--nx-text-body);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s, transform 0.1s;
}

.nux-cal-nav:hover { background: var(--nx-bg-hover); }
.nux-cal-nav:active { transform: scale(0.92); }

.nux-cal-today-btn {
  height: 32px;
  padding: 0 14px;
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-full);
  background: var(--nx-bg-surface);
  color: var(--cal-accent);
  font-size: var(--nx-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.nux-cal-today-btn:hover { border-color: var(--cal-accent); background: color-mix(in srgb, var(--cal-accent) 6%, var(--nx-bg-surface)); }

.nux-cal-weeks {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 4px;
}

.nux-cal-weeks span {
  text-align: center;
  font-size: var(--nx-text-xs);
  color: var(--nx-text-muted);
  font-weight: 600;
}

.nux-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.nux-cal-cell {
  position: relative;
  aspect-ratio: 1;
  max-height: 46px;
  border: none;
  border-radius: var(--nx-radius-md);
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  cursor: pointer;
  transition: transform 0.12s, box-shadow 0.15s;
}

.nux-cal-cell:disabled { cursor: default; }
.nux-cal-cell:not(:disabled):hover { transform: scale(1.06); z-index: 1; }
.nux-cal-cell:not(:disabled):active { transform: scale(0.94); }

.nux-cal-num {
  font-size: var(--nx-text-sm);
  font-weight: 600;
  color: var(--nx-text-body);
  line-height: 1;
}

.nux-cal-cell.empty .nux-cal-num { visibility: hidden; }

.nux-cal-cell.level-0 { background: var(--nx-bg-muted); }
.nux-cal-cell.level-0 .nux-cal-num { color: var(--nx-text-secondary); }
.nux-cal-cell.level-1 { background: var(--cal-l1); }
.nux-cal-cell.level-2 { background: var(--cal-l2); }
.nux-cal-cell.level-3 { background: var(--cal-l3); }
.nux-cal-cell.level-4 { background: var(--cal-l4); }
.nux-cal-cell.level-2 .nux-cal-num,
.nux-cal-cell.level-3 .nux-cal-num,
.nux-cal-cell.level-4 .nux-cal-num { color: var(--nx-text-heading); }

.nux-cal-cell.today {
  box-shadow: inset 0 0 0 2px var(--cal-accent);
}

.nux-cal-cell.selected {
  background: var(--cal-l5);
  box-shadow: 0 4px 12px color-mix(in srgb, var(--cal-accent) 35%, transparent);
}

.nux-cal-cell.selected .nux-cal-num { color: var(--nx-text-on-accent, #fff); }

.nux-cal-count {
  position: absolute;
  top: 3px;
  right: 3px;
  min-width: 14px;
  height: 14px;
  padding: 0 3px;
  border-radius: var(--nx-radius-full);
  background: var(--cal-accent);
  color: var(--nx-text-on-accent, #fff);
  font-size: 9px;
  font-weight: 700;
  line-height: 14px;
  text-align: center;
}

.nux-cal-cell.selected .nux-cal-count { background: var(--nx-bg-elevated, #fff); color: var(--cal-accent); }

.nux-cal-cell.seq.done { background: rgba(var(--nx-success-rgb), 0.16); }
.nux-cal-cell.seq.done .nux-cal-mark { color: var(--nx-success-text, var(--nx-success)); }
.nux-cal-cell.seq.frozen { background: rgba(var(--nx-info-rgb), 0.14); }
.nux-cal-cell.seq.frozen .nux-cal-mark { color: var(--nx-info-text, var(--nx-info)); }
.nux-cal-cell.seq.mended { background: rgba(var(--nx-warning-rgb), 0.18); }
.nux-cal-cell.seq.mended .nux-cal-mark { color: var(--nx-warning-text, var(--nx-warning)); }
.nux-cal-cell.seq.missed { background: var(--nx-bg-muted); }
.nux-cal-cell.seq.missed .nux-cal-mark { color: var(--nx-text-muted); }
.nux-cal-cell.seq.future .nux-cal-num { color: var(--nx-text-muted); }

.nux-cal-mark {
  font-size: 11px;
  line-height: 1;
  color: var(--nx-text-secondary);
}

.nux-cal-heat-scroll {
  overflow-x: auto;
  padding-bottom: 4px;
}

.nux-cal-heat { position: relative; width: 100%; }

.nux-cal-heat-months {
  position: relative;
  height: 18px;
  margin-left: 26px;
}

.nux-cal-heat-month {
  position: absolute;
  top: 0;
  font-size: 11px;
  color: var(--nx-text-muted);
  font-weight: 600;
  white-space: nowrap;
}

.nux-cal-heat-body {
  display: flex;
  gap: 4px;
}

.nux-cal-heat-wds {
  display: grid;
  grid-template-rows: repeat(7, var(--nux-heat-cell, 14px));
  gap: 2px;
  width: 22px;
}

.nux-cal-heat-wds span {
  font-size: 10px;
  color: var(--nx-text-muted);
  line-height: var(--nux-heat-cell, 14px);
}

.nux-cal-heat-grid {
  display: grid;
  grid-template-rows: repeat(7, var(--nux-heat-cell, 14px));
  grid-auto-flow: column;
  grid-auto-columns: var(--nux-heat-cell, 14px);
  gap: 2px;
}

.nux-cal-heat-cell {
  width: var(--nux-heat-cell, 14px);
  height: var(--nux-heat-cell, 14px);
  padding: 0;
  border: none;
  border-radius: max(3px, calc(var(--nux-heat-cell, 14px) / 5));
  cursor: pointer;
  transition: transform 0.12s;
}

.nux-cal-heat-cell:not(:disabled):hover { transform: scale(1.25); }
.nux-cal-heat-cell:disabled { cursor: default; }

.nux-cal-heat-cell.empty { background: transparent; }
.nux-cal-heat-cell.level-0 { background: var(--nx-bg-muted); }
.nux-cal-heat-cell.level-1 { background: var(--cal-l1); }
.nux-cal-heat-cell.level-2 { background: var(--cal-l2); }
.nux-cal-heat-cell.level-3 { background: var(--cal-l3); }
.nux-cal-heat-cell.level-4 { background: var(--cal-l5); }

.nux-cal-heat-empty {
  padding: var(--nx-space-6);
  text-align: center;
  color: var(--nx-text-muted);
  font-size: var(--nx-text-sm);
}

.nux-cal-legend {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: var(--nx-space-3);
  font-size: 11px;
  color: var(--nx-text-muted);
}

.nux-cal-legend .lg { display: inline-flex; align-items: center; gap: 4px; }

.nux-cal-legend .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}

.nux-cal-legend .dot.done { background: var(--nx-success); }
.nux-cal-legend .dot.frozen { background: var(--nx-info); }
.nux-cal-legend .dot.mended { background: var(--nx-warning); }
.nux-cal-legend .dot.missed { background: var(--nx-text-muted); }

.nux-cal-legend .sq {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  display: inline-block;
}

.nux-cal-legend .sq.level-0 { background: var(--nx-bg-muted); }
.nux-cal-legend .sq.level-1 { background: var(--cal-l1); }
.nux-cal-legend .sq.level-2 { background: var(--cal-l2); }
.nux-cal-legend .sq.level-3 { background: var(--cal-l3); }
.nux-cal-legend .sq.level-4 { background: var(--cal-l5); }

.nux-cal-skeleton { display: grid; gap: var(--nx-space-3); }

.nux-cal-skeleton-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.nux-cal-sk-cell { aspect-ratio: 1; border-radius: var(--nx-radius-md); }

@media (prefers-reduced-motion: reduce) {
  .nux-cal-cell,
  .nux-cal-heat-cell,
  .nux-cal-nav { transition: none; }
}

@media (max-width: 768px) {
  .nux-cal-cell { max-height: 42px; border-radius: var(--nx-radius-sm); }
  .nux-cal-month { font-size: 1rem; min-width: 96px; }
  .nux-cal-count { min-width: 13px; height: 13px; font-size: 8px; line-height: 13px; top: 2px; right: 2px; }
  .nux-cal-heat-scroll { -webkit-overflow-scrolling: touch; }
  .nux-cal-legend { justify-content: center; }
}

@media (hover: none) and (pointer: coarse) {
  .nux-cal-nav { width: 44px; height: 44px; }
  .nux-cal-cell { min-height: 44px; }
}

/* ===== nexus-components-data.css ===== */
.nx-table {
  width: 100%;
  border-collapse: collapse;
}
.nx-table th {
  text-align: left;
  padding: var(--nx-space-3) var(--nx-space-4);
  font-size: var(--nx-text-xs);
  font-weight: 600;
  color: var(--nx-text-secondary);
  border-bottom: 1px solid var(--nx-border);
}
.nx-table td {
  padding: var(--nx-space-3) var(--nx-space-4);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-body);
  font-variant-numeric: tabular-nums;
  border-bottom: 1px solid var(--nx-border);
}
.nx-table tr:hover td { background: var(--nx-bg-hover); }

/* .nux-badge 是类工具（非组件）：JS 组件 <nux-badge> v2.50.0 下架（零元素消费），
   但 chroma 等应用以 class="nux-badge chip" 形式经 nexus-all.css 消费这些类。 */
.nux-badge { position: relative; display: inline-flex; }
.nux-badge-count {
  position: absolute;
  top: -6px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 11px;
  font-weight: 600;
  line-height: 18px;
  text-align: center;
  color: var(--nx-text-on-accent, #fff);
  background: var(--nx-danger);
  border-radius: 9px;
  box-sizing: border-box;
}
.nux-badge-dot {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 8px;
  height: 8px;
  background: var(--nx-danger);
  border-radius: 50%;
}
.nux-badge-default .nux-badge-count,
.nux-badge-default .nux-badge-dot { background: var(--nx-text-secondary); }
.nux-badge-success .nux-badge-count,
.nux-badge-success .nux-badge-dot { background: var(--nx-success); }
.nux-badge-warning .nux-badge-count,
.nux-badge-warning .nux-badge-dot { background: var(--nx-warning); }
.nux-badge-info .nux-badge-count,
.nux-badge-info .nux-badge-dot { background: var(--app-accent, var(--nx-primary)); }

.nux-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 15%, transparent);
  color: var(--app-accent, var(--nx-primary));
  font-weight: 600;
  overflow: hidden;
  flex-shrink: 0;
}
.nux-avatar-sm { width: 28px; height: 28px; font-size: 12px; }
.nux-avatar-md { width: 36px; height: 36px; font-size: 14px; }
.nux-avatar-lg { width: 48px; height: 48px; font-size: 18px; }
.nux-avatar-xl { width: 64px; height: 64px; font-size: 24px; }
.nux-avatar-square { border-radius: var(--nx-radius-md); }
.nux-avatar-img { width: 100%; height: 100%; object-fit: cover; }
.nux-avatar-icon { width: 60%; height: 60%; }
.nux-avatar-initial { user-select: none; }

.nux-stat-card {
  display: flex;
  align-items: center;
  gap: var(--nx-space-4);
  position: relative;
  overflow: hidden;
}
.nux-stat-icon { font-size: 28px; line-height: 1; flex-shrink: 0; }
.nux-stat-body { flex: 1; min-width: 0; }
.nux-stat-value {
  font-size: var(--nx-text-2xl);
  font-weight: 700;
  color: var(--nx-text-heading);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.nux-stat-label { font-size: var(--nx-text-sm); color: var(--nx-text-secondary); margin-top: 2px; }
.nux-stat-sub { font-size: var(--nx-text-xs); color: var(--nx-text-muted); margin-top: 2px; }
.nux-stat-trend { font-size: var(--nx-text-sm); font-weight: 600; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.nux-stat-trend-up { color: var(--nx-success); }
.nux-stat-trend-down { color: var(--nx-danger); }

.nux-tab-group {
  display: flex;
  gap: 2px;
  border-bottom: 2px solid var(--nx-border);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.nux-tab-item {
  padding: var(--nx-space-2) var(--nx-space-4);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
  background: none;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color var(--nx-transition-fast), border-color var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-tab-item:hover { color: var(--nx-text-heading); }
.nux-tab-item.active {
  color: var(--app-accent, var(--nx-primary));
  border-bottom-color: var(--app-accent, var(--nx-primary));
  font-weight: 500;
}
.nux-tab-icon { margin-right: var(--nx-space-1); }@media (max-width: 768px){
  .nux-stat-card { padding: var(--nx-space-3); }
  .nux-stat-value { font-size: var(--nx-text-xl); }
  .nux-tab-item { padding: var(--nx-space-2) var(--nx-space-3); font-size: var(--nx-text-xs); }}

.nux-table-wrap { position: relative; overflow: auto; border: 1px solid var(--nx-border); border-radius: var(--nx-radius-md); background: var(--nx-bg-surface); }
.nux-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--nx-text-sm); color: var(--nx-text-body); }
.nux-table-th { position: sticky; top: 0; z-index: 2; text-align: left; padding: var(--nx-space-2) var(--nx-space-3); font-weight: 600; font-size: var(--nx-text-xs); color: var(--nx-text-secondary); background: var(--nx-bg-muted); border-bottom: 1px solid var(--nx-border); white-space: nowrap; }
.nux-table-td { padding: var(--nx-space-2) var(--nx-space-3); border-bottom: 1px solid var(--nx-border); vertical-align: top; }
.nux-table-tbody .nux-table-tr:last-child .nux-table-td { border-bottom: none; }
.nux-table--stripe .nux-table-tbody .nux-table-tr:nth-child(even) .nux-table-td { background: var(--nx-bg-subtle); }
.nux-table--clickable .nux-table-tbody .nux-table-tr { cursor: pointer; transition: background var(--nx-transition-fast); }
.nux-table--clickable .nux-table-tbody .nux-table-tr:hover .nux-table-td { background: var(--nx-bg-hover); }
.nux-table-col--fixed-right { position: sticky; right: 0; z-index: 1; background: var(--nx-bg-surface); box-shadow: -1px 0 0 var(--nx-border); }
.nux-table-th.nux-table-col--fixed-right { z-index: 3; background: var(--nx-bg-muted); }
.nux-table--stripe .nux-table-tbody .nux-table-tr:nth-child(even) .nux-table-col--fixed-right { background: var(--nx-bg-subtle); }
.nux-table--clickable .nux-table-tbody .nux-table-tr:hover .nux-table-col--fixed-right { background: var(--nx-bg-hover); }
.nux-table-state { padding: var(--nx-space-6) var(--nx-space-3); text-align: center; color: var(--nx-text-muted); font-size: var(--nx-text-sm); }
.nux-table-state--loading { color: var(--nx-text-secondary); }
.nux-table--loading .nux-table-tbody { opacity: 0.55; }
@media (max-width: 768px) {
  .nux-table-th, .nux-table-td { padding: var(--nx-space-1) var(--nx-space-2); }
}

/* ===== nexus-components-insight.css ===== */
.nx-confidence {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  font-size: var(--nx-text-xs);
  line-height: 1.5;
  vertical-align: baseline;
}

.nx-confidence-dot {
  width: 8px;
  height: 8px;
  border-radius: var(--nx-radius-full, 9999px);
  flex-shrink: 0;
  background: var(--nx-text-muted);
}

.nx-confidence-word {
  font-weight: 700;
  white-space: nowrap;
}

.nx-confidence-pct {
  font-family: var(--nx-font-mono);
  font-size: 11px;
  opacity: 0.85;
}

.nx-confidence-note {
  color: var(--nx-text-secondary);
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nx-confidence--badge {
  padding: 2px 9px;
  border-radius: 9999px;
  font-weight: 700;
}

.nx-confidence--danger { background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.1); color: var(--nx-danger-text, var(--nx-danger)); }
.nx-confidence--danger .nx-confidence-dot { background: var(--nx-danger); }
.nx-confidence--warning { background: rgba(var(--nx-warning-rgb, 245, 158, 11), 0.12); color: var(--nx-warning-text, var(--nx-warning)); }
.nx-confidence--warning .nx-confidence-dot { background: var(--nx-warning); }
.nx-confidence--accent { background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.1); color: var(--nx-primary); }
.nx-confidence--accent .nx-confidence-dot { background: var(--nx-primary); }
.nx-confidence--success { background: rgba(var(--nx-success-rgb, 16, 185, 129), 0.1); color: var(--nx-success-text, var(--nx-success)); }
.nx-confidence--success .nx-confidence-dot { background: var(--nx-success); }
.nx-confidence--muted { background: var(--nx-bg-muted); color: var(--nx-text-secondary); }

.nx-confidence--warning .nx-confidence-note,
.nx-confidence--success .nx-confidence-note,
.nx-confidence--accent .nx-confidence-note {
  color: var(--nx-text-secondary);
}

.nx-confidence--band {
  width: 100%;
  padding: 8px 12px;
  border-radius: var(--nx-radius-sm, 6px);
  border-left: 3px solid var(--nx-text-muted);
  background: var(--nx-bg-muted);
  color: var(--nx-text-heading);
  font-weight: 400;
}

.nx-confidence--band .nx-confidence-word { color: inherit; }
.nx-confidence--band.nx-confidence--danger { border-left-color: var(--nx-danger); background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.08); }
.nx-confidence--band.nx-confidence--warning { border-left-color: var(--nx-warning); background: rgba(var(--nx-warning-rgb, 245, 158, 11), 0.08); }
.nx-confidence--band.nx-confidence--accent { border-left-color: var(--nx-primary); background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.06); }
.nx-confidence--band.nx-confidence--success { border-left-color: var(--nx-success); background: rgba(var(--nx-success-rgb, 16, 185, 129), 0.08); }
.nx-confidence--band .nx-confidence-note { flex: 1; min-width: 0; }

.nx-citations {
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md, 10px);
  background: var(--nx-bg-surface);
  padding: 12px 14px;
  max-width: 100%;
}

.nx-citations-head {
  font-size: var(--nx-text-xs);
  font-weight: 600;
  color: var(--nx-text-secondary);
  margin-bottom: 8px;
}

.nx-citations-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 2px;
}

.nx-citation {
  display: flex;
  gap: 10px;
  padding: 6px 8px;
  border-radius: var(--nx-radius-sm, 6px);
  align-items: flex-start;
}

.nx-citation:hover { background: var(--nx-bg-hover); }

.nx-citation-n {
  width: 20px;
  height: 20px;
  border-radius: 9999px;
  background: var(--nx-bg-muted);
  color: var(--nx-text-secondary);
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 1px;
}

.nx-citation-body {
  display: grid;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.nx-citation-title {
  font-size: var(--nx-text-sm);
  color: var(--nx-text-heading);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

a.nx-citation-title { color: var(--nx-primary); font-weight: 600; }
a.nx-citation-title:hover { text-decoration: underline; }
a.nx-citation-title:focus-visible { outline: 2px solid var(--nx-primary); outline-offset: 2px; border-radius: 2px; }

.nx-citation-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  color: var(--nx-text-muted);
}

.nx-citation-host {
  font-family: var(--nx-font-mono);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 240px;
}

.nx-citation-verdict {
  padding: 1px 7px;
  border-radius: 9999px;
  font-weight: 600;
}

.nx-citation-verdict--success { background: rgba(var(--nx-success-rgb, 16, 185, 129), 0.1); color: var(--nx-success-text, var(--nx-success)); }
.nx-citation-verdict--warning { background: rgba(var(--nx-warning-rgb, 245, 158, 11), 0.12); color: var(--nx-warning-text, var(--nx-warning)); }
.nx-citation-verdict--danger { background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.1); color: var(--nx-danger-text, var(--nx-danger)); }

.nx-citation-note {
  font-size: var(--nx-text-xs);
  color: var(--nx-text-secondary);
  overflow-wrap: anywhere;
}

.nx-citations-more {
  margin-top: 6px;
  padding: 4px 8px;
  border: none;
  background: none;
  color: var(--nx-primary);
  font-size: var(--nx-text-xs);
  font-weight: 600;
  cursor: pointer;
  border-radius: var(--nx-radius-sm, 6px);
}

.nx-citations-more:hover { background: var(--nx-bg-hover); }
.nx-citations-more:focus-visible { outline: 2px solid var(--nx-primary); outline-offset: 2px; }

.nux-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 0 10px;
  height: 28px;
  border-radius: var(--nx-radius-sm, 6px);
  font-size: var(--nx-text-xs);
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
  transition: color var(--nx-duration-fast, 150ms) var(--nx-ease-out), background var(--nx-duration-fast, 150ms) var(--nx-ease-out), border-color var(--nx-duration-fast, 150ms) var(--nx-ease-out);
  color: var(--nx-text-secondary);
  background: transparent;
  border: 1px solid transparent;
  vertical-align: middle;
}

.nux-copy-btn svg { width: 13px; height: 13px; flex-shrink: 0; }

.nux-copy-btn--ghost {
  border-color: var(--nx-border);
  background: var(--nx-bg-surface);
}

.nux-copy-btn--ghost:hover { color: var(--nx-primary); border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.4); }
.nux-copy-btn--text:hover { color: var(--nx-primary); }
.nux-copy-btn:focus-visible { outline: 2px solid var(--nx-primary); outline-offset: 2px; }

.nux-copy-btn.is-copied { color: var(--nx-success); }

@media (pointer: coarse) {
  .nux-copy-btn { height: 44px; padding: 0 12px; }
}

.nx-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}

.nx-timeline::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--nx-border);
  border-radius: 1px;
}

.nx-timeline-item {
  position: relative;
  padding: 0 0 16px 22px;
}

.nx-timeline-item:last-child { padding-bottom: 0; }

.nx-timeline-dot {
  position: absolute;
  left: 0;
  top: 5px;
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  background: var(--nx-text-muted);
  box-shadow: 0 0 0 3px var(--nx-bg-surface);
}

.nx-timeline-item--success .nx-timeline-dot { background: var(--nx-success); }
.nx-timeline-item--warning .nx-timeline-dot { background: var(--nx-warning); }
.nx-timeline-item--danger .nx-timeline-dot { background: var(--nx-danger); }
.nx-timeline-item--accent .nx-timeline-dot { background: var(--nx-primary); }

.nx-timeline-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 2px;
  flex-wrap: wrap;
}

.nx-timeline-time {
  font-family: var(--nx-font-mono);
  font-size: 11px;
  color: var(--nx-text-muted);
}

.nx-timeline-tag {
  font-size: 11px;
  padding: 0 7px;
  border-radius: 9999px;
  background: var(--nx-bg-muted);
  color: var(--nx-text-secondary);
  font-weight: 600;
}

.nx-timeline-title {
  font-size: var(--nx-text-sm);
  font-weight: 600;
  color: var(--nx-text-heading);
  line-height: 1.5;
}

.nx-timeline-desc {
  font-size: 13px;
  color: var(--nx-text-secondary);
  line-height: 1.6;
  overflow-wrap: anywhere;
}

.nx-descriptions { max-width: 100%; }

.nx-descriptions-title {
  font-size: var(--nx-text-sm);
  font-weight: 600;
  color: var(--nx-text-heading);
  margin-bottom: 8px;
}

.nx-descriptions-grid {
  display: grid;
  grid-template-columns: repeat(var(--nxd-cols, 2), minmax(0, 1fr));
  gap: 10px 20px;
  margin: 0;
}

.nx-descriptions-item { min-width: 0; }

.nx-descriptions-label {
  font-size: var(--nx-text-xs);
  color: var(--nx-text-secondary);
  margin: 0 0 2px;
}

.nx-descriptions-value {
  font-size: var(--nx-text-sm);
  color: var(--nx-text-heading);
  margin: 0;
  line-height: 1.6;
  overflow-wrap: anywhere;
}

@media (max-width: 480px) {
  .nx-descriptions-grid { grid-template-columns: 1fr; }
  .nx-descriptions-item { grid-column: auto !important; }
}

@media (prefers-reduced-motion: reduce) {
  .nux-copy-btn { transition: none; }
}

/* ---- nux-tool-call：AI 工具调用卡（running/completed/error 三态，业界 Tool 卡共识） ---- */
.nx-tool-call {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.nx-tool-call-item {
  border: 1px solid var(--nx-border, rgba(148, 163, 184, 0.25));
  border-radius: var(--nx-radius-md, 8px);
  background: var(--nx-bg-subtle, rgba(148, 163, 184, 0.06));
  overflow: hidden;
}

.nx-tool-call-row {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  padding: 6px 9px;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: var(--nx-text-xs);
  color: var(--nx-text-secondary, inherit);
  text-align: left;
  cursor: default;
}

.nx-tool-call-item.is-open .nx-tool-call-row,
.nx-tool-call-row:not(:disabled) {
  cursor: pointer;
}

.nx-tool-call-row:not(:disabled):hover {
  background: var(--nx-bg-hover, rgba(148, 163, 184, 0.1));
}

.nx-tool-call-row:focus-visible {
  outline: 2px solid var(--nx-accent, #6366f1);
  outline-offset: -2px;
}

.nx-tool-call-mark { flex: none; font-size: 11px; line-height: 1; }
.nx-tool-call-mark--done { color: var(--nx-success, #22c55e); }
.nx-tool-call-mark--error { color: var(--nx-danger, #ef4444); }

.nx-tool-call-spinner {
  flex: none;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--nx-accent, #6366f1) 30%, transparent);
  border-top-color: var(--nx-accent, #6366f1);
  animation: nx-tool-call-spin 0.8s linear infinite;
}

@keyframes nx-tool-call-spin { to { transform: rotate(360deg); } }

.nx-tool-call-name {
  flex: none;
  font-weight: 600;
  color: var(--nx-text-heading, inherit);
  max-width: 45%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nx-tool-call-summary {
  min-width: 0;
  flex: 1;
  color: var(--nx-text-tertiary, inherit);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nx-tool-call-summary.is-error { color: var(--nx-danger, #ef4444); }

.nx-tool-call-chevron { flex: none; color: var(--nx-text-tertiary, inherit); transition: transform var(--nx-transition-fast, 0.15s); }
.nx-tool-call-item.is-open .nx-tool-call-chevron { transform: rotate(180deg); }

.nx-tool-call-detail {
  padding: 2px 12px 8px 27px;
  border-top: 1px dashed var(--nx-border, rgba(148, 163, 184, 0.25));
}

.nx-tool-call-args { margin: 6px 0 0; }
.nx-tool-call-arg { display: flex; gap: 8px; padding: 1px 0; min-width: 0; }
.nx-tool-call-arg dt { flex: none; color: var(--nx-text-tertiary, inherit); min-width: 56px; }
.nx-tool-call-arg dd { margin: 0; min-width: 0; overflow-wrap: anywhere; color: var(--nx-text-secondary, inherit); font-family: var(--nx-font-mono, ui-monospace, monospace); font-size: 11px; }

.nx-tool-call-result {
  margin: 6px 0 0;
  padding: 7px 9px;
  background: var(--nx-bg-code, rgba(15, 23, 42, 0.85));
  border-radius: var(--nx-radius-sm, 6px);
  overflow: auto;
  max-height: 220px;
  font-size: 11px;
  line-height: 1.5;
}

.nx-tool-call-result code { font-family: var(--nx-font-mono, ui-monospace, monospace); white-space: pre-wrap; overflow-wrap: anywhere; }

@media (prefers-reduced-motion: reduce) {
  .nx-tool-call-spinner { animation-duration: 2.4s; }
  .nx-tool-call-chevron { transition: none; }
}

/* ===== nexus-components-form.css ===== */
.nx-input {
  width: 100%;
  padding: var(--nx-space-2) var(--nx-space-4);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-heading);
  background: var(--nx-bg-base);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  outline: none;
  transition: border-color var(--nx-transition-base), box-shadow var(--nx-transition-base);
}
.nx-input:focus {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), 0.15);
}
.nx-input::placeholder { color: var(--nx-text-muted); }

.nx-label {
  display: block;
  font-size: var(--nx-text-sm);
  font-weight: 500;
  color: var(--nx-text-body);
  margin-bottom: var(--nx-space-2);
}

.nx-select {
  width: 100%;
  padding: var(--nx-space-2) var(--nx-space-4);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-heading);
  background: var(--nx-bg-base);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  outline: none;
  cursor: pointer;
  transition: border-color var(--nx-transition-base);
}
.nx-select:focus {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.15);
}

.nux-form-group {
  margin-bottom: var(--nx-space-4);
}
.nux-form-label {
  display: block;
  font-size: var(--nx-text-sm);
  font-weight: 500;
  color: var(--nx-text-heading);
  margin-bottom: var(--nx-space-1);
}
.nux-form-required { color: var(--nx-danger); margin-left: 2px; }
.nux-form-error-text { font-size: var(--nx-text-xs); color: var(--nx-danger); margin-top: var(--nx-space-1); }
.nux-form-hint { font-size: var(--nx-text-xs); color: var(--nx-text-muted); margin-top: var(--nx-space-1); }
.nux-form-horizontal {
  display: flex;
  align-items: flex-start;
  gap: var(--nx-space-3);
}
.nux-form-horizontal .nux-form-label {
  width: 120px;
  flex-shrink: 0;
  text-align: right;
  padding-top: var(--nx-space-2);
  margin-bottom: 0;
}
.nux-form-horizontal .nux-form-content { flex: 1; min-width: 0; }

.nux-input {
  width: 100%;
  padding: var(--nx-space-2) var(--nx-space-3);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-heading);
  /* 与 nexus-components-controls.css 同名规则对齐：聚合包内后者胜出，此处保持同值防漂移 */
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  outline: none;
  transition: border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast);
  box-sizing: border-box;
}
.nux-input:focus {
  border-color: var(--app-accent, var(--nx-primary));
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.15);
}
.nux-input::placeholder { color: var(--nx-text-muted); }

.nux-login-page {
  display: flex;
  width: 100%;
  flex: 1;
  min-height: 100vh;
  min-height: 100dvh;
}
.nux-login-brand {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--app-accent, var(--nx-primary)), color-mix(in srgb, var(--app-accent, var(--nx-primary)) 70%, #1e293b));
  padding: var(--nx-space-8);
  position: relative;
  overflow: hidden;
}
.nux-login-brand::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 70%, rgba(255,255,255,0.08) 0%, transparent 60%);
}
.nux-login-brand-content {
  position: relative;
  text-align: center;
  color: var(--nx-text-on-accent, #fff);
}
.nux-login-icon { font-size: 64px; display: block; margin-bottom: var(--nx-space-4); }
.nux-login-logo { width: 88px; height: 88px; object-fit: contain; display: block; margin: 0 auto var(--nx-space-4); }
.nux-login-app-name { font-size: 32px; font-weight: 700; margin: 0 0 var(--nx-space-2); }
.nux-login-slogan { font-size: var(--nx-text-lg); opacity: 0.8; margin: 0 0 var(--nx-space-4); }
.nux-login-desc { font-size: var(--nx-text-base); opacity: 0.7; margin: 0 0 var(--nx-space-6); line-height: 1.6; max-width: 360px; }
.nux-login-features { display: flex; flex-direction: column; gap: var(--nx-space-4); text-align: left; max-width: 380px; margin: 0 auto; }
.nux-login-feature { display: flex; align-items: flex-start; gap: var(--nx-space-3); }
.nux-login-feature-icon { font-size: 24px; line-height: 1; flex-shrink: 0; }
.nux-login-feature-text { display: flex; flex-direction: column; gap: 2px; }
.nux-login-feature-text strong { font-size: var(--nx-text-base); font-weight: 600; }
.nux-login-feature-text span { font-size: var(--nx-text-sm); opacity: 0.7; line-height: 1.4; }
.nux-login-stats {
  display: flex;
  gap: var(--nx-space-6);
  margin-top: var(--nx-space-6);
  padding-top: var(--nx-space-5);
  border-top: 1px solid rgba(255,255,255,0.18);
  justify-content: center;
}
.nux-login-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.nux-login-stat strong { font-size: 26px; font-weight: 700; line-height: 1; }
.nux-login-stat span { font-size: var(--nx-text-xs); opacity: 0.7; }
.nux-login-form-side {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--nx-space-8);
  background: var(--nx-bg-surface);
}
.nux-login-card { width: 100%; max-width: 400px; }
.nux-login-tabs {
  display: flex;
  gap: var(--nx-space-4);
  margin-bottom: var(--nx-space-6);
  border-bottom: 2px solid var(--nx-border);
}
.nux-login-tab {
  padding: var(--nx-space-2) 0;
  font-size: var(--nx-text-lg);
  font-weight: 500;
  color: var(--nx-text-secondary);
  background: none;
  border: none;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all var(--nx-transition-fast);
}
.nux-login-tab:hover { color: var(--nx-text-heading); }
.nux-login-tab.active {
  color: var(--app-accent, var(--nx-primary));
  border-bottom-color: var(--app-accent, var(--nx-primary));
}
.nux-login-error {
  padding: var(--nx-space-2) var(--nx-space-3);
  background: color-mix(in srgb, var(--nx-danger) 10%, transparent);
  color: var(--nx-danger-text, var(--nx-danger));
  border-radius: var(--nx-radius-md);
  font-size: var(--nx-text-sm);
  margin-bottom: var(--nx-space-4);
}
.nux-live-hint {
  margin-top: var(--nx-space-1);
  font-size: var(--nx-text-sm);
  color: var(--nx-danger, #ef4444);
}
.nux-login-submit {
  width: 100%;
  padding: var(--nx-space-3);
  font-size: var(--nx-text-base);
  font-weight: 600;
  color: var(--nx-text-on-accent, #fff);
  background: var(--app-accent, var(--nx-primary));
  border: none;
  border-radius: var(--nx-radius-md);
  cursor: pointer;
  transition: opacity var(--nx-transition-fast);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--nx-space-2);
  margin-top: var(--nx-space-4);
}
.nux-login-submit:hover { opacity: 0.9; }
.nux-login-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.nux-terms-hint {
  margin-top: var(--nx-space-2);
  font-size: var(--nx-text-sm);
  color: var(--nx-danger, #ef4444);
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--nx-space-1);
  font-weight: 500;
}
.nux-terms-warn {
  border-radius: var(--nx-radius-sm);
  padding: var(--nx-space-2) var(--nx-space-2);
  outline: 1px dashed color-mix(in srgb, var(--nx-danger, #ef4444) 55%, transparent);
  background: color-mix(in srgb, var(--nx-danger, #ef4444) 6%, transparent);
}
.nux-login-footer {
  margin-top: var(--nx-space-4);
  text-align: center;
  font-size: var(--nx-text-sm);
  color: var(--nx-text-muted);
}
.nux-login-subtabs {
  display: flex;
  gap: var(--nx-space-2);
  margin-bottom: var(--nx-space-4);
}
.nux-login-subtab {
  flex: 1;
  padding: var(--nx-space-2);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-muted);
  background: var(--nx-bg-hover);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  cursor: pointer;
  transition: all var(--nx-transition-fast);
}
.nux-login-subtab.active {
  color: var(--nx-text-on-accent, #fff);
  background: var(--app-accent, var(--nx-primary));
  border-color: var(--app-accent, var(--nx-primary));
}
.nux-password-wrap { position: relative; }
.nux-password-wrap .nux-input { padding-right: 44px; }
.nux-password-toggle {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: none;
  color: var(--nx-text-muted);
  cursor: pointer;
  border-radius: var(--nx-radius-sm);
  transition: color var(--nx-transition-fast);
}
.nux-password-toggle:hover { color: var(--nx-text-heading); }
.nux-sms-row { display: flex; gap: var(--nx-space-2); }
.nux-sms-row .nux-input { flex: 1; }
.nux-captcha-row { display: flex; gap: var(--nx-space-2); }
.nux-captcha-row .nux-input { flex: 1; }
.nux-captcha-img {
  flex-shrink: 0;
  width: 130px;
  height: 44px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  background: var(--nx-bg-surface);
  cursor: pointer;
  transition: border-color var(--nx-transition-fast);
}
.nux-captcha-img:hover { border-color: var(--app-accent, var(--nx-primary)); }
.nux-captcha-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nux-captcha-loading { display: flex; align-items: center; justify-content: center; height: 100%; font-size: var(--nx-text-sm); color: var(--nx-text-muted); }
.nux-sms-btn {
  flex-shrink: 0;
  padding: 0 var(--nx-space-3);
  font-size: var(--nx-text-sm);
  font-weight: 500;
  color: var(--app-accent, var(--nx-primary));
  background: var(--nx-bg-hover);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  cursor: pointer;
  white-space: nowrap;
  transition: opacity var(--nx-transition-fast);
}
.nux-sms-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.nux-login-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: var(--nx-space-2);
}
.nux-checkbox {
  display: inline-flex;
  align-items: center;
  gap: var(--nx-space-2);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
  cursor: pointer;
  user-select: none;
}
.nux-checkbox input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1.5px solid var(--nx-border-hover);
  border-radius: var(--nx-radius-sm, 6px);
  background: var(--nx-bg-surface);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-checkbox input[type="checkbox"]::before {
  content: '';
  width: 10px;
  height: 10px;
  background: var(--nx-text-on-accent, #fff);
  clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
  transform: scale(0);
  transition: transform 120ms ease;
}
.nux-checkbox input[type="checkbox"]:checked {
  background: var(--app-accent, var(--nx-primary));
  border-color: var(--app-accent, var(--nx-primary));
}
.nux-checkbox input[type="checkbox"]:checked::before { transform: scale(1); }
.nux-link {
  background: none;
  border: none;
  padding: 0;
  font-size: var(--nx-text-sm);
  color: var(--app-accent, var(--nx-primary));
  cursor: pointer;
  transition: opacity var(--nx-transition-fast);
}
.nux-link:hover { opacity: 0.8; }
.nux-terms { line-height: 1.5; color: var(--nx-text-body); }
.nux-terms a { color: var(--app-accent, var(--nx-primary)); text-decoration: underline; font-weight: 500; }
.nux-age-slider { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: var(--nx-radius-full, 9999px); background: var(--nx-border-strong, #d1d5db); outline: none; padding: 0; }
.nux-age-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: var(--app-accent, var(--nx-primary)); border: 2px solid var(--nx-bg-surface, #fff); box-shadow: 0 1px 4px rgba(0,0,0,0.25); cursor: pointer; }
.nux-age-slider::-moz-range-thumb { width: 18px; height: 18px; border-radius: 50%; background: var(--app-accent, var(--nx-primary)); border: 2px solid var(--nx-bg-surface, #fff); cursor: pointer; }
/* 键盘焦点环画在 thumb 上（outline:none 压掉全局兜底后必须自补指示） */
.nux-age-slider:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.35); }
.nux-age-slider:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.35); }
.nux-age-notice { font-size: var(--nx-text-sm, 12px); color: var(--nx-text-muted); line-height: 1.5; margin-top: 6px; }
.nux-login-divider {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  margin: var(--nx-space-5) 0 var(--nx-space-3);
  color: var(--nx-text-muted);
  font-size: var(--nx-text-sm);
}
.nux-login-divider::before,
.nux-login-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--nx-border);
}
.nux-login-third {
  display: flex;
  justify-content: center;
  gap: var(--nx-space-3);
}
.nux-third-btn {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--nx-text-lg);
  color: var(--nx-text-secondary);
  background: var(--nx-bg-hover);
  border: 1px solid var(--nx-border);
  border-radius: 50%;
  cursor: pointer;
  transition: all var(--nx-transition-fast);
}
.nux-third-btn:hover { color: var(--app-accent, var(--nx-primary)); border-color: var(--app-accent, var(--nx-primary)); }
.nux-third-btn svg { width: 20px; height: 20px; }

.nux-login-page.nux-login--card,
.nux-login-page.nux-login--topbar,
.nux-login-page.nux-login--minimal {
  flex-direction: column;
  --nux-login-grad-mid: #e3e9f1;
  --nux-login-grad-end: #d6dfea;
  background: linear-gradient(165deg, var(--nx-bg-page, #eef2f7) 0%, var(--nux-login-grad-mid) 55%, var(--nux-login-grad-end) 100%);
}
.nux-login-page.nux-login--card .nux-login-brand,
.nux-login-page.nux-login--topbar .nux-login-brand {
  order: 1; flex: none; overflow: visible;
}
.nux-login-page.nux-login--card .nux-login-brand::before,
.nux-login-page.nux-login--topbar .nux-login-brand::before { content: none; }
.nux-login-page.nux-login--card .nux-login-form-side,
.nux-login-page.nux-login--topbar .nux-login-form-side,
.nux-login-page.nux-login--minimal .nux-login-form-side {
  order: 2; flex: none; background: transparent;
}
.nux-login-page.nux-login--card .nux-login-card,
.nux-login-page.nux-login--topbar .nux-login-card,
.nux-login-page.nux-login--minimal .nux-login-card {
  background: var(--nx-bg-card, #fff); box-sizing: border-box;
}
.nux-login-page.nux-login--card .nux-login-card { border-radius: 18px; padding: 32px 30px; box-shadow: 0 12px 40px rgba(30, 41, 59, .10), 0 2px 6px rgba(30, 41, 59, .06); }
.nux-login-page.nux-login--topbar .nux-login-card { border-radius: 16px; padding: 32px 30px; box-shadow: 0 10px 32px rgba(30, 41, 59, .09); }
.nux-login-page.nux-login--minimal .nux-login-card { border-radius: 16px; padding: 32px 30px; box-shadow: 0 8px 28px rgba(30, 41, 59, .06); }

.nux-login-page.nux-login--card .nux-login-brand { background: none; padding: 56px 24px 0; }
.nux-login-page.nux-login--card .nux-login-brand-content { color: var(--nx-text-heading); }
.nux-login-page.nux-login--card .nux-login-desc,
.nux-login-page.nux-login--card .nux-login-features,
.nux-login-page.nux-login--card .nux-login-stats { display: none; }
.nux-login-page.nux-login--card .nux-login-icon { font-size: 44px; margin-bottom: var(--nx-space-2); }
.nux-login-page.nux-login--card .nux-login-logo { width: 60px; height: 60px; margin-bottom: var(--nx-space-2); }
.nux-login-page.nux-login--card .nux-login-app-name { font-size: 26px; margin-bottom: 4px; color: var(--nx-text-heading); }
.nux-login-page.nux-login--card .nux-login-slogan { font-size: var(--nx-text-base); color: var(--nx-text-secondary); }
.nux-login-page.nux-login--card .nux-login-form-side { padding: 20px 16px 56px; }

.nux-login-page.nux-login--topbar { background: linear-gradient(180deg, var(--nx-bg-base, #f1f5f9) 0%, var(--nux-login-grad-end, #e2e8f0) 100%); }
.nux-login-page.nux-login--topbar .nux-login-brand { background: var(--nx-bg-surface, #fff); padding: 14px 24px; box-shadow: 0 1px 0 var(--nx-border); }
.nux-login-page.nux-login--topbar .nux-login-brand-content { display: flex; align-items: center; justify-content: center; gap: 12px; text-align: left; color: var(--nx-text-heading); }
.nux-login-page.nux-login--topbar .nux-login-icon { margin: 0; font-size: 28px; line-height: 1; }
.nux-login-page.nux-login--topbar .nux-login-app-name { font-size: 20px; margin: 0; color: var(--nx-text-heading); }
.nux-login-page.nux-login--topbar .nux-login-slogan { font-size: var(--nx-text-sm); margin: 0; color: var(--nx-text-secondary); }
.nux-login-page.nux-login--topbar .nux-login-desc,
.nux-login-page.nux-login--topbar .nux-login-features,
.nux-login-page.nux-login--topbar .nux-login-stats { display: none; }
.nux-login-page.nux-login--topbar .nux-login-form-side { padding: 40px 16px 64px; }

.nux-login-page.nux-login--minimal { background: var(--nx-bg-surface, #f8fafc); }
.nux-login-page.nux-login--minimal .nux-login-brand { display: none; }
.nux-login-page.nux-login--minimal .nux-login-form-side { padding: 24px 16px; }
@media (max-width: 768px){
  .nux-login-page { flex-direction: column; }
  .nux-login-brand { min-height: 0; flex: none; padding: var(--nx-space-6); order: -1; }
  .nux-login-brand-content { text-align: center; }
  .nux-login-desc,
  .nux-login-features,
  .nux-login-stats { display: none; }
  .nux-login-icon { font-size: 36px; margin-bottom: var(--nx-space-2); }
  .nux-login-app-name { font-size: 22px; margin-bottom: var(--nx-space-1); }
  .nux-login-slogan { font-size: var(--nx-text-base); margin-bottom: 0; }
  .nux-login-form-side { padding: var(--nx-space-4); }
  .nux-form-horizontal { flex-direction: column; }
  .nux-form-horizontal .nux-form-label { width: auto; text-align: left; padding-top: 0; }
  .nux-password-toggle { width: 44px; height: 44px; right: 0; }
  .nux-sms-btn { min-height: 44px; }
  .nux-third-btn { width: 52px; height: 52px; }
}

.nx-switch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-space-3);
  padding: var(--nx-space-3) 0;
  cursor: pointer;
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
}
.nx-switch-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.nx-switch-slider {
  position: relative;
  width: 42px;
  height: 24px;
  flex-shrink: 0;
  background: var(--nx-border-hover, #cbd5e1);
  border-radius: var(--nx-radius-full);
  transition: background var(--nx-transition-fast);
}
.nx-switch-slider::after {
  content: '';
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: var(--nx-bg-surface, #fff);
  border-radius: 50%;
  transition: transform var(--nx-transition-fast);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.nx-switch-input:checked + .nx-switch-slider {
  background: var(--nx-primary, #3b82f6);
}
/* 隐藏 input 收焦点，焦点环画到可见滑轨上（兄弟选择器，键盘可达） */
.nx-switch-input:focus-visible + .nx-switch-slider {
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.35);
}
.nx-switch-input:checked + .nx-switch-slider::after {
  transform: translateX(18px);
}

/* === nux-forgot-password === */
.nux-forgot { width: 100%; }
.nux-forgot-head {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  margin-bottom: var(--nx-space-4);
}
.nux-forgot-title {
  margin: 0;
  font-size: var(--nx-text-lg);
  color: var(--nx-text-primary);
}
.nux-forgot-tabs { margin-bottom: var(--nx-space-4); }
.nux-forgot-hint {
  font-size: var(--nx-text-sm, 13px);
  color: var(--nx-text-secondary, #64748b);
  background: var(--nx-bg-secondary, #f1f5f9);
  border-radius: var(--nx-radius-md, 8px);
  padding: var(--nx-space-2, 8px) var(--nx-space-3, 12px);
  margin-bottom: var(--nx-space-4, 16px);
  line-height: 1.6;
}
.nux-forgot-done { text-align: center; padding: var(--nx-space-8) 0; }
.nux-forgot-done-icon {
  width: 56px;
  height: 56px;
  margin: 0 auto var(--nx-space-4);
  border-radius: 50%;
  background: var(--nx-success, #22c55e);
  color: var(--nx-text-on-accent, #fff);
  font-size: 28px;
  line-height: 56px;
}
.nux-forgot-done-text { color: var(--nx-text-secondary); margin-bottom: var(--nx-space-5); }

/* === nux-uc-* 用户菜单族（nux-menu-user 消费；nux-user-center 组件已下架 r56）=== */
.nux-user-center { display: inline-flex; }
.nux-uc-trigger {
  background: none;
  border: none;
  padding: 4px;
  cursor: pointer;
  border-radius: var(--nx-radius-full);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: opacity var(--nx-transition-fast);
}
.nux-uc-trigger:hover { opacity: 0.85; }
.nux-uc-trigger.nux-uc-labeled {
  width: auto;
  max-width: 100%;
  height: 38px;
  gap: 8px;
  padding: 0 12px 0 4px;
  color: var(--nx-text-secondary, #64748b);
}
.nux-uc-trigger.nux-uc-labeled:hover {
  opacity: 1;
  background: var(--nx-bg-hover, #f1f5f9);
  color: var(--app-accent, var(--nx-primary));
}
.nux-uc-trigger.nux-uc-labeled .nux-uc-label {
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}@keyframes nux-uc-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.nux-uc-body {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--nx-surface, #fff);
}
.nux-uc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--nx-space-5) var(--nx-space-5) var(--nx-space-4);
  border-bottom: 1px solid var(--nx-border, #e2e8f0);
}
.nux-uc-user {
  display: flex;
  align-items: center;
  gap: var(--nx-space-3);
  min-width: 0;
}
.nux-uc-user-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.nux-uc-user-meta strong { font-size: var(--nx-text-base); color: var(--nx-text-primary); }
.nux-uc-user-meta span {
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nux-uc-close {
  background: none;
  border: none;
  font-size: 24px;
  line-height: 1;
  color: var(--nx-text-secondary);
  cursor: pointer;
  padding: 4px 8px;
}
.nux-uc-tabs {
  display: flex;
  gap: var(--nx-space-1);
  padding: var(--nx-space-3) var(--nx-space-5);
  border-bottom: 1px solid var(--nx-border, #e2e8f0);
}
.nux-uc-tab {
  flex: 1;
  padding: var(--nx-space-2) var(--nx-space-1);
  border: none;
  background: none;
  border-radius: var(--nx-radius-md);
  font-size: var(--nx-text-xs);
  color: var(--nx-text-secondary);
  cursor: pointer;
  white-space: nowrap;
}
.nux-uc-tab.active {
  background: var(--nx-primary-soft, rgba(59, 130, 246, 0.1));
  color: var(--nx-primary, #3b82f6);
  font-weight: 600;
}
.nux-uc-pane {
  padding: var(--nx-space-5);
  overflow-y: auto;
  flex: 1;
}
.nux-uc-info { margin-bottom: var(--nx-space-6); }
.nux-uc-info-row {
  display: flex;
  justify-content: space-between;
  padding: var(--nx-space-3) 0;
  border-bottom: 1px dashed var(--nx-border, #e2e8f0);
  font-size: var(--nx-text-sm);
}
.nux-uc-info-row span { color: var(--nx-text-secondary); }
.nux-uc-info-row b { color: var(--nx-text-primary); }
.nux-uc-logout {
  width: 100%;
  padding: var(--nx-space-3);
  border: 1px solid var(--nx-danger, #ef4444);
  border-radius: var(--nx-radius-md);
  background: none;
  color: var(--nx-danger, #ef4444);
  cursor: pointer;
  font-size: var(--nx-text-sm);
}
.nux-uc-logout:hover { background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.08); }
.nux-uc-divider { height: 1px; background: var(--nx-border, #e2e8f0); margin: var(--nx-space-4) 0; }
.nux-uc-action {
  width: 100%;
  padding: var(--nx-space-3);
  border: 1px solid var(--nx-primary, #3b82f6);
  border-radius: var(--nx-radius-md);
  background: none;
  color: var(--nx-primary, #3b82f6);
  cursor: pointer;
  font-size: var(--nx-text-sm);
}
.nux-uc-action:hover { background: var(--nx-primary-soft, rgba(59, 130, 246, 0.08)); }
.nux-uc-tip { color: var(--nx-text-secondary); font-size: var(--nx-text-sm); margin-top: var(--nx-space-3); }
.nux-uc-sessions-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--nx-space-3);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
}
.nux-uc-empty { text-align: center; color: var(--nx-text-secondary); padding: var(--nx-space-8) 0; font-size: var(--nx-text-sm); }
.nux-uc-session-list { display: flex; flex-direction: column; gap: var(--nx-space-2); }
.nux-uc-session {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-space-3);
  padding: var(--nx-space-3);
  border: 1px solid var(--nx-border, #e2e8f0);
  border-radius: var(--nx-radius-md);
}
.nux-uc-session-meta {
  display: flex;
  flex-direction: column;
  min-width: 0;
  font-size: var(--nx-text-sm);
}
.nux-uc-session-meta b { color: var(--nx-text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nux-uc-session-meta span { color: var(--nx-text-secondary); font-size: var(--nx-text-xs); }

/* 登录页三变体暗色：渐变中末段与卡片阴影翻转（起段走 --nx-bg-page 已随块；页底/topbar/minimal 背景规则随令牌自动翻转，无需单独覆写） */
[data-theme="dark"] .nux-login-page.nux-login--card,
[data-theme="dark"] .nux-login-page.nux-login--topbar,
[data-theme="dark"] .nux-login-page.nux-login--minimal {
  --nux-login-grad-mid: #1b2534;
  --nux-login-grad-end: #16202f;
}
[data-theme="dark"] .nux-login-page.nux-login--card .nux-login-card { box-shadow: 0 12px 40px rgba(0, 0, 0, .45), 0 2px 6px rgba(0, 0, 0, .3); border: 1px solid var(--nx-border); }
[data-theme="dark"] .nux-login-page.nux-login--topbar .nux-login-card { box-shadow: 0 10px 32px rgba(0, 0, 0, .4); border: 1px solid var(--nx-border); }
[data-theme="dark"] .nux-login-page.nux-login--minimal .nux-login-card { box-shadow: 0 8px 28px rgba(0, 0, 0, .35); border: 1px solid var(--nx-border); }

/* ===== nux-input-number ===== */
.nux-input-number {
  display: inline-flex;
  align-items: stretch;
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-sm, 8px);
  background: var(--nx-bg-surface);
  overflow: hidden;
  transition: border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast);
}
.nux-input-number:focus-within {
  border-color: rgba(var(--app-accent-rgb), 0.55);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), 0.12);
}
.nux-input-number--disabled { opacity: 0.6; }
.nux-input-number-btn {
  width: 36px;
  flex-shrink: 0;
  border: none;
  background: var(--nx-bg-muted);
  color: var(--nx-text-body);
  font-size: var(--nx-text-lg);
  line-height: 1;
  cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast);
  font-family: inherit;
}
.nux-input-number-btn:hover:not(:disabled) { background: var(--nx-bg-hover); color: var(--nx-text-accent); }
.nux-input-number-btn:disabled { cursor: not-allowed; opacity: 0.45; }
.nux-input-number-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.55); outline-offset: -2px; }
.nux-input-number-native {
  width: 88px;
  text-align: center;
  border: none;
  border-radius: 0;
  background: transparent;
  flex: 1;
  min-width: 0;
}
.nux-input-number-native:focus { border: none; box-shadow: none; }
.nux-input-number-native::-webkit-outer-spin-button,
.nux-input-number-native::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.nux-input-number-native[type="number"] { -moz-appearance: textfield; appearance: textfield; }
.nux-input-number-unit {
  display: flex;
  align-items: center;
  padding: 0 var(--nx-space-2);
  color: var(--nx-text-muted);
  font-size: var(--nx-text-sm);
  background: var(--nx-bg-muted);
}
@media (max-width: 768px) {
  .nux-input-number-btn { width: 42px; }
  .nux-input-number-native { height: 40px; }
}

/* ===== nexus-components-controls.css ===== */
.nux-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--nx-space-2);
  padding: 9px var(--nx-space-5);
  min-height: 38px;
  font-size: var(--nx-text-sm);
  font-weight: 500;
  line-height: 1.5;
  border-radius: var(--nx-radius-md);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast), transform var(--nx-transition-fast);
  white-space: nowrap;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.nux-btn:active:not(:disabled) { transform: scale(0.97); }
.nux-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.nux-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.5); outline-offset: 2px; }

.nux-btn--primary { background: var(--app-accent); color: var(--nx-text-on-accent); border-color: var(--app-accent); }
.nux-btn--primary:hover:not(:disabled) { background: var(--app-accent-hover); border-color: var(--app-accent-hover); box-shadow: var(--nx-shadow-glow); }
.nux-btn--ghost { background: var(--nx-bg-surface); color: var(--nx-text-body); border-color: var(--nx-border); }
.nux-btn--ghost:hover:not(:disabled) { background: var(--nx-bg-hover); border-color: var(--nx-border-hover); color: var(--nx-text-heading); }
.nux-btn--danger { background: var(--nx-danger); color: var(--nx-text-on-accent); border-color: var(--nx-danger); }
.nux-btn--warning { background: var(--nx-warning); color: var(--nx-text-on-accent); border-color: var(--nx-warning); }
.nux-btn--warning:hover:not(:disabled) { opacity: 0.9; }
.nux-btn--danger:hover:not(:disabled) { opacity: 0.9; }
.nux-btn--success { background: var(--nx-success); color: var(--nx-text-on-accent); border-color: var(--nx-success); }
.nux-btn--success:hover:not(:disabled) { opacity: 0.9; }
.nux-btn--text { background: transparent; color: var(--app-accent); padding-left: var(--nx-space-2); padding-right: var(--nx-space-2); }
.nux-btn--text:hover:not(:disabled) { background: rgba(var(--app-accent-rgb), 0.08); }

.nux-btn--sm { padding: 4px var(--nx-space-3); min-height: 30px; font-size: var(--nx-text-xs); }
.nux-btn--lg { padding: 12px var(--nx-space-6); min-height: 46px; font-size: var(--nx-text-base); }
.nux-btn--block { display: flex; width: 100%; }

.nux-btn-spinner {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  border: 2px solid color-mix(in srgb, currentColor 30%, transparent);
  border-top-color: currentColor;
  border-radius: 50%;
  animation: nux-spin 0.7s linear infinite;
}
@keyframes nux-spin { to { transform: rotate(360deg); } }

.nux-field { margin-bottom: var(--nx-space-4); }
.nux-field-label {
  display: block;
  font-size: var(--nx-text-sm);
  font-weight: 500;
  color: var(--nx-text-heading);
  margin-bottom: var(--nx-space-2);
}
.nux-field-required { color: var(--nx-danger); margin-left: 3px; }
.nux-field-control { position: relative; display: flex; align-items: center; }
.nux-field-control .nux-input { flex: 1; min-width: 0; }
.nux-field-prefix { display: flex; align-items: center; color: var(--nx-text-muted); margin-right: var(--nx-space-2); }
.nux-field-suffix { display: flex; align-items: center; color: var(--nx-text-muted); margin-left: var(--nx-space-2); }
.nux-field-clear {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  margin-right: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  background: var(--nx-bg-muted);
  color: var(--nx-text-secondary);
  border-radius: 50%;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast);
}
.nux-field-clear:hover { background: var(--nx-bg-hover); color: var(--nx-text-heading); }
.nux-field-foot { display: flex; justify-content: space-between; gap: var(--nx-space-3); margin-top: var(--nx-space-1); }
.nux-field-hint { font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-field-error { font-size: var(--nx-text-xs); color: var(--nx-danger); }
.nux-field-count { font-size: var(--nx-text-xs); color: var(--nx-text-muted); margin-left: auto; flex-shrink: 0; }
.nux-field--error .nux-input { border-color: var(--nx-danger); }
.nux-field--error .nux-input:focus { box-shadow: 0 0 0 3px rgba(var(--nx-danger-rgb), 0.15); }

.nux-input {
  width: 100%;
  padding: 9px var(--nx-space-3);
  font-size: var(--nx-text-sm);
  font-family: inherit;
  color: var(--nx-text-heading);
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  outline: none;
  transition: border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast);
  box-sizing: border-box;
}
.nux-input:focus {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), 0.15);
}
.nux-input::placeholder { color: var(--nx-text-muted); }
.nux-input:disabled { background: var(--nx-bg-muted); cursor: not-allowed; }

.nux-textarea { resize: vertical; line-height: 1.6; min-height: 72px; }

.nux-select-wrap { position: relative; }
.nux-select-native {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 36px;
  cursor: pointer;
}
.nux-select-arrow {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--nx-text-secondary);
  font-size: 14px;
  line-height: 1;
  pointer-events: none;
}

.nux-switch-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-space-4);
  padding: var(--nx-space-2) 0;
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.nux-switch-field--disabled { cursor: not-allowed; opacity: 0.55; }
.nux-switch-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nux-switch-label { font-size: var(--nx-text-sm); font-weight: 500; color: var(--nx-text-heading); }
.nux-switch-desc { font-size: var(--nx-text-xs); color: var(--nx-text-muted); }
.nux-switch-track {
  position: relative;
  width: 44px;
  height: 26px;
  flex-shrink: 0;
  background: var(--nx-border-hover);
  border-radius: var(--nx-radius-full);
  transition: background var(--nx-transition-fast);
}
.nux-switch-track--on { background: var(--app-accent); }
.nux-switch-thumb {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 20px;
  height: 20px;
  background: var(--nx-bg-surface, #fff);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  transition: transform var(--nx-transition-base);
}
.nux-switch-track--on .nux-switch-thumb { transform: translateX(18px); }

.nux-check {
  display: inline-flex;
  align-items: center;
  gap: var(--nx-space-2);
  cursor: pointer;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.nux-check--disabled { cursor: not-allowed; opacity: 0.55; }
.nux-check-native { position: absolute; opacity: 0; pointer-events: none; }
.nux-check-box {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-bg-surface);
  border: 1.5px solid var(--nx-border-hover);
  border-radius: var(--nx-radius-sm, 6px);
  transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast);
}
.nux-check-box--on { background: var(--app-accent); border-color: var(--app-accent); }
.nux-check-box svg { animation: nux-check-pop 0.25s cubic-bezier(0.34, 1.56, 0.64, 1); }
@keyframes nux-check-pop { 0% { transform: scale(0); } 60% { transform: scale(1.15); } 100% { transform: scale(1); } }
.nux-check-label { font-size: var(--nx-text-sm); color: var(--nx-text-body); }
.nux-switch-field:focus-visible,
.nux-check:focus-within .nux-check-box,
.nux-chip:focus-visible,
.nux-tab-item:focus-visible {
  outline: 2px solid rgba(var(--app-accent-rgb, 99, 102, 241), 0.5);
  outline-offset: 2px;
}

.nux-search-box {
  display: flex;
  align-items: center;
  gap: var(--nx-space-2);
  padding: 0 var(--nx-space-3);
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-full);
  transition: border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast);
}
.nux-search-box:focus-within {
  border-color: var(--app-accent);
  box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb), 0.12);
}
.nux-search-icon { display: flex; color: var(--nx-text-muted); flex-shrink: 0; }
.nux-search-input {
  flex: 1;
  min-width: 0;
  border: none;
  background: transparent;
  outline: none;
  padding: 9px 0;
  font-size: var(--nx-text-sm);
  font-family: inherit;
  color: var(--nx-text-heading);
}
.nux-search-input::placeholder { color: var(--nx-text-muted); }
.nux-search-input::-webkit-search-cancel-button { display: none; }

.nux-segmented {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: var(--nx-bg-muted);
  border-radius: var(--nx-radius-full);
  max-width: 100%;
  overflow-x: auto;
  scrollbar-width: none;
}
.nux-segmented::-webkit-scrollbar { display: none; }
.nux-segmented--disabled { opacity: 0.55; pointer-events: none; }
.nux-segmented-indicator {
  position: absolute;
  top: 3px;
  bottom: 3px;
  left: 3px;
  width: 40px;
  background: var(--nx-bg-surface);
  border-radius: var(--nx-radius-full);
  box-shadow: var(--nx-shadow-sm);
  transition: transform 0.25s cubic-bezier(0.34, 1.3, 0.64, 1), width 0.2s ease, left 0.2s ease;
  pointer-events: none;
}
.nux-segmented-item {
  position: relative;
  z-index: 1;
  padding: 7px var(--nx-space-4);
  min-height: 34px;
  font-size: var(--nx-text-sm);
  font-family: inherit;
  font-weight: 500;
  color: var(--nx-text-secondary);
  background: transparent;
  border: none;
  border-radius: var(--nx-radius-full);
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-segmented-item--on { color: var(--nx-text-heading); }
.nux-segmented-item--disabled { opacity: 0.45; cursor: not-allowed; }

.nux-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: var(--nx-space-2);
}
.nux-chip-group--disabled { opacity: 0.55; pointer-events: none; }
.nux-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px var(--nx-space-3);
  min-height: 32px;
  font-size: var(--nx-text-sm);
  color: var(--nx-text-secondary);
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-full);
  cursor: pointer;
  user-select: none;
  transition: all var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-chip:hover { border-color: var(--nx-border-hover); color: var(--nx-text-heading); }
.nux-chip--on {
  color: var(--app-accent);
  border-color: var(--app-accent);
  background: rgba(var(--app-accent-rgb), 0.08);
  font-weight: 500;
}
.nux-chip--disabled { opacity: 0.45; cursor: not-allowed; }
.nux-chip-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  margin-right: -4px;
  border: none;
  border-radius: 50%;
  background: var(--nx-bg-muted);
  color: var(--nx-text-muted);
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
  transition: all var(--nx-transition-fast);
}
.nux-chip-remove:hover { background: rgba(var(--nx-danger-rgb), 0.15); color: var(--nx-danger); }

.nux-loading { display: flex; align-items: center; justify-content: center; gap: var(--nx-space-2); color: var(--nx-text-muted); }
.nux-loading--block { padding: var(--nx-space-8) 0; }
.nux-loading--inline { padding: 0; }
.nux-loading-spinner {
  flex-shrink: 0;
  border: 2px solid var(--nx-border);
  border-top-color: var(--app-accent);
  border-radius: 50%;
  animation: nux-spin 0.7s linear infinite;
}
.nux-loading--sm .nux-loading-spinner { width: 14px; height: 14px; }
.nux-loading--md .nux-loading-spinner { width: 20px; height: 20px; }
.nux-loading--lg .nux-loading-spinner { width: 28px; height: 28px; border-width: 3px; }
.nux-loading-text { font-size: var(--nx-text-sm); }

.nux-pagination { display: flex; align-items: center; justify-content: center; gap: var(--nx-space-2); flex-wrap: wrap; }
.nux-pagination-info { font-size: var(--nx-text-sm); color: var(--nx-text-muted); min-width: 3.5em; text-align: center; }

@media (max-width: 768px){
  .nux-btn { padding: 8px var(--nx-space-4); min-height: 40px; }
  .nux-field { margin-bottom: var(--nx-space-3); }
  .nux-segmented { width: 100%; }
  .nux-segmented-item { flex: 1; padding: 7px var(--nx-space-3); }
}@media (hover: none) and (pointer: coarse){
  .nux-btn { min-height: 44px; }
  .nux-btn--sm { min-height: 40px; }
  .nux-input, .nux-search-input { font-size: 16px; }
  .nux-search-box { padding: 0 var(--nx-space-3); }
  .nux-search-box .nux-field-clear { width: 40px; height: 40px; }
  .nux-chip { min-height: 40px; }
  .nux-segmented-item { min-height: 40px; }
  .nux-switch-track { width: 48px; height: 28px; }
  .nux-switch-track--on .nux-switch-thumb { transform: translateX(20px); }
  .nux-check-box { width: 20px; height: 20px; }
  .nux-field-clear { width: 40px; height: 40px; }
}

.nux-swipe { position: relative; overflow: hidden; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.nux-swipe__side { position: absolute; top: 0; bottom: 0; display: flex; z-index: 0; }
.nux-swipe__side--left { left: 0; }
.nux-swipe__side--right { right: 0; }
.nux-swipe__content { position: relative; z-index: 1; touch-action: pan-y; }
.nux-swipe__content--settled { transition: transform var(--nx-transition-base, 200ms) var(--nx-ease-out, ease-out); }
.nux-swipe--disabled .nux-swipe__content { pointer-events: auto; }
.nux-swipe__action { width: 76px; min-height: 44px; border: 0; padding: 0 var(--nx-space-2); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; color: var(--nx-text-on-accent, #fff); font-size: var(--nx-text-xs); font-weight: 600; font-family: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.nux-swipe__action:active { filter: brightness(0.92); }
.nux-swipe__action-icon { font-size: 18px; line-height: 1; display: inline-flex; align-items: center; justify-content: center; }
.nux-swipe__action-icon svg { width: 18px; height: 18px; }
.nux-swipe__action--accent { background: var(--app-accent, var(--nx-info)); }
.nux-swipe__action--danger { background: var(--nx-danger); }
.nux-swipe__action--success { background: var(--nx-success); }
.nux-swipe__action--warning { background: var(--nx-warning); }
.nux-swipe__action--neutral { background: var(--nx-text-secondary); }
@media (prefers-reduced-motion: reduce){
  .nux-swipe__content--settled { transition: none; }
}
.nux-pagination--bar { justify-content: flex-end; gap: var(--nx-space-1); }
.nux-pagination-total { font-size: var(--nx-text-sm); color: var(--nx-text-muted); margin-right: var(--nx-space-2); }
.nux-pagination-sizes { font-size: var(--nx-text-xs); color: var(--nx-text-body); background: var(--nx-bg-surface); border: 1px solid var(--nx-border); border-radius: var(--nx-radius-sm); padding: 2px 4px; }
.nux-pagination-page { min-width: 28px; height: 28px; padding: 0 4px; border: none; border-radius: var(--nx-radius-sm); background: transparent; color: var(--nx-text-body); font-size: var(--nx-text-sm); cursor: pointer; transition: background var(--nx-transition-fast); }
.nux-pagination-page:hover:not(:disabled) { background: var(--nx-bg-hover); }
.nux-pagination-page--active { background: var(--app-accent, var(--nx-primary)); color: var(--nx-text-on-accent); font-weight: 600; }
.nux-pagination-page--ellipsis { cursor: default; color: var(--nx-text-muted); }
.nux-pagination-jumper { font-size: var(--nx-text-sm); color: var(--nx-text-muted); display: inline-flex; align-items: center; gap: 4px; }
.nux-pagination-jumper-input { width: 44px; height: 26px; padding: 0 4px; font-size: var(--nx-text-sm); color: var(--nx-text-body); background: var(--nx-bg-surface); border: 1px solid var(--nx-border); border-radius: var(--nx-radius-sm); text-align: center; }
.nux-select-clear {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px; height: 20px;
  border: none; border-radius: var(--nx-radius-full);
  background: var(--nx-bg-muted);
  color: var(--nx-text-secondary);
  font-size: 13px; line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
}
.nux-select-clear:hover { background: var(--nx-bg-hover); color: var(--nx-text-body); }
.nux-select-wrap--combo .nux-select-input { padding-right: 32px; cursor: pointer; }
.nux-select-wrap--combo .nux-select-arrow { transition: transform var(--nx-transition-fast); }
.nux-select-wrap--open .nux-select-arrow { transform: translateY(-50%) rotate(180deg); }
.nux-select-dropdown {
  position: absolute;
  left: 0; right: 0;
  top: calc(100% + 4px);
  z-index: var(--nx-z-popover);
  max-height: 240px;
  overflow-y: auto;
  margin: 0; padding: 4px 0;
  list-style: none;
  background: var(--nx-bg-elevated);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  box-shadow: var(--nx-shadow-md);
}
.nux-select-option {
  padding: var(--nx-space-1) var(--nx-space-3);
  font-size: var(--nx-text-sm);
  color: var(--nx-text-body);
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nux-select-option:hover { background: var(--nx-bg-hover); }
.nux-select-option--selected { color: var(--app-accent, var(--nx-primary)); font-weight: 600; }
.nux-select-option--muted { color: var(--nx-text-muted); cursor: default; }
.nux-select-option--muted:hover { background: transparent; }

/* ===== nexus-components-display.css ===== */
.nux-progress-line {
  height: 8px;
  background: var(--nx-bg-muted);
  border-radius: var(--nx-radius-full);
  overflow: hidden;
}
.nux-progress-line-val {
  height: 100%;
  background: var(--app-accent);
  border-radius: var(--nx-radius-full);
  transition: width var(--nx-transition-slow);
}
.nux-progress-head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--nx-space-3); margin-bottom: var(--nx-space-2); }
.nux-progress-label { font-size: var(--nx-text-sm); color: var(--nx-text-body); }
.nux-progress-percent { font-size: var(--nx-text-sm); font-weight: 600; color: var(--nx-text-heading); font-variant-numeric: tabular-nums; }
.nux-progress-circle { position: relative; display: inline-flex; align-items: center; justify-content: center; }
.nux-progress-circle-bg { stroke: var(--nx-bg-muted); }
.nux-progress-circle-val {
  stroke: var(--app-accent);
  transform: rotate(-90deg);
  transform-origin: center;
  transition: stroke-dashoffset var(--nx-transition-slow);
}
.nux-progress-circle-text {
  position: absolute;
  font-size: var(--nx-text-base);
  font-weight: 600;
  color: var(--nx-text-heading);
  font-variant-numeric: tabular-nums;
}
.nux-progress--success .nux-progress-line-val,
.nux-progress--success .nux-progress-circle-val { background: var(--nx-success); stroke: var(--nx-success); }
.nux-progress--danger .nux-progress-line-val,
.nux-progress--danger .nux-progress-circle-val { background: var(--nx-danger); stroke: var(--nx-danger); }
.nux-progress--warning .nux-progress-line-val,
.nux-progress--warning .nux-progress-circle-val { background: var(--nx-warning); stroke: var(--nx-warning); }

.nux-accordion {
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-lg);
  background: var(--nx-bg-surface);
  overflow: hidden;
}
.nux-acc-item + .nux-acc-item { border-top: 1px solid var(--nx-border); }
.nux-acc-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-space-3);
  width: 100%;
  padding: var(--nx-space-4);
  font-size: var(--nx-text-base);
  font-weight: 500;
  font-family: inherit;
  color: var(--nx-text-heading);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-acc-head:hover { background: var(--nx-bg-hover); }
.nux-acc-arrow { color: var(--nx-text-muted); font-size: 14px; transition: transform var(--nx-transition-base); flex-shrink: 0; }
.nux-acc-item--open .nux-acc-arrow { transform: rotate(180deg); }
.nux-acc-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--nx-transition-base);
}
.nux-acc-item--open .nux-acc-body { grid-template-rows: 1fr; }
.nux-acc-content { overflow: hidden; }
.nux-acc-content > :first-child { padding: 0 var(--nx-space-4) var(--nx-space-4); margin: 0; font-size: var(--nx-text-sm); color: var(--nx-text-body); line-height: 1.7; }

.nux-section {
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-lg);
  padding: var(--nx-space-5) var(--nx-space-6);
  margin-bottom: var(--nx-space-5);
}
.nux-section--flat { background: transparent; border: none; padding: 0; border-radius: 0; }
.nux-section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--nx-space-4);
  margin-bottom: var(--nx-space-4);
}
.nux-section-title {
  font-size: var(--nx-text-lg);
  font-weight: 600;
  color: var(--nx-text-heading);
  margin: 0;
  line-height: 1.4;
}
.nux-section-desc { font-size: var(--nx-text-sm); color: var(--nx-text-muted); margin: var(--nx-space-1) 0 0; }
.nux-section-actions { display: flex; align-items: center; gap: var(--nx-space-2); flex-shrink: 0; flex-wrap: wrap; }
.nux-section-body { min-width: 0; }

.nux-backtop {
  position: fixed;
  right: 24px;
  bottom: calc(24px + var(--nx-safe-bottom));
  z-index: var(--nx-z-nav);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--nx-text-secondary);
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: 50%;
  box-shadow: var(--nx-shadow-md);
  cursor: pointer;
  transition: all var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nux-backtop:hover { color: var(--app-accent); border-color: var(--app-accent); transform: translateY(-2px); }
.nux-backtop-fade-enter-active,
.nux-backtop-fade-leave-active { transition: opacity var(--nx-transition-base), transform var(--nx-transition-base); }
.nux-backtop-fade-enter-from,
.nux-backtop-fade-leave-to { opacity: 0; transform: translateY(8px); }@media (min-width: 1024px){
  .nux-section { padding: var(--nx-space-6); }
}@media (max-width: 768px){
  .nux-section { padding: var(--nx-space-4); margin-bottom: var(--nx-space-4); }
  .nux-section--flat { padding: 0; }
  .nux-section-head { flex-direction: column; }
}@media (max-width: 480px){
  .nux-section { padding: var(--nx-space-3); }
  .nux-section-title { font-size: var(--nx-text-base); }
}@media (hover: none) and (pointer: coarse){
  .nux-acc-head { min-height: 48px; }
  .nux-backtop { right: 16px; }
}

.nux-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--nx-space-1);
  padding: var(--nx-space-3) var(--nx-space-4);
  color: var(--nx-text-muted);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}
.nux-footer-brand {
  font-weight: 600;
  color: var(--nx-text-secondary);
}
.nux-footer-disclaimer {
  max-width: 720px;
  margin: 0 auto;
  font-size: 12px;
  line-height: 1.6;
  color: var(--nx-text-secondary);
}
.nux-footer-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--nx-space-1) var(--nx-space-3);
}
.nux-footer-copy { color: var(--nx-text-secondary); }
.nux-footer-sep { color: var(--nx-text-secondary); opacity: .7; }
.nux-footer .nux-footer-link {
  color: var(--nx-text-secondary);
  text-decoration: none;
  padding: 2px;
  transition: color .2s;
}
.nux-footer .nux-footer-link:hover {
  color: var(--nx-text-accent);
  text-decoration: underline;
}


.nux-app-card{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px;
  background: var(--nx-bg-card, #fff);
  border: 1px solid var(--nx-border, rgba(15,23,42,0.08));
  border-radius: var(--nx-radius-lg, 18px);
  text-decoration: none;
  overflow: hidden;
  min-width: 0;
  word-break: break-word;
  box-shadow: var(--nx-shadow-sm, 0 1px 3px rgba(15,23,42,0.05));
  transition: transform .3s cubic-bezier(0.4,0,0.2,1), box-shadow .3s cubic-bezier(0.4,0,0.2,1), border-color .3s;
  color: inherit;
}
.nux-app-card-cover{
  position: absolute;
  inset: 0;
  z-index: 1;
  cursor: pointer;
  border-radius: inherit;
  text-decoration: none;
}
.nux-app-card-glow,
.nux-app-card-top,
.nux-app-card-body,
.nux-app-card-enter{ position: relative; }
.nux-app-card-fav,
.nux-app-card-edit{ position: relative; z-index: 2; }
.nux-app-card:hover{
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -14px var(--app-accent-glow, rgba(79,70,229,0.22));
  border-color: var(--app-accent, rgba(79,70,229,0.4));
}
.nux-app-card:hover .nux-app-card-name{ color: var(--nx-text-heading, #0f172a); }
.nux-app-card-glow{
  position: absolute;
  top: -40%;
  right: -30%;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--app-accent-soft, rgba(79,70,229,0.08)), transparent 70%);
  pointer-events: none;
}
.nux-app-card-badge{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--app-accent, #4f46e5);
  background: var(--app-accent-soft, rgba(79,70,229,0.08));
  border: 1px solid currentColor;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}
.nux-app-card-badge i{ font-size: 10px; }
.nux-app-card-badge-recent{ background: rgba(var(--nx-success-rgb), 0.10); border-color: rgba(var(--nx-success-rgb), 0.22); color: var(--nx-success); }
.nux-app-card-badge-fav{ background: rgba(var(--nx-warning-rgb), 0.12); border-color: rgba(var(--nx-warning-rgb), 0.28); color: var(--nx-warning); }
.nux-app-card-badge-featured{ background: rgba(var(--nx-warning-rgb), 0.12); border-color: rgba(var(--nx-warning-rgb), 0.28); color: var(--nx-warning); }
.nux-app-card-fav{
  position: relative;
  width: 30px;
  height: 30px;
  min-width: 30px;
  min-height: 30px;
  border-radius: 999px;
  border: 1px solid var(--nx-border, rgba(15,23,42,0.18));
  background: var(--nx-bg-card, rgba(255,255,255,0.9));
  color: var(--nx-text-secondary, #64748b);
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color .3s, background .3s, border-color .3s, transform .3s;
  font-family: inherit;
  flex-shrink: 0;
}
.nux-app-card-fav::before{
  content: '';
  position: absolute;
  inset: -8px;
  -webkit-tap-highlight-color: transparent;
}
.nux-app-card:hover .nux-app-card-fav{ color: var(--nx-text-body, #334155); border-color: var(--nx-border-strong, rgba(15,23,42,0.3)); }
.nux-app-card-fav:hover{ transform: scale(1.1); background: var(--nx-bg-card, rgba(255,255,255,0.95)); }
.nux-app-card-fav.on{
  color: var(--nx-warning-text, #d97706);
  background: rgba(var(--nx-warning-rgb, 217, 119, 6), 0.12);
  border-color: rgba(var(--nx-warning-rgb, 217, 119, 6), 0.35);
}
.nux-app-card-edit{
  position: relative;
  width: 30px;
  height: 30px;
  min-width: 30px;
  min-height: 30px;
  border: none;
  border-radius: 9px;
  background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.08);
  border: 1px solid rgba(var(--app-accent-rgb, 99, 102, 241), 0.18);
  color: var(--app-accent, var(--nx-primary, #4f46e5));
  font-size: 13px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .3s;
  flex-shrink: 0;
}
.nux-app-card-edit::before{
  content: '';
  position: absolute;
  inset: -8px;
  -webkit-tap-highlight-color: transparent;
}
.nux-app-card-edit:hover{ background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.16); border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.4); transform: scale(1.06); }
.nux-app-card-top{ display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nux-app-card-actions{ display: flex; align-items: center; gap: 6px; min-width: 0; }
.nux-app-card-icon{
  width: 46px;
  height: 46px;
  border-radius: 13px;
  object-fit: cover;
  background: var(--nx-bg-muted, #f7f8fc);
}
.nux-app-card-icon-fallback{
  width: 46px;
  height: 46px;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: var(--app-accent, #6366f1);
  background: var(--app-accent-soft, rgba(79,70,229,0.08));
}
.nux-app-card-body{ position: relative; min-width: 0; }
.nux-app-card-name{
  font-size: 16px;
  font-weight: 700;
  color: var(--nx-text-heading, #0f172a);
  margin-bottom: 4px;
  transition: color .3s;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nux-app-card-desc{
  font-size: 12.5px;
  color: var(--nx-text-muted, #475569);
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nux-app-card-enter{
  position: relative;
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--nx-text-secondary, #64748b);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap .3s, color .3s;
}
.nux-app-card-enter i{ transition: transform .3s; }
.nux-app-card:hover .nux-app-card-enter{ color: var(--nx-text-heading, #0f172a); gap: 9px; }
.nux-app-card:hover .nux-app-card-enter i{ transform: translateX(3px); }@media (max-width: 768px){
  .nux-app-card{ padding: 14px; gap: 8px; }
  .nux-app-card-top{ gap: 8px; }
  .nux-app-card-actions{ gap: 4px; }
  .nux-app-card-icon, .nux-app-card-icon-fallback{ width: 40px; height: 40px; font-size: 18px; }
  .nux-app-card-name{ font-size: 14.5px; }
  .nux-app-card-desc{ font-size: 12px; line-height: 1.55; }
  .nux-app-card-badge{ font-size: 10px; padding: 2px 6px; }
  .nux-app-card-fav, .nux-app-card-edit{ width: 40px; height: 40px; min-width: 40px; min-height: 40px; }
}

.nux-notify { position: relative; display: inline-block; }
.nux-notify-bell {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 50%;
  background: transparent;
  color: var(--nx-text-strong);
  font-size: 17px;
  cursor: pointer;
  transition: background 0.2s;
}
@media (hover: none) and (pointer: coarse) {
  .nux-notify-bell { width: 44px; height: 44px; }
}
.nux-notify-bell:hover { background: var(--nx-bg-hover); }
.nux-notify-bell:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 2px; }
.nux-notify-dot {
  position: absolute;
  top: 2px;
  right: 0;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--nx-danger);
  color: var(--nx-text-on-accent);
  font-size: 10px;
  line-height: 17px;
  text-align: center;
  font-weight: 600;
  box-shadow: 0 0 0 2px var(--nx-bg-surface);
}
.nux-notify-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.nux-notify-panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: var(--nx-z-popover);
  display: flex;
  flex-direction: column;
  width: 360px;
  max-width: calc(100vw - 24px);
  max-height: min(520px, calc(100dvh - 140px));
  background: var(--nx-bg-surface);
  border: 1px solid var(--nx-border);
  border-radius: var(--nx-radius-md);
  box-shadow: 0 12px 36px rgba(15, 23, 42, 0.14);
  overflow: hidden;
  animation: nuxNotifyIn 0.16s ease;
}
@keyframes nuxNotifyIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .nux-notify-panel { animation: none; }
  .nux-notify-item, .nux-notify-bell { transition: none; }
}
.nux-notify-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px 8px;
}
.nux-notify-title { font-size: 14px; font-weight: 600; color: var(--nx-text-strong); }
.nux-notify-push {
  display: inline-flex; align-items: center; gap: 5px;
  border: 1px solid rgba(var(--app-accent-rgb), 0.35); border-radius: 999px;
  background: var(--nx-bg-surface, transparent); color: var(--nx-text-accent);
  font-size: 12px; font-weight: 600; cursor: pointer; padding: 4px 10px;
}
.nux-notify-push:hover { background: rgba(var(--app-accent-rgb), 0.08); }
.nux-notify-push.is-on { background: rgba(var(--app-accent-rgb), 0.12); border-color: transparent; }
.nux-notify-push.is-denied {
  border-color: rgba(var(--nx-warning-rgb), 0.5); background: var(--nx-warning-soft);
  color: var(--nx-warning-text);
}
.nux-notify-push.is-unsupported { border-color: var(--nx-border); color: var(--nx-text-tertiary, var(--nx-text-secondary)); cursor: default; }
.nux-notify-push[disabled] { opacity: 0.6; cursor: wait; white-space: nowrap; }
.nux-notify-push-note {
  display: flex; align-items: center; gap: 8px;
  margin: 0 16px 10px; padding: 8px 10px;
  border: 1px solid rgba(var(--app-accent-rgb), 0.3); border-radius: 8px;
  background: rgba(var(--app-accent-rgb), 0.06);
  font-size: 12.5px; color: var(--nx-text-secondary); line-height: 1.5;
}
.nux-notify-push-note > i { color: var(--nx-text-accent); flex-shrink: 0; }
.nux-notify-push-note.is-recover {
  border-color: rgba(var(--nx-warning-rgb), 0.4); background: var(--nx-warning-soft);
}
.nux-notify-push-note.is-recover > i { color: var(--nx-warning-text); }
.nux-notify-push-note.is-error {
  border-color: rgba(var(--nx-danger-rgb), 0.35); background: rgba(var(--nx-danger-rgb), 0.07);
}
.nux-notify-push-note.is-error > i { color: var(--nx-danger); }
.nux-notify-push-note-cta {
  flex-shrink: 0; border: none; border-radius: 6px; cursor: pointer;
  background: var(--app-accent, var(--nx-text-accent)); color: #fff;
  font-size: 12.5px; font-weight: 600; padding: 6px 12px; min-height: 32px;
}
.nux-notify-push-note.is-recover .nux-notify-push-note-cta {
  background: transparent; border: 1px solid rgba(var(--nx-warning-rgb), 0.55); color: var(--nx-warning-text);
}
.nux-notify-push-note-x {
  flex-shrink: 0; border: none; background: none; cursor: pointer;
  color: var(--nx-text-tertiary, var(--nx-text-secondary));
  padding: 4px; min-width: 28px; min-height: 28px;
}
.nux-notify-push-note-x:focus-visible, .nux-notify-push-note-cta:focus-visible, .nux-notify-push:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notify-allread {
  border: none;
  background: transparent;
  color: var(--nx-text-accent);
  font-size: 12.5px;
  cursor: pointer;
  padding: 6px 8px;
  border-radius: 6px;
}
.nux-notify-allread:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notify-toolbar { padding: 0 16px 10px; }
.nux-notify-seg {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  border-radius: 8px;
  background: var(--nx-bg-muted);
}
.nux-notify-seg-btn {
  border: none;
  background: transparent;
  color: var(--nx-text-secondary);
  font-size: 12px;
  line-height: 1;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
}
.nux-notify-seg-btn.active {
  background: var(--nx-bg-surface);
  color: var(--nx-text-strong);
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12);
}
.nux-notify-seg-btn:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 1px; }
.nux-notify-scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
.nux-notify-group-label {
  display: flex; align-items: baseline; gap: 6px;
  font-size: 11px;
  color: var(--nx-text-muted);
  padding: 8px 16px 4px;
}
.nux-notify-group-unread { color: var(--nx-text-accent); font-weight: 600; }
.nux-notify-list { list-style: none; margin: 0; padding: 0; }
.nux-notify-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 16px;
  cursor: pointer;
  transition: background 0.15s;
}
.nux-notify-item:hover { background: var(--nx-bg-hover); }
.nux-notify-item:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: -2px; }
@media (hover: none) and (pointer: coarse) {
  .nux-notify-item { padding: 12px 16px; }
}
.nux-notify-item-ic {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  font-size: 14px;
  margin-top: 1px;
}
.nux-notify-item.tone-info .nux-notify-item-ic { background: rgba(var(--nx-info-rgb), 0.13); color: rgb(var(--nx-info-rgb)); }
.nux-notify-item.tone-success .nux-notify-item-ic { background: rgba(var(--nx-success-rgb), 0.13); color: rgb(var(--nx-success-rgb)); }
.nux-notify-item.tone-warning .nux-notify-item-ic { background: rgba(var(--nx-warning-rgb), 0.15); color: rgb(var(--nx-warning-rgb)); }
.nux-notify-item.tone-danger .nux-notify-item-ic { background: rgba(var(--nx-danger-rgb), 0.12); color: rgb(var(--nx-danger-rgb)); }
.nux-notify-item.tone-accent .nux-notify-item-ic { background: rgba(var(--app-accent-rgb), 0.11); color: rgb(var(--app-accent-rgb)); }
.nux-notify-item.tone-neutral .nux-notify-item-ic { background: var(--nx-bg-muted); color: var(--nx-text-secondary); }
.nux-notify-item-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.nux-notify-item-title {
  font-size: 13px;
  color: var(--nx-text-strong);
  line-height: 1.5;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.nux-notify-item-unread .nux-notify-item-title { font-weight: 600; }
.nux-notify-item-summary {
  margin-top: 2px; font-size: 12px; color: var(--nx-text-secondary); line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.nux-notify-item-meta { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.nux-notify-item-app {
  font-size: 10px; line-height: 1; padding: 2px 6px; border-radius: 999px;
  background: var(--nx-bg-muted); color: var(--nx-text-secondary);
}
.nux-notify-item-time { margin-top: 0; font-size: 11px; color: var(--nx-text-muted); }
.nux-notify-item-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nx-danger);
  margin-top: 6px;
}
.nux-notify-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 16px;
  text-align: center;
  font-size: 12.5px;
  color: var(--nx-text-muted);
}
.nux-notify-empty-ic { font-size: 26px; opacity: 0.45; }
.nux-notify-reload {
  border: 1px solid var(--nx-border);
  background: transparent;
  color: var(--nx-text-accent);
  font-size: 12.5px;
  padding: 8px 16px;
  min-height: 36px;
  border-radius: 8px;
  cursor: pointer;
}
@media (hover: none) and (pointer: coarse) {
  .nux-notify-reload { min-height: 44px; }
}
.nux-notify-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 16px; border-top: 1px solid var(--nx-border); font-size: 11.5px; color: var(--nx-text-muted); }
.nux-notify-center {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--nx-text-accent);
  text-decoration: none;
  font-size: 12.5px;
  font-weight: 500;
  padding: 4px 0;
}
.nux-notify-center i { font-size: 10px; }
.nux-notify-center:focus-visible { outline: 2px solid rgba(var(--app-accent-rgb), 0.7); outline-offset: 2px; border-radius: 4px; }
.nux-notify-foot-hint { color: var(--nx-text-muted); }
@media (max-width: 768px){
  .nux-notify-panel {
    position: fixed;
    top: calc(var(--nxs-header-h, 56px) + var(--nx-safe-top, 0px) + 8px);
    right: 10px;
    left: 10px;
    width: auto;
    max-height: calc(100dvh - var(--nxs-header-h, 56px) - var(--nx-safe-top, 0px) - var(--nx-safe-bottom, 0px) - 24px);
  }
}

.nux-onboarding-mask {
  position: fixed;
  inset: 0;
  z-index: var(--nx-z-topmost);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nx-overlay-bg, rgba(15, 23, 42, 0.45));
  backdrop-filter: blur(2px);
  padding: 16px calc(16px + var(--nx-safe-right, 0px)) calc(16px + var(--nx-safe-bottom, 0px)) calc(16px + var(--nx-safe-left, 0px));
  padding-top: calc(16px + var(--nx-safe-top, 0px));
}
.nux-onboarding-card {
  position: relative;
  width: 420px;
  max-width: 100%;
  padding: 32px 24px 24px;
  border-radius: 16px;
  background: var(--nx-bg-surface, #fff);
  box-shadow: 0 16px 50px rgba(15, 23, 42, 0.2);
  text-align: center;
}
.nux-onboarding-close {
  position: absolute;
  top: 10px;
  right: 10px;
  border: none;
  background: transparent;
  color: var(--nx-text-muted);
  font-size: 14px;
  cursor: pointer;
}
.nux-onboarding-step-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: 14px;
  border-radius: 16px;
  background: rgba(var(--app-accent-rgb, 79, 70, 229), 0.1);
  color: var(--nx-color-primary, #4f46e5);
  font-size: 24px;
  font-weight: 700;
}
.nux-onboarding-title { margin: 0 0 8px; font-size: 20px; font-weight: 700; color: var(--nx-text-strong); }
.nux-onboarding-desc { margin: 0; font-size: 14px; line-height: 1.7; color: var(--nx-text-muted); }
.nux-onboarding-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 16px; }
.nux-onboarding-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  background: var(--nx-bg-subtle, rgba(0,0,0,0.04));
  color: var(--nx-text-strong);
  font-size: 13px;
  text-decoration: none;
  transition: background 0.15s;
}
.nux-onboarding-link:hover { background: rgba(var(--app-accent-rgb, 79, 70, 229), 0.08); }
.nux-onboarding-link-primary { background: var(--nx-color-primary, #4f46e5); color: var(--nx-text-on-accent); }
.nux-onboarding-link-primary:hover { background: var(--nx-color-primary-strong, #4338ca); color: var(--nx-text-on-accent); }
.nux-onboarding-dots { display: flex; gap: 6px; justify-content: center; margin-top: 18px; }
.nux-onboarding-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--nx-border, rgba(0,0,0,0.12)); }
.nux-onboarding-dot.active { background: var(--nx-color-primary, #4f46e5); width: 20px; border-radius: 999px; }
.nux-onboarding-actions { display: flex; gap: 10px; justify-content: center; margin-top: 18px; }
.nux-onboarding-btn {
  padding: 8px 20px;
  border: none;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: opacity 0.15s;
}
.nux-onboarding-btn-primary { background: var(--nx-color-primary, #4f46e5); color: var(--nx-text-on-accent); }

/* ===== 就绪度引导条 ===== */
.nux-ob-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 16px;
  margin-bottom: 14px;
  color: var(--nx-text-on-accent);
  background: linear-gradient(135deg, color-mix(in srgb, var(--app-accent, #155e75) 82%, #0f172a), var(--app-accent, #155e75));
}
.nux-ob-strip .nux-ob-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.nux-ob-strip .nux-ob-ico {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.16);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.nux-ob-strip .nux-ob-title { font-size: 15px; font-weight: 700; }
.nux-ob-strip .nux-ob-desc { font-size: 12px; color: rgba(255, 255, 255, 0.78); margin-top: 2px; line-height: 1.5; }
.nux-ob-strip .nux-ob-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.nux-ob-strip .nux-ob-btn {
  border: none;
  background: var(--nx-text-on-accent);
  color: var(--app-accent-deep, var(--app-accent, #155e75));
  border-radius: 999px;
  padding: 8px 18px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.nux-ob-strip .nux-ob-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18); }
.nux-ob-strip .nux-ob-dismiss {
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 6px;
}
.nux-ob-strip .nux-ob-dismiss:hover { color: var(--nx-text-on-accent); }@media (max-width: 480px){
  .nux-ob-strip { flex-direction: column; align-items: stretch; gap: 10px; }
  .nux-ob-strip .nux-ob-actions { justify-content: stretch; }
  .nux-ob-strip .nux-ob-btn { flex: 1; text-align: center; }
}

/* ===== 统一线性图标 ===== */
.nux-icon {
  display: inline-block;
  vertical-align: -0.125em;
  flex: none;
}

/* ===== 标签 nux-tag ===== */
.nux-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 10px;
  border-radius: var(--nx-radius-full);
  font-size: var(--nx-text-xs);
  font-weight: 500;
  line-height: 20px;
  white-space: nowrap;
  border: 1px solid transparent;
  color: var(--nx-text-secondary);
  background: var(--nx-bg-muted);
}
.nux-tag--sm { padding: 0 8px; font-size: 11px; line-height: 18px; }
.nux-tag--primary { color: var(--app-accent); background: rgba(var(--app-accent-rgb), 0.12); }
.nux-tag--success { color: var(--nx-success); background: rgba(var(--nx-success-rgb), 0.12); }
.nux-tag--warning { color: var(--nx-warning); background: rgba(var(--nx-warning-rgb), 0.12); }
.nux-tag--danger { color: var(--nx-danger); background: rgba(var(--nx-danger-rgb), 0.12); }
.nux-tag--info { color: var(--nx-info); background: rgba(var(--nx-info-rgb), 0.12); }
.nux-tag--plain { background: transparent; border-color: var(--nx-border); }
.nux-tag--plain.nux-tag--primary { border-color: rgba(var(--app-accent-rgb), 0.4); }
.nux-tag--plain.nux-tag--success { border-color: rgba(var(--nx-success-rgb), 0.4); }
.nux-tag--plain.nux-tag--warning { border-color: rgba(var(--nx-warning-rgb), 0.4); }
.nux-tag--plain.nux-tag--danger { border-color: rgba(var(--nx-danger-rgb), 0.4); }
.nux-tag--plain.nux-tag--info { border-color: rgba(var(--nx-info-rgb), 0.4); }

/* ===== nexus-components-conversation.css ===== */
.nx-conv-list {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  font-size: var(--nx-text-sm, 0.875rem);
}

.nx-conv-list-header {
  display: flex;
  flex-direction: column;
  gap: var(--nx-space-2, 0.5rem);
  padding: var(--nx-space-3, 0.75rem) var(--nx-space-3, 0.75rem) var(--nx-space-2, 0.5rem);
}

.nx-conv-list-search {
  position: relative;
  display: flex;
  align-items: center;
}

.nx-conv-list-search > svg {
  position: absolute;
  left: 10px;
  color: var(--nx-text-muted, #94a3b8);
  pointer-events: none;
}

.nx-conv-list-search-input {
  width: 100%;
  padding: 0.4375rem 0.75rem 0.4375rem 2rem;
  font-size: inherit;
  font-family: inherit;
  color: var(--nx-text-body, #334155);
  background: var(--nx-bg-muted, #f1f5f9);
  border: 1px solid transparent;
  border-radius: var(--nx-radius-md, 10px);
  outline: none;
  transition: background var(--nx-transition-fast), border-color var(--nx-transition-fast), box-shadow var(--nx-transition-fast);
}

.nx-conv-list-search-input::placeholder { color: var(--nx-text-muted, #94a3b8); }

.nx-conv-list-search-input:focus {
  background: var(--nx-bg-surface, #ffffff);
  border-color: var(--nx-border-accent, rgba(99, 102, 241, 0.3));
  box-shadow: 0 0 0 3px var(--nx-accent-soft, rgba(99, 102, 241, 0.12));
}

.nx-conv-list-new {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0.5rem 0.875rem;
  font-size: var(--nx-text-sm, 0.875rem);
  font-weight: 500;
  font-family: inherit;
  color: var(--nx-text-on-accent, #ffffff);
  background: var(--nx-accent, var(--nx-primary, #6366f1));
  border: none;
  border-radius: var(--nx-radius-md, 10px);
  cursor: pointer;
  transition: background var(--nx-transition-fast), transform var(--nx-transition-fast), opacity var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}

.nx-conv-list-new:hover { background: var(--nx-accent-hover, var(--app-accent-hover, #818cf8)); }
.nx-conv-list-new:active { transform: scale(0.98); }
.nx-conv-list-new:disabled { opacity: 0.6; cursor: default; }
.nx-conv-list-new:focus-visible { outline: 2px solid var(--nx-accent, var(--nx-primary, #6366f1)); outline-offset: 2px; }

.nx-conv-list-error {
  display: flex;
  align-items: center;
  gap: var(--nx-space-2, 0.5rem);
  margin: 0 var(--nx-space-3, 0.75rem) var(--nx-space-2, 0.5rem);
  padding: var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
  font-size: var(--nx-text-xs, 0.75rem);
  color: var(--nx-danger, #ef4444);
  background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.08);
  border: 1px solid rgba(var(--nx-danger-rgb, 239, 68, 68), 0.3);
  border-radius: var(--nx-radius-sm, 6px);
}

.nx-conv-list-error span { flex: 1; word-break: break-word; }

.nx-conv-list-error button {
  flex-shrink: 0;
  padding: 0.25rem 0.625rem;
  font-size: var(--nx-text-xs, 0.75rem);
  font-family: inherit;
  color: var(--nx-danger, #ef4444);
  background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.1);
  border: 1px solid rgba(var(--nx-danger-rgb, 239, 68, 68), 0.35);
  border-radius: var(--nx-radius-sm, 6px);
  cursor: pointer;
  transition: background var(--nx-transition-fast);
}

.nx-conv-list-error button:hover { background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.16); }

.nx-conv-list-skeleton {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: var(--nx-space-1, 0.25rem) var(--nx-space-3, 0.75rem) var(--nx-space-3, 0.75rem);
}

.nx-conv-list-skeleton-item {
  height: 52px;
  border-radius: var(--nx-radius-md, 10px);
  background: linear-gradient(90deg, var(--nx-bg-muted, #f1f5f9) 25%, var(--nx-bg-hover, #e2e8f0) 50%, var(--nx-bg-muted, #f1f5f9) 75%);
  background-size: 200% 100%;
  animation: nx-conv-shimmer 1.2s infinite;
}

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

.nx-conv-list-empty {
  padding: var(--nx-space-8, 2rem) var(--nx-space-4, 1rem);
  font-size: var(--nx-text-xs, 0.75rem);
  text-align: center;
  color: var(--nx-text-muted, #94a3b8);
}

.nx-conv-list-items {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin: 0;
  padding: 0 var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
  list-style: none;
}

.nx-conv-list-item {
  position: relative;
  padding: var(--nx-space-2, 0.5rem) var(--nx-space-2, 0.5rem) var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
  border-radius: var(--nx-radius-md, 10px);
  cursor: pointer;
  transition: background var(--nx-transition-fast), opacity var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}

.nx-conv-list-item + .nx-conv-list-item { margin-top: 2px; }
.nx-conv-list-item:hover { background: var(--nx-bg-hover, #f1f5f9); }
.nx-conv-list-item:focus-visible { outline: 2px solid var(--nx-accent, var(--nx-primary, #6366f1)); outline-offset: -2px; }

.nx-conv-list-item.is-active { background: var(--nx-accent-soft, rgba(99, 102, 241, 0.12)); }

.nx-conv-list-item.is-active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 56%;
  transform: translateY(-50%);
  border-radius: var(--nx-radius-full, 9999px);
  background: var(--nx-accent, var(--nx-primary, #6366f1));
}

.nx-conv-list-item.is-archived { opacity: 0.55; cursor: default; }

.nx-conv-list-item-main {
  display: flex;
  align-items: center;
  gap: var(--nx-space-2, 0.5rem);
}

.nx-conv-list-item-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 500;
  color: var(--nx-text-heading, #0f172a);
}

.nx-conv-list-item.is-active .nx-conv-list-item-title { color: var(--nx-text-accent, var(--nx-primary, #6366f1)); }

.nx-conv-list-item-badge {
  flex-shrink: 0;
  padding: 1px 6px;
  font-size: 11px;
  line-height: 1.4;
  color: var(--nx-warning-text, var(--nx-warning, #f59e0b));
  background: var(--nx-warning-soft, rgba(245, 158, 11, 0.12));
  border-radius: var(--nx-radius-full, 9999px);
}

.nx-conv-list-item-sub {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nx-space-2, 0.5rem);
  margin-top: 2px;
}

.nx-conv-list-item-time {
  flex-shrink: 0;
  font-size: var(--nx-text-xs, 0.75rem);
  color: var(--nx-text-muted, #94a3b8);
}

.nx-conv-list-item-actions {
  display: flex;
  align-items: center;
  gap: 2px;
  opacity: 0;
  transition: opacity var(--nx-transition-fast);
}

.nx-conv-list-item:hover .nx-conv-list-item-actions,
.nx-conv-list-item:focus-within .nx-conv-list-item-actions,
.nx-conv-list-item.is-active .nx-conv-list-item-actions { opacity: 1; }

@media (hover: none) {
  .nx-conv-list-item-actions { opacity: 1; }
}

.nx-conv-list-item-btn {
  padding: 0.1875rem 0.375rem;
  font-size: var(--nx-text-xs, 0.75rem);
  font-family: inherit;
  color: var(--nx-text-secondary, #64748b);
  background: transparent;
  border: none;
  border-radius: var(--nx-radius-sm, 6px);
  cursor: pointer;
  transition: background var(--nx-transition-fast), color var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}

.nx-conv-list-item-btn:hover { color: var(--nx-text-heading, #0f172a); background: var(--nx-bg-subtle, rgba(0, 0, 0, 0.04)); }
.nx-conv-list-item-btn:focus-visible { outline: 2px solid var(--nx-accent, var(--nx-primary, #6366f1)); outline-offset: 1px; }

.nx-conv-list-item-btn.is-danger:hover {
  color: var(--nx-danger, #ef4444);
  background: rgba(var(--nx-danger-rgb, 239, 68, 68), 0.1);
}

@media (hover: none) and (pointer: coarse) {
  .nx-conv-list-search-input { font-size: 16px; }
}

/* ===== nexus-components-settings.css ===== */
/* 设置中心（nux-settings-drawer）与自动化管理（nux-automation）共享样式 */
.nx-settings-overlay {
  position: fixed; inset: 0; z-index: var(--nx-z-settings); background: var(--nx-overlay-bg, rgba(15, 32, 50, 0.42));
  backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px);
}
.nx-settings-drawer {
  position: fixed; z-index: var(--nx-z-settings-panel); inset: 0; display: flex; align-items: center; justify-content: center;
  outline: none;
}
.nx-settings-wrap {
  display: flex; width: min(880px, calc(100vw - 32px)); height: min(600px, calc(100vh - 64px)); height: min(600px, calc(100dvh - 64px));
  border-radius: 18px; overflow: hidden; background: var(--nx-bg-surface, #fff);
  box-shadow: 0 24px 64px rgba(15, 32, 50, 0.22);
}
.nx-settings-rail {
  width: 232px; flex: none; display: flex; flex-direction: column; background: var(--nx-bg-secondary, #f3f6fa);
  border-right: 1px solid var(--nx-border, #e4e9f0);
}
.nx-settings-brand {
  display: flex; align-items: center; gap: 10px; padding: 18px 16px 16px;
}
.nx-settings-brand-icon {
  width: 36px; height: 36px; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.12); font-size: 18px;
}
.nx-settings-brand-text { flex: 1; min-width: 0; }
.nx-settings-brand-text strong { display: block; font-size: 14px; color: var(--nx-text-heading, #1f2937); }
.nx-settings-brand-text em { font-style: normal; font-size: 11px; color: var(--nx-text-tertiary, #9aa5b5); }
.nx-settings-close {
  border: none; background: none; font-size: 13px; color: var(--nx-text-tertiary, #9aa5b5);
  width: 28px; height: 28px; border-radius: 8px; cursor: pointer;
}
.nx-settings-close:hover { background: var(--nx-bg-hover, rgba(0, 0, 0, 0.05)); color: var(--nx-text-body, #475569); }
.nx-settings-nav { flex: 1; overflow-y: auto; padding: 4px 10px; }
.nx-settings-nav-item {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  border: none; background: none; border-radius: 12px; padding: 10px 10px; margin-bottom: 2px; cursor: pointer;
}
.nx-settings-nav-ico {
  width: 34px; height: 34px; flex: none; border-radius: 10px; display: flex; align-items: center; justify-content: center;
  font-size: 16px; background: var(--nx-bg-surface, #fff); border: 1px solid var(--nx-border, #e4e9f0);
}
.nx-settings-nav-item.active .nx-settings-nav-ico { background: var(--app-accent, #6366f1); border-color: var(--app-accent, #6366f1); }
.nx-settings-nav-main { min-width: 0; }
.nx-settings-nav-label { display: block; font-size: 13px; font-weight: 600; color: var(--nx-text-heading, #1f2937); }
.nx-settings-nav-desc { display: block; font-size: 11px; color: var(--nx-text-tertiary, #9aa5b5); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-settings-nav-item.active .nx-settings-nav-label { color: var(--app-accent, #6366f1); }
.nx-settings-nav-item.active { background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.08); }
.nx-settings-rail-foot { padding: 12px 16px; font-size: 11px; color: var(--nx-text-tertiary, #9aa5b5); }
.nx-settings-body { flex: 1; min-width: 0; display: flex; flex-direction: column; background: var(--nx-bg-surface, #fff); }
.nx-settings-page-head { padding: 20px 24px 0; }
.nx-settings-page-title { margin: 0; font-size: 17px; color: var(--nx-text-heading, #1f2937); }
.nx-settings-page-desc { margin: 4px 0 0; font-size: 12px; color: var(--nx-text-tertiary, #9aa5b5); }
.nx-settings-page { flex: 1; overflow-y: auto; padding: 14px 24px 24px; }
@media (max-width: 768px) {
  .nx-settings-drawer { align-items: flex-end; }
  .nx-settings-wrap { width: 100vw; height: min(640px, 92dvh); border-radius: 18px 18px 0 0; flex-direction: column; padding-bottom: var(--nx-safe-bottom); }
  .nx-settings-rail { width: 100%; flex-direction: column; border-right: none; border-bottom: 1px solid var(--nx-border, #e4e9f0); flex: none; }
  .nx-settings-brand { padding: 14px 16px 8px; }
  .nx-settings-nav { display: flex; overflow-x: auto; padding: 0 12px 10px; gap: 8px; }
  .nx-settings-nav-item { flex: none; padding: 8px 12px; border-radius: 999px; background: var(--nx-bg-surface, #fff); border: 1px solid var(--nx-border, #e4e9f0); }
  .nx-settings-nav-ico { width: 26px; height: 26px; font-size: 14px; border: none; border-radius: 8px; }
  .nx-settings-nav-desc { display: none; }
  .nx-settings-nav-item.active { background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.1); border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.3); }
  .nx-settings-rail-foot { display: none; }
  .nx-settings-page { padding: 12px 16px 24px; }
}
.nx-settings-fade-enter-active, .nx-settings-fade-leave-active { transition: opacity 0.18s; }
.nx-settings-fade-enter-from, .nx-settings-fade-leave-to { opacity: 0; }
.nx-settings-pop-enter-active, .nx-settings-pop-leave-active { transition: transform 0.22s cubic-bezier(0.2, 0.9, 0.3, 1), opacity 0.2s; }
.nx-settings-pop-enter-from, .nx-settings-pop-leave-to { transform: translateY(14px) scale(0.985); opacity: 0; }

/* 自动化管理 */
.nx-auto { max-width: 560px; margin: 0 auto; }
.nx-auto-loading { display: grid; gap: 12px; }
.nx-auto-skeleton { height: 108px; border-radius: 14px; background: var(--nx-bg-tertiary, #e5eaf1); position: relative; overflow: hidden; }
.nx-auto-skeleton::after {
  content: ''; position: absolute; inset: 0; transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
  animation: nx-auto-shimmer 1.4s infinite;
}
@keyframes nx-auto-shimmer { 100% { transform: translateX(100%); } }
.nx-auto-list { display: grid; gap: 12px; }
.nx-auto-card {
  background: var(--nx-bg-surface, #fff); border: 1px solid var(--nx-border, #e4e9f0);
  border-radius: 14px; padding: 14px 16px;
}
.nx-auto-card-head { display: flex; align-items: center; gap: 10px; }
.nx-auto-ico {
  width: 38px; height: 38px; flex: none; border-radius: 11px; display: flex; align-items: center; justify-content: center;
  font-size: 18px; background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.1);
}
.nx-auto-card-name { flex: 1; min-width: 0; display: flex; align-items: center; gap: 8px; }
.nx-auto-card-name strong { font-size: 14px; color: var(--nx-text-heading, #1f2937); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nx-auto-card-status { font-size: 11px; padding: 2px 8px; border-radius: 999px; flex: none; }
.nx-auto-card-status.on { background: rgba(var(--nx-success-rgb, 16, 185, 129), 0.12); color: var(--nx-success-text, #047857); }
.nx-auto-card-status.off { background: var(--nx-bg-tertiary, #eef1f6); color: var(--nx-text-tertiary, #9aa5b5); }
.nx-auto-switch { position: relative; width: 42px; height: 24px; flex: none; }
.nx-auto-switch input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.nx-auto-switch span { position: absolute; inset: 0; border-radius: 999px; background: var(--nx-switch-track, #d5dce6); transition: background 0.18s; }
.nx-auto-switch span::after {
  content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--nx-text-on-accent, #fff); box-shadow: 0 1px 3px rgba(15, 32, 50, 0.25); transition: transform 0.18s;
}
.nx-auto-switch input:checked + span { background: var(--app-accent, #6366f1); }
.nx-auto-switch input:checked + span::after { transform: translateX(18px); }
.nx-auto-flow { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 8px; }
.nx-auto-flow-node { font-size: 12px; padding: 4px 10px; border-radius: 999px; }
.nx-auto-trigger { background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.07); color: var(--app-accent, #6366f1); border: 1px dashed rgba(var(--app-accent-rgb, 99, 102, 241), 0.35); }
.nx-auto-action { background: var(--nx-bg-tertiary, #eef1f6); color: var(--nx-text-body, #475569); border: 1px solid var(--nx-border, #e4e9f0); }
.nx-auto-flow-arrow { color: var(--nx-text-tertiary, #9aa5b5); font-size: 13px; }
.nx-auto-card-meta { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--nx-text-tertiary, #9aa5b5); }
.nx-auto-dot { width: 6px; height: 6px; border-radius: 50%; }
.nx-auto-dot.ok { background: var(--nx-success, #10b981); }
.nx-auto-dot.err { background: var(--nx-danger, #ef4444); }
.nx-auto-card-actions { display: flex; gap: 8px; margin-top: 10px; }
.nx-auto-act { border: 1px solid var(--nx-border, #e4e9f0); background: var(--nx-bg-surface, #fff); border-radius: 9px; padding: 6px 12px; font-size: 12px; color: var(--nx-text-secondary, #64748b); cursor: pointer; }
.nx-auto-act:hover { border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.4); color: var(--app-accent, #6366f1); }
.nx-auto-act.danger { color: var(--nx-danger, #dc2626); }
.nx-auto-act.danger:hover { border-color: rgba(220, 38, 38, 0.4); color: var(--nx-danger, #dc2626); }
.nx-auto-empty { text-align: center; padding: 40px 20px; }
.nx-auto-empty-icon { font-size: 40px; }
.nx-auto-empty h3 { margin: 12px 0 6px; font-size: 16px; color: var(--nx-text-heading, #1f2937); }
.nx-auto-empty p { margin: 0; font-size: 13px; color: var(--nx-text-tertiary, #9aa5b5); }
.nx-auto-add {
  width: 100%; margin-top: 14px; border: 1px dashed rgba(var(--app-accent-rgb, 99, 102, 241), 0.45);
  background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.05); color: var(--app-accent, #6366f1);
  border-radius: 12px; padding: 12px; font-size: 14px; font-weight: 600; cursor: pointer;
}
.nx-auto-add:hover { background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.1); }
.nx-auto-modal-mask { position: fixed; inset: 0; z-index: var(--nx-z-settings); background: var(--nx-overlay-bg, rgba(15, 32, 50, 0.42)); }
.nx-auto-modal {
  position: fixed; z-index: var(--nx-z-settings-panel); left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: min(460px, calc(100vw - 30px)); max-height: min(620px, 88vh); max-height: min(620px, 88dvh); display: flex; flex-direction: column;
  background: var(--nx-bg-surface, #fff); border-radius: 16px; box-shadow: 0 24px 60px rgba(15, 32, 50, 0.25);
}
.nx-auto-modal-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px 0; }
.nx-auto-modal-head h3 { margin: 0; font-size: 16px; color: var(--nx-text-heading, #1f2937); }
.nx-auto-modal-close { border: none; background: none; font-size: 14px; color: var(--nx-text-tertiary, #9aa5b5); cursor: pointer; padding: 6px; border-radius: 8px; }
.nx-auto-modal-close:hover { background: var(--nx-bg-hover, #eef1f6); }
.nx-auto-modal-body { flex: 1; overflow-y: auto; padding: 14px 18px 4px; }
.nx-auto-step-label { margin: 0 0 10px; font-size: 13px; font-weight: 600; color: var(--nx-text-body, #475569); }
.nx-auto-tpl-grid { display: grid; gap: 10px; }
.nx-auto-tpl {
  display: flex; align-items: center; gap: 12px; text-align: left; padding: 12px;
  border: 1px solid var(--nx-border, #e4e9f0); border-radius: 12px; background: var(--nx-bg-surface, #fff); cursor: pointer;
}
.nx-auto-tpl:hover { border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.45); background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.04); }
.nx-auto-tpl-ico { width: 40px; height: 40px; flex: none; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 19px; background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.1); }
.nx-auto-tpl strong { display: block; font-size: 14px; color: var(--nx-text-heading, #1f2937); }
.nx-auto-tpl em { font-style: normal; font-size: 12px; color: var(--nx-text-tertiary, #9aa5b5); line-height: 1.5; }
.nx-auto-form-field { margin-bottom: 14px; }
.nx-auto-form-field > label { display: block; font-size: 12px; font-weight: 600; color: var(--nx-text-secondary, #64748b); margin-bottom: 6px; }
.nx-auto-form-field input, .nx-auto-form-field select {
  border: 1px solid var(--nx-border, #e4e9f0); border-radius: 10px; padding: 9px 12px;
  font-size: 13px; font-family: inherit; color: var(--nx-text-heading, #1f2937); outline: none; width: 100%; background: var(--nx-bg-surface, #fff);
}
.nx-auto-form-field input:focus, .nx-auto-form-field select:focus { border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.45); box-shadow: 0 0 0 3px rgba(var(--app-accent-rgb, 99, 102, 241), 0.08); }
.nx-auto-presets { display: flex; flex-wrap: wrap; gap: 8px; }
.nx-auto-preset { border: 1px solid var(--nx-border, #e4e9f0); background: var(--nx-bg-surface, #fff); border-radius: 999px; padding: 6px 12px; font-size: 12px; color: var(--nx-text-secondary, #64748b); cursor: pointer; }
.nx-auto-preset.active { border-color: rgba(var(--app-accent-rgb, 99, 102, 241), 0.5); background: rgba(var(--app-accent-rgb, 99, 102, 241), 0.08); color: var(--app-accent, #6366f1); font-weight: 600; }
.nx-auto-custom-trigger { display: flex; align-items: center; gap: 8px; margin-top: 10px; }
.nx-auto-custom-unit { font-size: 12px; color: var(--nx-text-secondary, #64748b); }
.nx-auto-modal-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 12px 18px 16px; }
.nx-auto-btn { border: none; border-radius: 10px; padding: 9px 20px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: inherit; }
.nx-auto-btn.primary { background: var(--app-accent, #6366f1); color: #fff; }
.nx-auto-btn.primary:hover { filter: brightness(1.06); }
.nx-auto-btn.ghost { background: var(--nx-bg-tertiary, #eef1f6); color: var(--nx-text-secondary, #64748b); }
.nx-auto-fade-enter-active, .nx-auto-fade-leave-active { transition: opacity 0.16s; }
.nx-auto-fade-enter-from, .nx-auto-fade-leave-to { opacity: 0; }
.nx-auto-pop-enter-active, .nx-auto-pop-leave-active { transition: transform 0.2s cubic-bezier(0.2, 0.9, 0.3, 1), opacity 0.18s; }
.nx-auto-pop-enter-from, .nx-auto-pop-leave-to { transform: translate(-50%, -46%) scale(0.97); opacity: 0; }
@media (prefers-reduced-motion: reduce) {
  .nx-settings-pop-enter-active, .nx-settings-pop-leave-active,
  .nx-auto-pop-enter-active, .nx-auto-pop-leave-active { transition: none; }
  .nx-auto-skeleton::after { animation: none; }
}

/* 开关轨令牌 --nx-switch-track 已收归 nexus-tokens.css（浅色/暗色双份） */
[data-theme="dark"] .nx-auto-skeleton::after {
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.08), transparent);
}

/* ===== nexus-layout.css ===== */
/* ========== Layout Base ========== */
.nux-layout-sidebar,
.nux-layout-topnav {
    min-height: 100vh;
    min-height: 100dvh;
    min-height: 100dvh;
    min-height: 100dvh;
}

/* ========== Header ========== */
.nux-layout-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: calc(var(--nxs-header-h, 56px) + var(--nx-safe-top, 0px));
    padding-top: var(--nx-safe-top, 0px);
    display: flex;
    align-items: center;
    gap: var(--nx-space-3);
    padding-left: var(--nx-space-4);
    padding-right: var(--nx-space-4);
    background: var(--nx-bg-surface);
    border-bottom: 1px solid var(--nx-border);
    z-index: var(--nx-z-header);
    backdrop-filter: blur(12px);
}

.nux-layout-brand {
    display: flex;
    align-items: center;
    gap: var(--nx-space-2);
    font-weight: 600;
    font-size: var(--nx-text-lg);
    color: var(--nx-text-heading);
}

.nux-layout-brand-icon {
    font-size: 24px;
    line-height: 1;
}

.nux-layout-brand-name {
    white-space: nowrap;
}

.nux-layout-header-actions {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--nx-space-2);
}

/* ========== Sidebar Layout ========== */
.nux-layout-sidebar .nux-layout-aside {
    position: fixed;
    top: calc(var(--nxs-header-h, 56px) + var(--nx-safe-top, 0px));
    left: 0;
    bottom: 0;
    width: var(--nxs-w, 240px);
    display: flex;
    flex-direction: column;
    background: var(--nx-bg-surface);
    border-right: 1px solid var(--nx-border);
    z-index: var(--nx-z-nav);
    transition: transform 0.3s ease;
}

.nux-layout-sidebar .nux-layout-nav {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
}

.nux-layout-sidebar .nux-layout-main {
    margin-left: var(--nxs-w, 240px);
    margin-top: calc(var(--nxs-header-h, 56px) + var(--nx-safe-top, 0px));
    padding: var(--nx-space-6);
    min-height: calc(100vh - var(--nxs-header-h, 56px) - var(--nx-safe-top, 0px));
    min-height: calc(100dvh - var(--nxs-header-h, 56px) - var(--nx-safe-top, 0px));
    min-height: calc(100dvh - var(--nxs-header-h, 56px) - var(--nx-safe-top, 0px));
}

/* ========== TopNav Layout ========== */
.nux-layout-topnav .nux-layout-topnav-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: var(--nx-space-4);
}

.nux-layout-topnav-item {
    padding: var(--nx-space-2) var(--nx-space-3);
    font-size: var(--nx-text-sm);
    color: var(--nx-text-secondary);
    text-decoration: none;
    border-radius: var(--nx-radius-md);
    transition: all var(--nx-transition-fast);
    white-space: nowrap;
}

.nux-layout-topnav-item:hover {
    color: var(--nx-text-heading);
    background: var(--nx-bg-hover);
}

.nux-layout-topnav-item.active {
    color: var(--app-accent, var(--nx-primary));
    background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 10%, transparent);
    font-weight: 500;
}

.nux-layout-topnav-drawer {
    display: none;
    position: fixed;
    top: calc(var(--nxs-header-h, 56px) + var(--nx-safe-top, 0px));
    left: 0;
    bottom: 0;
    width: 280px;
    max-width: 85vw;
    background: var(--nx-bg-surface);
    border-right: 1px solid var(--nx-border);
    z-index: var(--nx-z-nav);
    padding: var(--nx-space-4);
    overflow-y: auto;
    transform: translateX(-100%);
    transition: transform 0.3s ease;
}

.nux-layout-topnav-drawer.open {
    transform: translateX(0);
    z-index: var(--nx-z-drawer);
}

/* ========== Nav Items ========== */
.nux-layout-nav {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--nx-space-2);
}

.nux-layout-nav-group {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nux-layout-nav-group + .nux-layout-nav-group {
    margin-top: var(--nx-space-2);
    padding-top: var(--nx-space-3);
    border-top: 1px solid var(--nx-border);
}

.nux-layout-nav-group-title {
    display: flex;
    align-items: center;
    gap: var(--nx-space-2);
    padding: var(--nx-space-1) var(--nx-space-3) var(--nx-space-2);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 55%, var(--nx-text-secondary));
}

.nux-layout-nav-group-title::before {
    content: "";
    width: 3px;
    height: 12px;
    border-radius: 2px;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 50%, transparent);
}

.nux-layout-nav-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--nx-space-3);
    padding: var(--nx-space-2) var(--nx-space-3);
    font-size: var(--nx-text-sm);
    color: var(--nx-text-secondary);
    text-decoration: none;
    border-radius: var(--nx-radius-md);
    transition: all var(--nx-transition-fast);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.nux-layout-nav-item:hover {
    color: var(--nx-text-heading);
    background: var(--nx-bg-hover);
}

.nux-layout-nav-item.active {
    color: var(--app-accent, var(--nx-primary));
    background: color-mix(in srgb, var(--app-accent, var(--nx-primary)) 10%, transparent);
    font-weight: 500;
}

.nux-layout-nav-item.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 16px;
    border-radius: 2px;
    background: var(--app-accent, var(--nx-primary));
}

.nux-layout-nav-item.active .nux-layout-nav-icon {
    color: var(--app-accent, var(--nx-primary));
}

.nux-layout-nav-icon {
    font-size: 18px;
    line-height: 1;
    width: 24px;
    text-align: center;
    flex-shrink: 0;
}

.nux-layout-nav-icon svg {
    display: block;
    margin: 0 auto;
}

.nux-layout-nav-badge {
    position: absolute;
    top: 10px;
    left: 100%;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: -12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    line-height: 1;
    color: var(--nx-text-on-accent);
    background: var(--nx-danger, #ef4444);
    border-radius: 999px;
    pointer-events: none;
}

/* ========== Headerless (全高侧边栏，应用自带顶栏) ========== */
.nux-layout-sidebar.headerless .nux-layout-aside {
    top: 0;
}

.nux-layout-sidebar.headerless .nux-layout-main {
    margin-top: 0;
    min-height: 100vh;
    min-height: 100dvh;
    min-height: 100dvh;
    min-height: 100dvh;
}

.nux-layout-aside-brand {
    display: flex;
    align-items: center;
    gap: var(--nx-space-2);
    padding: var(--nx-space-4) var(--nx-space-3);
    font-weight: 600;
    font-size: var(--nx-text-lg);
    color: var(--nx-text-heading);
}

/* ========== Responsive ========== */
@media (max-width: 768px) {
    .nux-layout-sidebar .nux-layout-aside {
        transform: translateX(-100%);
    }

    .nux-layout-sidebar .nux-layout-aside.mobile-open {
        transform: translateX(0);
        z-index: var(--nx-z-drawer);
    }

    .nux-layout-sidebar .nux-layout-main {
        margin-left: 0;
        padding: var(--nx-space-4);
    }

    .nux-layout-topnav-drawer {
        display: block;
    }

    .nux-layout-header {
        padding: 0 var(--nx-space-3);
    }

    .nux-layout-brand-name {
        font-size: var(--nx-text-base);
    }
}

/* ========== Mobile topbar overflow containment (S9) ==========
   375 视口顶栏溢出收敛（gezhi 前3 判例平台化）：actions 溢出会让汉堡钮
   被推出视口（移动端导航断链）。契约：brand/label/应用钮依次让位，
   汉堡永不收缩。label 标签让位在 nux-menu-user 组件内。 */
@media (max-width: 480px) {
    .nux-layout-header {
        padding-left: 8px;
        padding-right: 5px;
        gap: var(--nx-space-1);
    }

    .nux-layout-header-actions {
        gap: 2px;
        min-width: 0;
        flex-shrink: 1;
    }

    .nux-layout-header-actions > * {
        min-width: 0;
        flex-shrink: 1;
    }

    .nux-layout-brand {
        min-width: 0;
        flex-shrink: 1;
    }

    .nux-layout-brand-name {
        max-width: 4em;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nux-layout-header-actions .nux-btn {
        white-space: nowrap;
    }

    .nux-layout-header > .nx-hamburger {
        flex-shrink: 0;
    }
}

/* ========== Utility Classes ========== */
/* nx-show-mobile 移动端强制 flex 是有意设计：.nx-hamburger 基础态 display:none，
   依赖此 !important 翻转显示并让其 align/justify 居中生效（全工作区消费者均为汉堡钮）。 */
.nx-show-mobile { display: none !important; }
@media (max-width: 768px) {
    .nx-hide-mobile { display: none !important; }
    .nx-show-mobile { display: flex !important; }
}

/* ========== Sidebar Extras ========== */
.nux-layout-aside.collapsed .nux-layout-nav-item {
    justify-content: center;
    padding-left: var(--nx-space-2);
    padding-right: var(--nx-space-2);
}

.nux-layout-aside.collapsed .nux-layout-nav-group-title {
    display: none;
}

.nux-layout-aside.collapsed .nux-layout-nav-label {
    display: none;
}

.nux-layout-aside-footer {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--nx-space-2);
    border-top: 1px solid var(--nx-border);
}

.nux-layout-collapse-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    border: none;
    border-radius: var(--nx-radius-md);
    background: transparent;
    color: var(--nx-text-secondary);
    cursor: pointer;
    transition: all var(--nx-transition-fast);
}

.nux-layout-collapse-btn:hover {
    color: var(--nx-text-heading);
    background: var(--nx-bg-hover);
}

.nux-layout-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--nx-z-header);
    display: flex;
    background: var(--nx-bg-surface);
    border-top: 1px solid var(--nx-border);
    padding-bottom: var(--nx-safe-bottom);
}

.nux-layout-bottom-nav-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 6px 0 8px;
    min-height: 52px;
    font-size: 12px;
    color: var(--nx-text-muted);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
}

.nux-layout-bottom-nav-item .nux-layout-nav-icon {
    font-size: 20px;
    width: auto;
}

.nux-layout-bottom-nav-item.active {
    color: var(--app-accent, var(--nx-primary));
    font-weight: 500;
}

@media (max-width: 768px) {
    .nx-bottom-nav-mode .nux-layout-aside {
        display: none;
    }

    .nx-bottom-nav-mode .nux-layout-aside.mobile-open {
        display: flex;
        transform: translateX(0);
        z-index: var(--nx-z-drawer);
    }

    .nx-bottom-nav-mode .nux-layout-main {
        padding-bottom: calc(64px + var(--nx-safe-bottom));
    }
}

/* ========== Bottom Nav (独立底栏组件) ========== */
.nux-bottom-nav {
    display: none;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: var(--nx-z-header);
    align-items: stretch;
    justify-content: space-around;
    background: var(--nx-glass-bg, var(--nx-bg-surface));
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-top: 1px solid var(--nx-border);
    padding-bottom: var(--nx-safe-bottom);
    box-shadow: 0 -4px 16px rgba(15, 23, 42, 0.04);
}

.nux-bottom-nav-item {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 48px;
    min-height: 48px;
    padding: 6px 0 8px;
    font-size: 11px;
    line-height: 1.2;
    color: var(--nx-text-secondary);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: none;
    transition: color var(--nx-transition-fast);
    -webkit-tap-highlight-color: transparent;
}

.nux-bottom-nav-item:active { color: var(--app-accent, var(--nx-primary)); }

.nux-bottom-nav-item.active {
    color: var(--app-accent, var(--nx-primary));
    font-weight: 500;
}

.nux-bottom-nav-icon {
    font-size: 20px;
    line-height: 1;
}

.nux-bottom-nav-icon svg {
    display: block;
    margin: 0 auto;
}

.nux-bottom-nav-label {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nux-bottom-nav-badge {
    position: absolute;
    top: 4px;
    left: 50%;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    margin-left: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    line-height: 1;
    color: var(--nx-text-on-accent);
    background: var(--nx-danger, #ef4444);
    border-radius: 999px;
    pointer-events: none;
}

@media (max-width: 768px) {
    .nux-bottom-nav { display: flex; }
}

/* 独立底栏内容避让：nux-layout 体系自动生效，自绘主容器挂 .nx-bottom-nav-safe 显式生效 */
@media (max-width: 768px) {
    body:has(.nux-bottom-nav) .nux-layout-main,
    body:has(.nux-bottom-nav) .nx-bottom-nav-safe {
        padding-bottom: calc(64px + var(--nx-safe-bottom));
    }
}

/* ===== nexus-side-panel.css ===== */
/* ========== nux-side-panel 统一侧栏（工作台/会话列表 + 个性化） ==========
   可覆写变量: --nxsp-accent(品牌色) --nxsp-bg(底色) --nxsp-border --nxsp-w(宽)
   --nxsp-dw(抽屉宽) --nxsp-text --nxsp-text-muted --nxsp-brand-grad(品牌字渐变) */
.nxsp {
    --nxsp-accent: var(--app-accent, var(--nx-primary, #4f6bed));
    --nxsp-bg: var(--nx-bg-surface, #fff);
    --nxsp-border: var(--nx-border, #e6ebf5);
    --nxsp-text: var(--nx-text, #1b2550);
    --nxsp-text-muted: var(--nx-text-secondary, #7d8aa3);
    --nxsp-surface: color-mix(in srgb, var(--nxsp-text) 4%, var(--nxsp-bg));
    --nxsp-tint: color-mix(in srgb, var(--nxsp-accent) 10%, transparent);
    --nxsp-tint-strong: color-mix(in srgb, var(--nxsp-accent) 17%, transparent);
    --nxsp-risk: var(--nx-danger, #d5455c);
    position: relative;
    flex: 0 0 auto;
    width: var(--nxsp-w, 264px);
    color: var(--nxsp-text);
}

.nxsp[data-layout="sticky"] { position: sticky; top: 0; height: 100vh; height: 100dvh; }
.nxsp[data-layout="fill"] { height: 100%; min-height: 0; }

.nxsp-aside {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
    background: var(--nxsp-bg);
    border-right: 1px solid var(--nxsp-border);
}

.nxsp-head { display: flex; align-items: center; gap: 8px; padding: 18px 14px 10px; }
.nxsp-brand {
    display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0;
    padding: 0; border: none; background: none; cursor: pointer; font: inherit; text-align: left;
}
.nxsp-brand-img { width: 30px; height: 30px; border-radius: 9px; flex-shrink: 0; }
.nxsp-brand-ico { font-size: 22px; line-height: 1; flex-shrink: 0; }
.nxsp-brand-name {
    font-size: 18px; font-weight: 800; letter-spacing: .3px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    background: var(--nxsp-brand-grad, var(--nxsp-text));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.nxsp-close {
    width: 34px; height: 34px; flex-shrink: 0; margin-left: auto; border: none; border-radius: 10px;
    background: transparent; color: var(--nxsp-text-muted); font-size: 16px; cursor: pointer;
}
.nxsp-close:hover { background: var(--nxsp-surface); color: var(--nxsp-text); }

.nxsp-action { padding: 14px 12px 10px; }
.nxsp-head + .nxsp-action { padding-top: 2px; }
.nxsp-action-btn {
    display: flex; align-items: center; justify-content: center; gap: 7px;
    width: 100%; min-height: 42px; padding: 0 14px; border-radius: 12px;
    border: 1px solid var(--nxsp-tint-strong); background: var(--nxsp-tint); color: var(--nxsp-accent);
    font-size: 14px; font-weight: 600; font-family: inherit; cursor: pointer;
    transition: background .16s ease, border-color .16s ease;
}
.nxsp-action-btn:hover:not(:disabled) { background: var(--nxsp-tint-strong); }
.nxsp-action-btn:disabled { opacity: .5; cursor: not-allowed; }
.nxsp-action-ico { font-size: 15px; line-height: 1; }

.nxsp-tabs {
    display: flex; flex-wrap: nowrap; gap: 4px; padding: 0 12px 10px;
    overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none;
}
.nxsp-tabs::-webkit-scrollbar { display: none; }
.nxsp-tab {
    flex: 0 0 auto;
    padding: 6px 10px; border: none; border-radius: 9px; background: transparent;
    color: var(--nxsp-text-muted); font-size: 12.5px; font-family: inherit; cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.nxsp-tab:hover { background: var(--nxsp-tint); color: var(--nxsp-accent); }
.nxsp-tab.active { background: var(--nxsp-tint-strong); color: var(--nxsp-accent); font-weight: 600; }

.nxsp-tools { padding: 0 12px 8px; }
.nxsp-tools-actions { display: flex; justify-content: flex-end; }
.nxsp-search {
    display: flex; align-items: center; gap: 7px; padding: 0 10px;
    border: 1px solid var(--nxsp-border); border-radius: 10px; background: var(--nxsp-bg);
    color: var(--nxsp-text-muted);
}
.nxsp-search:focus-within { border-color: var(--nxsp-accent); }
.nxsp-search-input {
    flex: 1; min-width: 0; height: 36px; border: none; outline: none; background: transparent;
    color: var(--nxsp-text); font-size: 13px; font-family: inherit;
}
.nxsp-search-input::-webkit-search-cancel-button { display: none; }
.nxsp-search-clear {
    width: 22px; height: 22px; border: none; border-radius: 6px; background: transparent;
    color: var(--nxsp-text-muted); font-size: 12px; cursor: pointer;
}
.nxsp-search-clear:hover { background: var(--nxsp-surface); color: var(--nxsp-text); }

.nxsp-list { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 2px 10px 8px; }
.nxsp-list::-webkit-scrollbar { width: 4px; }
.nxsp-list::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--nxsp-text) 14%, transparent); border-radius: 2px; }
.nxsp-group-label {
    padding: 8px 8px 4px; font-size: 11px; font-weight: 600; letter-spacing: .4px;
    color: var(--nxsp-text-muted);
}
.nxsp-item {
    display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 9px 10px; margin-bottom: 2px; border: none; border-radius: 10px;
    background: transparent; cursor: pointer; text-align: left; font: inherit; color: inherit;
    transition: background .15s ease;
}
.nxsp-item:hover { background: var(--nxsp-surface); }
.nxsp-item.active { background: var(--nxsp-tint); }
.nxsp-item-ico {
    width: 34px; height: 34px; flex-shrink: 0; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px; color: var(--nx-text-on-accent); background: var(--nxsp-tint-strong);
}
.nxsp-item-ico.is-grad { color: var(--nx-text-on-accent); }
.nxsp-item-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.nxsp-item-title {
    font-size: 13.5px; color: var(--nxsp-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nxsp-item-meta {
    font-size: 11.5px; color: var(--nxsp-text-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nxsp-item.active .nxsp-item-title { color: var(--nxsp-accent); font-weight: 600; }
.nxsp-spin {
    width: 13px; height: 13px; flex-shrink: 0; border-radius: 50%;
    border: 2px solid var(--nxsp-border); border-top-color: var(--nxsp-accent);
    animation: nxsp-spin .8s linear infinite;
}
@keyframes nxsp-spin { to { transform: rotate(360deg); } }
.nxsp-badge {
    flex-shrink: 0; padding: 1px 8px; border-radius: 7px; font-size: 11.5px; font-weight: 600;
    color: var(--nxsp-risk); background: color-mix(in srgb, var(--nxsp-risk) 12%, transparent);
}
.nxsp-del {
    width: 26px; height: 26px; flex-shrink: 0; border-radius: 7px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--nxsp-text-muted); font-size: 12px; opacity: 0;
    transition: opacity .15s ease, background .15s ease, color .15s ease;
}
.nxsp-item:hover .nxsp-del { opacity: 1; }
.nxsp-del:hover { background: color-mix(in srgb, var(--nxsp-risk) 12%, transparent); color: var(--nxsp-risk); }
/* 触屏无 hover：删除按钮常显，避免不可达（照 feedback.css 通知删除按钮的已验证模式） */
@media (hover: none) and (pointer: coarse) {
    .nxsp-del { opacity: 1; }
}

.nxsp-empty {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 30px 18px; text-align: center;
}
.nxsp-empty-ico { font-size: 22px; color: var(--nxsp-text-muted); opacity: .7; }
.nxsp-empty-title { font-size: 12.5px; color: var(--nxsp-text-muted); }
.nxsp-empty-text { font-size: 12px; color: var(--nxsp-text-muted); opacity: .85; line-height: 1.6; }

.nxsp-skeleton { padding: 4px 2px; }
.nxsp-skeleton-line {
    height: 44px; margin-bottom: 6px; border-radius: 10px;
    background: linear-gradient(90deg, var(--nxsp-surface) 25%, color-mix(in srgb, var(--nxsp-text) 7%, transparent) 37%, var(--nxsp-surface) 63%);
    background-size: 400% 100%;
    animation: nxsp-shimmer 1.4s ease infinite;
}
@keyframes nxsp-shimmer { 0% { background-position: 100% 0; } 100% { background-position: 0 0; } }

.nxsp-personal {
    margin: 6px 12px 0; padding: 10px 10px 8px; border-radius: 14px;
    background: linear-gradient(180deg, var(--nxsp-tint), transparent 92%), var(--nxsp-bg);
    border: 1px solid var(--nxsp-tint-strong);
}
.nxsp-personal-head { display: flex; align-items: center; gap: 6px; padding: 0 4px 6px; }
.nxsp-personal:last-child { margin-bottom: calc(12px + var(--nx-safe-bottom)); }
.nxsp-personal-dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--nxsp-accent); box-shadow: 0 0 0 3px var(--nxsp-tint);
}
.nxsp-personal-title { font-size: 12px; font-weight: 700; letter-spacing: .5px; color: var(--nxsp-accent); }
.nxsp-personal-item {
    display: flex; align-items: center; gap: 9px; width: 100%;
    padding: 8px; border: none; border-radius: 10px; background: transparent;
    cursor: pointer; text-align: left; font: inherit; color: inherit;
    transition: background .15s ease;
}
.nxsp-personal-item:hover { background: var(--nxsp-tint); }
.nxsp-personal-ico {
    width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center; font-size: 15px;
    background: color-mix(in srgb, var(--nxsp-accent) 12%, var(--nxsp-bg));
}
.nxsp-personal-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.nxsp-personal-name {
    display: flex; align-items: center; gap: 6px;
    font-size: 13px; font-weight: 600; color: var(--nxsp-text);
}
.nxsp-personal-badge {
    flex-shrink: 0; padding: 1px 7px; border-radius: 999px; font-size: 12px; font-weight: 600;
    font-style: normal; color: var(--nx-text-on-accent); background: var(--nxsp-accent);
}
.nxsp-personal-desc {
    font-size: 12px; color: var(--nxsp-text-muted);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nxsp-personal-arrow { flex-shrink: 0; color: var(--nxsp-text-muted); font-size: 15px; line-height: 1; }

.nxsp-foot {
    display: flex; align-items: center; gap: 8px;
    margin-top: 8px; padding: 12px 14px calc(12px + var(--nx-safe-bottom));
    border-top: 1px solid var(--nxsp-border);
}
.nxsp-user-name {
    flex: 1; min-width: 0; font-size: 13px; color: var(--nxsp-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.nxsp-foot-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }

.nxsp-mask {
    position: fixed; inset: 0; z-index: var(--nx-z-side-mask);
    background: var(--nx-overlay-bg, rgba(15, 23, 42, .42));
    opacity: 0; pointer-events: none; transition: opacity .26s ease;
}
.nxsp-mask.open { opacity: 1; pointer-events: auto; }

.nxsp.is-compact { width: 0; }
.nxsp.is-compact[data-layout="sticky"], .nxsp.is-compact[data-layout="fill"] { position: static; height: auto; }
.nxsp.is-compact .nxsp-aside {
    position: fixed; top: 0; left: 0; z-index: var(--nx-z-side-panel);
    width: min(var(--nxsp-dw, 288px), 86vw);
    height: var(--nxsp-h, 100dvh); min-height: 0;
    border-right: 1px solid var(--nxsp-border);
    box-shadow: 0 18px 44px rgba(15, 23, 42, .18);
    transform: translateX(-101%); visibility: hidden;
    transition: transform .26s cubic-bezier(.4, 0, .2, 1), visibility .26s;
}
.nxsp.is-compact .nxsp-aside.open { transform: translateX(0); visibility: visible; }
.nxsp.is-compact .nxsp-head { padding-top: calc(16px + var(--nx-safe-top)); }
.nxsp.is-compact .nxsp-list { -webkit-overflow-scrolling: touch; }
.nxsp.is-compact .nxsp-del { opacity: 1; }


.nxsp button:focus-visible, .nxsp input:focus-visible, .nxsp [role="button"]:focus-visible {
    outline: 2px solid var(--nxsp-accent); outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    .nxsp-aside, .nxsp-item, .nxsp-tab, .nxsp-personal-item, .nxsp-action-btn, .nxsp-mask { transition: none; }
    .nxsp-skeleton-line, .nxsp-spin { animation: none; }
}

/* ===== nexus-markdown.css ===== */
.nx-md,
.nx-chat-content {
    line-height: 1.7;
    color: var(--nx-text-body, rgb(30, 41, 59));
    word-wrap: break-word;
    overflow-wrap: break-word;
    font-size: var(--nx-text-base, 0.95rem);
}

.nx-md p,
.nx-chat-content p {
    margin: 0 0 var(--nx-space-3, 0.75rem) 0;
}

.nx-md p:last-child,
.nx-chat-content p:last-child {
    margin-bottom: 0;
}

/* 流式分块渲染（nexus-streamdown）接缝补偿：稳定区尾块被上方的
   last-child 规则归零了下边距，恢复块间距使其与单容器渲染一致。 */
.nx-md .nx-md-stream-stable:not(:empty) > :last-child {
    margin-bottom: var(--nx-space-3, 0.75rem);
}

.nx-md h1, .nx-md h2, .nx-md h3, .nx-md h4, .nx-md h5, .nx-md h6,
.nx-chat-content h1, .nx-chat-content h2, .nx-chat-content h3,
.nx-chat-content h4, .nx-chat-content h5, .nx-chat-content h6 {
    margin: var(--nx-space-4, 1rem) 0 var(--nx-space-2, 0.5rem) 0;
    font-weight: 600;
    color: var(--nx-text-heading, rgb(15, 23, 42));
    line-height: 1.4;
}

.nx-md h1, .nx-chat-content h1 { font-size: 1.5rem; }
.nx-md h2, .nx-chat-content h2 { font-size: 1.3rem; }
.nx-md h3, .nx-chat-content h3 { font-size: 1.15rem; }
.nx-md h4, .nx-chat-content h4 { font-size: 1.05rem; }
.nx-md h5, .nx-chat-content h5 { font-size: 0.95rem; }
.nx-md h6, .nx-chat-content h6 { font-size: 0.9rem; }

.nx-md ul, .nx-md ol,
.nx-chat-content ul, .nx-chat-content ol {
    margin: 0 0 var(--nx-space-3, 0.75rem) 0;
    padding-left: 1.5rem;
}

.nx-md li,
.nx-chat-content li {
    margin: 0.25rem 0;
}

.nx-md li > p,
.nx-chat-content li > p {
    margin: 0;
}

.nx-md a,
.nx-chat-content a {
    color: var(--nx-accent, rgb(79, 70, 229));
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color 0.15s;
}

.nx-md a:hover,
.nx-chat-content a:hover {
    color: var(--nx-accent-hover, rgb(67, 56, 202));
    text-decoration-thickness: 2px;
}

.nx-md blockquote,
.nx-chat-content blockquote {
    margin: var(--nx-space-3, 0.75rem) 0;
    padding: var(--nx-space-2, 0.5rem) var(--nx-space-4, 1rem);
    border-left: 3px solid var(--nx-border-strong, rgb(148, 163, 184));
    background: var(--nx-bg-subtle, rgb(241, 245, 249));
    color: var(--nx-text-muted, rgb(71, 85, 105));
    border-radius: 0 var(--nx-radius-sm, 0.375rem) var(--nx-radius-sm, 0.375rem) 0;
}

.nx-md blockquote p,
.nx-chat-content blockquote p {
    margin: 0;
}

.nx-md code,
.nx-chat-content code {
    padding: 0.125rem 0.375rem;
    background: var(--nx-bg-subtle, rgb(241, 245, 249));
    color: var(--nx-danger, rgb(190, 18, 60));
    border-radius: var(--nx-radius-sm, 0.375rem);
    font-family: var(--nx-font-mono, 'SF Mono', Monaco, monospace);
    font-size: 0.875em;
    word-break: break-word;
}

.nx-md pre,
.nx-chat-content pre {
    margin: var(--nx-space-3, 0.75rem) 0;
    padding: var(--nx-space-4, 1rem);
    /* 恒暗代码面：代码块设计意图=常暗底配浅白代码字（atom-one-dark 高亮），不随主题翻面 */
    background: var(--nx-code-block-bg, #16202f);
    border-radius: var(--nx-radius-md, 0.5rem);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    position: relative;
}

.nx-md pre code,
.nx-chat-content pre code {
    padding: 0;
    background: transparent;
    color: rgb(226, 232, 240);
    font-size: 0.875rem;
    line-height: 1.5;
    word-break: normal;
    white-space: pre;
}

.nx-md table,
.nx-chat-content table {
    width: 100%;
    margin: var(--nx-space-3, 0.75rem) 0;
    border-collapse: collapse;
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    border-radius: var(--nx-radius-sm, 0.375rem);
}

.nx-md th, .nx-md td,
.nx-chat-content th, .nx-chat-content td {
    padding: var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    text-align: left;
    white-space: nowrap;
}

.nx-md th,
.nx-chat-content th {
    background: var(--nx-bg-subtle, rgb(241, 245, 249));
    font-weight: 600;
    color: var(--nx-text-heading, rgb(15, 23, 42));
}

.nx-md td,
.nx-chat-content td {
    color: var(--nx-text-body, rgb(30, 41, 59));
}

.nx-md hr,
.nx-chat-content hr {
    margin: var(--nx-space-4, 1rem) 0;
    border: none;
    border-top: 1px solid var(--nx-border, rgb(226, 232, 240));
}

.nx-md img,
.nx-chat-content img {
    max-width: 100%;
    border-radius: var(--nx-radius-sm, 0.375rem);
    margin: var(--nx-space-2, 0.5rem) 0;
}

.nx-md del,
.nx-chat-content del {
    color: var(--nx-text-muted, rgb(148, 163, 184));
}

.nx-md kbd,
.nx-chat-content kbd {
    padding: 0.125rem 0.375rem;
    background: var(--nx-bg-subtle, rgb(241, 245, 249));
    border: 1px solid var(--nx-border, rgb(203, 213, 225));
    border-bottom-width: 2px;
    border-radius: var(--nx-radius-sm, 0.375rem);
    font-family: var(--nx-font-mono, 'SF Mono', Monaco, monospace);
    font-size: 0.85em;
    color: var(--nx-text-heading, rgb(15, 23, 42));
}

.nx-md mark,
.nx-chat-content mark {
    background: rgba(250, 204, 21, 0.3);
    color: inherit;
    padding: 0.05rem 0.2rem;
    border-radius: 2px;
}

.nx-md details,
.nx-chat-content details {
    margin: var(--nx-space-3, 0.75rem) 0;
    padding: var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    border-radius: var(--nx-radius-sm, 0.375rem);
    background: var(--nx-bg-subtle, rgb(241, 245, 249));
}

.nx-md summary,
.nx-chat-content summary {
    cursor: pointer;
    font-weight: 500;
    color: var(--nx-text-heading, rgb(15, 23, 42));
    user-select: none;
}

.nx-md input[type="checkbox"],
.nx-chat-content input[type="checkbox"] {
    margin-right: 0.375rem;
    vertical-align: middle;
}

.nx-md-copy {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    padding: 0.25rem 0.625rem;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: rgb(226, 232, 240);
    border-radius: var(--nx-radius-sm, 0.375rem);
    font-size: 0.75rem;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.15s, background 0.15s;
    font-family: inherit;
}

.nx-md pre:hover .nx-md-copy,
.nx-chat-content pre:hover .nx-md-copy {
    opacity: 1;
}

.nx-md-copy:hover {
    background: rgba(255, 255, 255, 0.2);
}

.nx-md-lang {
    position: absolute;
    top: 0.5rem;
    left: 0.75rem;
    font-size: 0.75rem;
    color: rgb(148, 163, 184);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: var(--nx-font-mono, 'SF Mono', Monaco, monospace);
    pointer-events: none;
}

@media (max-width: 768px) {
    .nx-md, .nx-chat-content { font-size: 0.9rem; }
    .nx-md pre, .nx-chat-content pre { padding: var(--nx-space-3, 0.75rem); font-size: 0.8rem; }
    .nx-md pre code, .nx-chat-content pre code { font-size: 0.8rem; }
    .nx-md table, .nx-chat-content table { font-size: 0.85rem; }
    .nx-md h1, .nx-chat-content h1 { font-size: 1.3rem; }
    .nx-md h2, .nx-chat-content h2 { font-size: 1.15rem; }
    .nx-md h3, .nx-chat-content h3 { font-size: 1.05rem; }
    .nx-md-copy { opacity: 1; }
}

[data-theme="dark"] .nx-md,
[data-theme="dark"] .nx-chat-content {
    color: var(--nx-text-body);
}

[data-theme="dark"] .nx-md h1, [data-theme="dark"] .nx-md h2, [data-theme="dark"] .nx-md h3,
[data-theme="dark"] .nx-md h4, [data-theme="dark"] .nx-md h5, [data-theme="dark"] .nx-md h6,
[data-theme="dark"] .nx-chat-content h1, [data-theme="dark"] .nx-chat-content h2,
[data-theme="dark"] .nx-chat-content h3, [data-theme="dark"] .nx-chat-content h4,
[data-theme="dark"] .nx-chat-content h5, [data-theme="dark"] .nx-chat-content h6 {
    color: var(--nx-text-heading);
}

[data-theme="dark"] .nx-md code,
[data-theme="dark"] .nx-chat-content code {
    background: rgba(148, 163, 184, 0.18);
    color: rgb(252, 165, 165);
}

[data-theme="dark"] .nx-md blockquote,
[data-theme="dark"] .nx-chat-content blockquote {
    background: rgba(148, 163, 184, 0.1);
    color: var(--nx-text-muted);
    border-left-color: rgb(100, 116, 139);
}

[data-theme="dark"] .nx-md th,
[data-theme="dark"] .nx-chat-content th {
    background: rgba(148, 163, 184, 0.15);
    color: var(--nx-text-heading);
}

[data-theme="dark"] .nx-md td,
[data-theme="dark"] .nx-chat-content td {
    color: var(--nx-text-body);
}

@media (prefers-color-scheme: dark) {
    /* 无 data-theme（跟随系统）时令牌层仍是浅色值：作用域内补暗色覆盖，令下方标准令牌引用成立 */
    :root:not([data-theme="light"]) .nx-md,
    :root:not([data-theme="light"]) .nx-chat-content {
        --nx-text-body: #cbd5e1;
        --nx-text-heading: #f1f5f9;
        --nx-text-muted: #96a6ba;
        color: var(--nx-text-body);
    }
    :root:not([data-theme="light"]) .nx-md h1,
    :root:not([data-theme="light"]) .nx-md h2,
    :root:not([data-theme="light"]) .nx-md h3,
    :root:not([data-theme="light"]) .nx-md h4,
    :root:not([data-theme="light"]) .nx-md h5,
    :root:not([data-theme="light"]) .nx-md h6,
    :root:not([data-theme="light"]) .nx-chat-content h1,
    :root:not([data-theme="light"]) .nx-chat-content h2,
    :root:not([data-theme="light"]) .nx-chat-content h3,
    :root:not([data-theme="light"]) .nx-chat-content h4,
    :root:not([data-theme="light"]) .nx-chat-content h5,
    :root:not([data-theme="light"]) .nx-chat-content h6 {
        color: var(--nx-text-heading);
    }
    :root:not([data-theme="light"]) .nx-md code,
    :root:not([data-theme="light"]) .nx-chat-content code {
        background: rgba(148, 163, 184, 0.18);
        color: rgb(252, 165, 165);
    }
}

/* ===== nexus-chat.css ===== */
.nx-chat-error {
    display: flex;
    align-items: center;
    gap: var(--nx-space-2, 0.5rem);
    padding: var(--nx-space-3, 0.75rem) var(--nx-space-4, 1rem);
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.3);
    color: var(--nx-danger, rgb(190, 18, 60));
    border-radius: var(--nx-radius-md, 0.5rem);
    font-size: var(--nx-text-sm, 0.875rem);
    line-height: 1.5;
}

.nx-chat-error svg {
    flex-shrink: 0;
    color: var(--nx-danger, rgb(190, 18, 60));
}

.nx-chat-error span {
    flex: 1;
    word-break: break-word;
}

.nx-chat-retry {
    flex-shrink: 0;
    padding: 0.25rem 0.75rem;
    background: rgba(190, 18, 60, 0.1);
    border: 1px solid rgba(190, 18, 60, 0.4);
    color: var(--nx-danger, rgb(190, 18, 60));
    border-radius: var(--nx-radius-sm, 0.375rem);
    font-size: var(--nx-text-xs, 0.75rem);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s ease;
}

.nx-chat-retry:hover {
    background: rgba(190, 18, 60, 0.18);
    border-color: rgba(190, 18, 60, 0.6);
}

.nx-chat-retry:active {
    transform: scale(0.96);
}

@media (hover: none) and (pointer: coarse) {
    .nx-chat-retry {
        min-height: 44px;
        font-size: var(--nx-text-sm, 0.875rem);
    }
}

.nx-chat-streaming {
    background: rgba(190, 18, 60, 0.08) !important;
    border-color: rgba(190, 18, 60, 0.4) !important;
    color: var(--nx-danger, rgb(190, 18, 60)) !important;
}

.nx-chat-typing-cursor {
    display: inline-block;
    width: 7px;
    height: 1em;
    background: var(--nx-accent, rgb(79, 70, 229));
    margin-left: 2px;
    vertical-align: text-bottom;
    border-radius: 1px;
    animation: nx-chat-blink 1s steps(2) infinite;
}

@keyframes nx-chat-blink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}

/* ===== nexus-ai-chat.css ===== */
.nx-ai-chat {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 400px;
    background: var(--nx-bg-page, transparent);
    position: relative;
}

.nx-ai-chat-messages {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: var(--nx-space-4, 1rem);
    scroll-behavior: auto;
    -webkit-overflow-scrolling: touch;
}

.nx-ai-chat-list {
    max-width: 880px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: var(--nx-space-4, 1rem);
}

.nx-ai-chat-welcome {
    text-align: center;
    padding: var(--nx-space-12, 3rem) var(--nx-space-4, 1rem);
    max-width: 560px;
    margin: 0 auto;
}

.nx-ai-chat-welcome-icon {
    font-size: 2.25rem;
    line-height: 1;
    width: 72px;
    height: 72px;
    margin: 0 auto var(--nx-space-3, 0.75rem);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--nx-accent-soft, rgba(79, 70, 229, 0.08));
    border-radius: 1.5rem;
    border: 1px solid var(--nx-accent-soft, rgba(79, 70, 229, 0.16));
}

.nx-ai-chat-welcome-title {
    font-size: var(--nx-text-xl, 1.25rem);
    font-weight: 600;
    color: var(--nx-text-heading, rgb(15, 23, 42));
    margin: 0 0 var(--nx-space-2, 0.5rem);
}

.nx-ai-chat-welcome-desc {
    font-size: var(--nx-text-base, 0.95rem);
    color: var(--nx-text-secondary, rgb(100, 116, 139));
    margin: 0 0 var(--nx-space-6, 1.5rem);
    line-height: 1.6;
}

.nx-ai-chat-quick {
    display: flex;
    flex-wrap: wrap;
    gap: var(--nx-space-2, 0.5rem);
    justify-content: center;
}

.nx-ai-chat-quick-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.5rem 0.875rem;
    background: var(--nx-bg-secondary, rgb(241, 245, 249));
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    color: var(--nx-text-body, rgb(30, 41, 59));
    border-radius: var(--nx-radius-lg, 0.75rem);
    font-size: var(--nx-text-sm, 0.875rem);
    cursor: pointer;
    transition: all 0.15s;
    line-height: 1.4;
}

.nx-ai-chat-quick-btn:hover {
    background: var(--nx-accent-soft, rgba(79, 70, 229, 0.08));
    border-color: var(--nx-accent, rgb(79, 70, 229));
    color: var(--nx-accent, rgb(79, 70, 229));
}

.nx-ai-chat-quick-btn:focus-visible,
.nx-ai-chat-btn:focus-visible,
.nx-ai-chat-action-btn:focus-visible,
.nx-ai-chat-retry-btn:focus-visible,
.nx-ai-chat-reasoning-toggle:focus-visible {
    outline: 2px solid var(--nx-accent, rgb(79, 70, 229));
    outline-offset: 2px;
}

.nx-ai-chat-quick-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.nx-ai-chat-quick-icon {
    font-size: 1rem;
    line-height: 1;
}

.nx-ai-chat-msg {
    display: flex;
    gap: var(--nx-space-3, 0.75rem);
    align-items: flex-start;
}

.nx-ai-chat-avatar {
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    background: var(--nx-bg-secondary, rgb(241, 245, 249));
    line-height: 1;
}

.nx-ai-chat-user .nx-ai-chat-avatar {
    background: var(--nx-accent-soft, rgba(79, 70, 229, 0.1));
}

.nx-ai-chat-main {
    flex: 1;
    min-width: 0;
    max-width: calc(100% - 48px);
}

.nx-ai-chat-meta {
    display: flex;
    align-items: center;
    gap: var(--nx-space-2, 0.5rem);
    margin-bottom: 0.25rem;
}

.nx-ai-chat-name {
    font-size: var(--nx-text-xs, 0.75rem);
    font-weight: 500;
    color: var(--nx-text-secondary, rgb(100, 116, 139));
}

.nx-ai-chat-aitag {
    font-size: 0.625rem;
    padding: 1px 6px;
    background: var(--nx-accent-soft, rgba(79, 70, 229, 0.1));
    color: var(--nx-accent, rgb(79, 70, 229));
    border-radius: var(--nx-radius-sm, 0.25rem);
    font-weight: 500;
    letter-spacing: 0.025em;
}

.nx-ai-chat-bubble {
    display: inline-block;
    max-width: 100%;
    padding: var(--nx-space-3, 0.75rem) var(--nx-space-4, 1rem);
    border-radius: var(--nx-radius-lg, 0.75rem);
    line-height: 1.6;
    word-wrap: break-word;
    overflow-wrap: break-word;
    position: relative;
}

.nx-ai-chat-user .nx-ai-chat-bubble {
    background: var(--nx-accent, rgb(79, 70, 229));
    color: var(--nx-text-on-accent, #ffffff);
    border-bottom-right-radius: var(--nx-radius-sm, 0.25rem);
}

.nx-ai-chat-assistant .nx-ai-chat-bubble {
    background: var(--nx-bg-secondary, rgb(241, 245, 249));
    color: var(--nx-text-body, rgb(30, 41, 59));
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    border-bottom-left-radius: var(--nx-radius-sm, 0.25rem);
}

.nx-ai-chat-content {
    font-size: var(--nx-text-base, 0.95rem);
}

.nx-ai-chat-content :first-child {
    margin-top: 0;
}

.nx-ai-chat-content :last-child {
    margin-bottom: 0;
}

.nx-ai-chat-user .nx-ai-chat-bubble .nx-ai-chat-content {
    color: var(--nx-text-on-accent, #ffffff);
}

.nx-ai-chat-user .nx-ai-chat-bubble .nx-ai-chat-content a {
    color: var(--nx-text-on-accent, #ffffff);
    text-decoration: underline;
}

.nx-ai-chat-cursor {
    display: inline-block;
    width: 7px;
    height: 1em;
    background: var(--nx-accent, rgb(79, 70, 229));
    margin-left: 2px;
    vertical-align: text-bottom;
    border-radius: 1px;
    animation: nx-ai-chat-blink 1s steps(2) infinite;
}

@keyframes nx-ai-chat-blink {
    0%, 50% { opacity: 1; }
    51%, 100% { opacity: 0; }
}

.nx-ai-chat-typing {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
}

.nx-ai-chat-thinking {
    font-style: normal;
    font-size: var(--nx-text-sm, 0.875rem);
    color: var(--nx-text-muted, rgb(148, 163, 184));
    letter-spacing: 0.02em;
}

.nx-ai-chat-typing span {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--nx-text-muted, rgb(148, 163, 184));
    animation: nx-ai-chat-typing 1.4s infinite;
}

.nx-ai-chat-typing span:nth-child(2) { animation-delay: 0.2s; }
.nx-ai-chat-typing span:nth-child(3) { animation-delay: 0.4s; }

@keyframes nx-ai-chat-typing {
    0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
    30% { transform: translateY(-6px); opacity: 1; }
}

.nx-ai-chat-error-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--nx-space-2, 0.5rem);
    margin-top: var(--nx-space-2, 0.5rem);
    padding: 0.5rem 0.75rem;
    background: rgba(239, 68, 68, 0.08);
    border: 1px solid rgba(239, 68, 68, 0.3);
    border-radius: var(--nx-radius-md, 0.5rem);
    color: var(--nx-danger, rgb(190, 18, 60));
    font-size: var(--nx-text-sm, 0.875rem);
}

.nx-ai-chat-retry-btn {
    background: transparent;
    border: 1px solid currentColor;
    color: inherit;
    padding: 0.25rem 0.625rem;
    border-radius: var(--nx-radius-sm, 0.25rem);
    font-size: var(--nx-text-xs, 0.75rem);
    cursor: pointer;
    transition: opacity 0.15s;
}

.nx-ai-chat-retry-btn:hover {
    opacity: 0.8;
}

.nx-ai-chat-actions {
    display: flex;
    gap: var(--nx-space-2, 0.5rem);
    margin-top: 0.375rem;
    opacity: 0;
    transition: opacity 0.15s;
}

.nx-ai-chat-msg:hover .nx-ai-chat-actions,
.nx-ai-chat-msg:focus-within .nx-ai-chat-actions {
    opacity: 1;
}

@media (hover: none) {
    .nx-ai-chat-actions {
        opacity: 1;
    }
}

.nx-ai-chat-action-btn {
    background: transparent;
    border: none;
    color: var(--nx-text-muted, rgb(148, 163, 184));
    font-size: var(--nx-text-xs, 0.75rem);
    cursor: pointer;
    padding: 2px 6px;
    border-radius: var(--nx-radius-sm, 0.25rem);
    transition: all 0.15s;
}

.nx-ai-chat-action-btn:hover {
    color: var(--nx-text-body, rgb(30, 41, 59));
    background: var(--nx-bg-tertiary, rgba(0, 0, 0, 0.04));
}

.nx-ai-chat-scroll-btn {
    position: absolute;
    right: var(--nx-space-4, 1rem);
    bottom: 120px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--nx-bg-elevated, rgb(255, 255, 255));
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    box-shadow: var(--nx-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.1));
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--nx-text-secondary, rgb(100, 116, 139));
    z-index: 10;
    transition: all 0.15s;
}

.nx-ai-chat-scroll-btn:hover {
    color: var(--nx-accent, rgb(79, 70, 229));
    border-color: var(--nx-accent, rgb(79, 70, 229));
}

.nx-ai-chat-scroll-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: var(--nx-accent, rgb(79, 70, 229));
    color: var(--nx-text-on-accent, #fff);
    border-radius: 9px;
    font-size: 0.6875rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.nx-ai-chat-fab-enter-active, .nx-ai-chat-fab-leave-active {
    transition: all 0.2s;
}

.nx-ai-chat-fab-enter-from, .nx-ai-chat-fab-leave-to {
    opacity: 0;
    transform: translateY(8px) scale(0.8);
}

.nx-ai-chat-input-wrap {
    flex-shrink: 0;
    padding: var(--nx-space-3, 0.75rem) var(--nx-space-4, 1rem);
    background: var(--nx-bg-elevated, rgb(255, 255, 255));
    border-top: 1px solid var(--nx-border, rgb(226, 232, 240));
    max-width: 880px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.nx-ai-chat-input-row {
    display: flex;
    gap: var(--nx-space-2, 0.5rem);
    align-items: flex-end;
    max-width: 100%;
}

.nx-ai-chat-status {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0.25rem 0.5rem;
    color: var(--nx-text-muted, rgb(148, 163, 184));
    font-size: var(--nx-text-sm, 0.8125rem);
}

.nx-ai-chat-status-spinner {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    border: 2px solid var(--nx-accent-soft, rgba(79, 70, 229, 0.3));
    border-top-color: var(--nx-accent, rgb(79, 70, 229));
    border-radius: 50%;
    animation: nx-ai-chat-spin 0.8s linear infinite;
}

@keyframes nx-ai-chat-spin {
    to { transform: rotate(360deg); }
}

.nx-ai-chat-input {
    flex: 1;
    min-height: 44px;
    max-height: 144px;
    padding: 0.625rem 0.875rem;
    background: var(--nx-bg-page, rgb(248, 250, 252));
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    border-radius: var(--nx-radius-lg, 0.75rem);
    font-size: 16px;
    font-family: inherit;
    line-height: 1.5;
    color: var(--nx-text-body, rgb(30, 41, 59));
    resize: none;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    box-sizing: border-box;
}

.nx-ai-chat-input:focus {
    border-color: var(--nx-accent, rgb(79, 70, 229));
    box-shadow: 0 0 0 3px var(--nx-accent-soft, rgba(79, 70, 229, 0.1));
}

.nx-ai-chat-input:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.nx-ai-chat-input::placeholder {
    color: var(--nx-text-muted, rgb(148, 163, 184));
}

.nx-ai-chat-btn {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: var(--nx-radius-lg, 0.75rem);
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    padding: 0;
}

.nx-ai-chat-send {
    background: var(--nx-accent, rgb(79, 70, 229));
    color: var(--nx-text-on-accent, #fff);
}

.nx-ai-chat-send:hover:not(:disabled) {
    filter: brightness(1.1);
}

.nx-ai-chat-send:disabled {
    background: var(--nx-bg-tertiary, rgb(203, 213, 225));
    cursor: not-allowed;
}

.nx-ai-chat-send.is-empty {
    background: var(--nx-bg-tertiary, rgb(203, 213, 225));
    cursor: not-allowed;
}

.nx-ai-chat-stop {
    background: var(--nx-danger, rgb(220, 38, 38));
    color: var(--nx-text-on-accent, #fff);
}

.nx-ai-chat-stop:hover {
    filter: brightness(1.1);
}

[data-theme="dark"] .nx-ai-chat-assistant .nx-ai-chat-bubble {
    background: var(--nx-bg-secondary, rgb(30, 41, 59));
    color: var(--nx-text-body, rgb(226, 232, 240));
    border-color: var(--nx-border, rgb(51, 65, 85));
}

[data-theme="dark"] .nx-ai-chat-input {
    background: var(--nx-bg-secondary, rgb(30, 41, 59));
    color: var(--nx-text-body, rgb(226, 232, 240));
    border-color: var(--nx-border, rgb(51, 65, 85));
}

[data-theme="dark"] .nx-ai-chat-input-wrap {
    background: var(--nx-bg-elevated, rgb(15, 23, 42));
    border-color: var(--nx-border, rgb(51, 65, 85));
}

[data-theme="dark"] .nx-ai-chat-scroll-btn {
    background: var(--nx-bg-elevated, rgb(30, 41, 59));
    border-color: var(--nx-border, rgb(51, 65, 85));
    color: var(--nx-text-secondary, rgb(148, 163, 184));
}

[data-theme="dark"] .nx-ai-chat-avatar {
    background: var(--nx-bg-secondary, rgb(30, 41, 59));
}

[data-theme="dark"] .nx-ai-chat-quick-btn {
    background: var(--nx-bg-secondary, rgb(30, 41, 59));
    border-color: var(--nx-border, rgb(51, 65, 85));
    color: var(--nx-text-body, rgb(226, 232, 240));
}

@media (max-width: 768px) {
    .nx-ai-chat {
        min-height: 0;
        height: 100%;
    }

    .nx-ai-chat-messages {
        padding: var(--nx-space-3, 0.75rem);
    }

    .nx-ai-chat-input-wrap {
        padding: var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
        padding-bottom: calc(var(--nx-space-2, 0.5rem) + var(--nx-safe-bottom, 0px));
    }

    .nx-ai-chat-welcome {
        padding: var(--nx-space-8, 2rem) var(--nx-space-3, 0.75rem);
    }

    .nx-ai-chat-avatar {
        width: 32px;
        height: 32px;
        font-size: 1.125rem;
    }

    .nx-ai-chat-main {
        max-width: calc(100% - 40px);
    }

    .nx-ai-chat-bubble {
        padding: var(--nx-space-2, 0.5rem) var(--nx-space-3, 0.75rem);
    }

    .nx-ai-chat-scroll-btn {
        right: var(--nx-space-3, 0.75rem);
        bottom: calc(100px + var(--nx-safe-bottom, 0px));
    }

    .nx-ai-chat-action-btn {
        min-height: 40px;
        min-width: 40px;
    }

    .nx-ai-chat-retry-btn {
        min-height: 40px;
        padding: 0.25rem 0.875rem;
    }

    .nx-ai-chat-quick-btn {
        padding: 0.625rem 1rem;
    }
}

/* 移动端安全区（非移动媒体查询也会兜底注入） */
.nx-ai-chat-input-wrap {
    padding-bottom: calc(var(--nx-space-3, 0.75rem) + var(--nx-safe-bottom, 0px));
}

/* 键盘避让：视觉视口高度收缩时抬升输入区 */
.nx-ai-chat.keyboard-open .nx-ai-chat-input-wrap {
    padding-bottom: calc(var(--nx-space-2, 0.5rem) + var(--nx-chat-kb, 0px) + var(--nx-safe-bottom, 0px));
    transition: padding-bottom 0.12s ease-out;
}

/* ===== 富事件渲染：思考过程 / 工具调用 / 引用来源 ===== */
.nx-ai-chat-reasoning {
    margin-bottom: var(--nx-space-2, 0.5rem);
    border: 1px solid var(--nx-border, rgb(226, 232, 240));
    background: var(--nx-bg-page, rgb(248, 250, 252));
    border-radius: var(--nx-radius-md, 0.5rem);
    overflow: hidden;
}

.nx-ai-chat-reasoning-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.625rem;
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: var(--nx-text-xs, 0.75rem);
    color: var(--nx-text-secondary, rgb(100, 116, 139));
    border-radius: var(--nx-radius-md, 0.5rem);
}

.nx-ai-chat-reasoning-body {
    padding: 0 0.625rem 0.5rem;
    font-size: var(--nx-text-xs, 0.75rem);
    line-height: 1.55;
    color: var(--nx-text-secondary, rgb(100, 116, 139));
    white-space: pre-wrap;
    word-break: break-word;
}

.nx-ai-chat-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.375rem;
    margin-bottom: var(--nx-space-2, 0.5rem);
}

.nx-ai-chat-tool-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.2rem 0.5rem;
    font-size: 0.6875rem;
    background: var(--nx-accent-soft, rgba(79, 70, 229, 0.08));
    color: var(--nx-accent, rgb(79, 70, 229));
    border: 1px solid var(--nx-accent-soft, rgba(79, 70, 229, 0.2));
    border-radius: var(--nx-radius-sm, 0.25rem);
}

.nx-ai-chat-references {
    margin-top: var(--nx-space-2, 0.5rem);
    padding-top: var(--nx-space-2, 0.5rem);
    border-top: 1px dashed var(--nx-border, rgb(226, 232, 240));
}

.nx-ai-chat-ref-title {
    font-size: var(--nx-text-xs, 0.75rem);
    font-weight: 600;
    color: var(--nx-text-muted, rgb(148, 163, 184));
    margin: 0 0 0.375rem;
}

.nx-ai-chat-ref-item {
    display: block;
    font-size: var(--nx-text-xs, 0.75rem);
    color: var(--nx-accent, rgb(79, 70, 229));
    text-decoration: none;
    line-height: 1.5;
    padding: 2px 0;
    word-break: break-all;
}

.nx-ai-chat-warnings {
    margin-top: var(--nx-space-2, 0.5rem);
    display: grid;
    gap: var(--nx-space-1, 0.25rem);
}

.nx-ai-chat-warning {
    display: flex;
    align-items: flex-start;
    gap: var(--nx-space-2, 0.5rem);
    font-size: var(--nx-text-xs, 0.75rem);
    line-height: 1.6;
    color: var(--nx-warning-text, rgb(146, 64, 14));
    background: var(--nx-warning-soft, rgba(251, 191, 36, 0.12));
    border: 1px solid rgba(var(--nx-warning-rgb, 217, 119, 6), 0.25);
    border-radius: var(--nx-radius-sm, 0.25rem);
    padding: var(--nx-space-2, 0.5rem) var(--nx-space-2, 0.5rem);
}

.nx-ai-chat-warning svg {
    flex: none;
    margin-top: 2px;
    color: var(--nx-warning, rgb(217, 119, 6));
}

.nx-ai-chat-assistant .nx-ai-chat-content a { color: var(--nx-accent, rgb(79, 70, 229)); }

[data-theme="dark"] .nx-ai-chat-reasoning { background: var(--nx-bg-tertiary, rgba(0, 0, 0, 0.2)); border-color: var(--nx-border, rgb(51, 65, 85)); }

/* ---- 对话控制面（feat.chatActions，S64）：编辑重发 + 失败条操作组 ---- */

.nx-ai-chat-edit {
    display: flex;
    flex-direction: column;
    gap: var(--nx-space-2, 0.5rem);
    width: 100%;
}

.nx-ai-chat-edit-input {
    width: 100%;
    resize: vertical;
    min-height: 2.5rem;
    padding: 0.5rem 0.625rem;
    font: inherit;
    font-size: var(--nx-text-sm, 0.875rem);
    line-height: 1.5;
    color: var(--nx-text, rgb(30, 41, 59));
    background: var(--nx-bg, rgb(255, 255, 255));
    border: 1px solid var(--nx-accent, rgb(79, 70, 229));
    border-radius: var(--nx-radius-md, 0.5rem);
    box-sizing: border-box;
}

.nx-ai-chat-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: var(--nx-space-2, 0.5rem);
}

.nx-ai-chat-edit-cancel,
.nx-ai-chat-edit-send {
    padding: 0.25rem 0.75rem;
    font-size: var(--nx-text-xs, 0.75rem);
    border-radius: var(--nx-radius-sm, 0.25rem);
    cursor: pointer;
    transition: opacity 0.15s;
}

.nx-ai-chat-edit-cancel {
    background: transparent;
    border: 1px solid var(--nx-border, rgb(203, 213, 225));
    color: var(--nx-text-muted, rgb(100, 116, 139));
}

.nx-ai-chat-edit-send {
    background: var(--nx-accent, rgb(79, 70, 229));
    border: 1px solid var(--nx-accent, rgb(79, 70, 229));
    color: var(--nx-text-on-accent, #fff);
}

.nx-ai-chat-edit-cancel:hover,
.nx-ai-chat-edit-send:hover {
    opacity: 0.85;
}

.nx-ai-chat-error-text {
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}

.nx-ai-chat-error-ops {
    display: flex;
    flex: none;
    gap: var(--nx-space-2, 0.5rem);
}

[data-theme="dark"] .nx-ai-chat-edit-input {
    color: var(--nx-text, rgb(226, 232, 240));
    background: var(--nx-bg-secondary, rgb(15, 23, 42));
}

/* ===== nexus-mobile.css ===== */
:root {
  --nx-vh: 1vh;
}

.nx-app {
  display: flex;
  min-height: calc(var(--nx-vh) * 100);
  min-height: 100dvh;
}

.nx-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  border-radius: var(--nx-radius-md);
  transition: background var(--nx-transition-fast);
  -webkit-tap-highlight-color: transparent;
}
.nx-hamburger:hover { background: var(--nx-bg-hover); }
.nx-hamburger:active { background: var(--nx-border); }

.nx-hamburger-line {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--nx-text-heading);
  border-radius: 1px;
  transition: all var(--nx-transition-base);
}

.nx-hamburger-inner {
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: center;
}

.nx-hamburger.open .nx-hamburger-line:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nx-hamburger.open .nx-hamburger-line:nth-child(2) { opacity: 0; }
.nx-hamburger.open .nx-hamburger-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nx-hamburger-fixed {
  position: fixed;
  top: calc(12px + var(--nx-safe-top));
  left: 12px;
  z-index: var(--nx-z-hamburger);
  background: var(--nx-bg-surface, #fff);
  border: 1px solid var(--nx-border, #e2e8f0);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}

.nx-drawer-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--nx-z-overlay);
  background: var(--nx-overlay-bg, rgba(0, 0, 0, 0.5));
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--nx-transition-slow), visibility var(--nx-transition-slow);
  -webkit-tap-highlight-color: transparent;
}
.nx-drawer-overlay.open { opacity: 1; visibility: visible; }

.nx-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: var(--nx-z-drawer);
  width: 280px;
  max-width: 85vw;
  background: var(--nx-bg-surface);
  border-right: 1px solid var(--nx-border);
  transform: translateX(-100%);
  transition: transform var(--nx-transition-slow);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: var(--nx-safe-bottom);
}
.nx-drawer.open { transform: translateX(0); }

.nx-drawer-right {
  left: auto;
  right: 0;
  border-right: none;
  border-left: 1px solid var(--nx-border);
  transform: translateX(100%);
}
.nx-drawer-right.open { transform: translateX(0); }

.nx-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }@media (max-width: 768px){
  .nx-table-scroll { margin: 0 calc(-1 * var(--nx-space-4)); padding: 0 var(--nx-space-4); }
  /* 未包 wrapper 的裸 .nx-table 移动端地板：表级横滚兜底，防撑破页面；
     语义保持（thead 不塌），首选仍是 .nx-table-scroll 包装（负边距满宽）。 */
  .nx-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}@media (hover: none) and (pointer: coarse){
  /* 业务自绘控件的通用触控地板：挂 .nx-touch 即得 44px 地板+隐形热区扩展，
     替代各仓自写 44px @media 规则（oneNote/MiaoBi 存量 ~23 条的收编出口）。 */
  .nx-touch { min-height: 44px; min-width: 44px; position: relative; }
  .nx-touch::after { content: ""; position: absolute; inset: -10px; }
  a, button, [role="button"], .nx-touch { touch-action: manipulation; }
  .nux-btn { min-height: 44px; min-width: 44px; }
  .nux-btn.nux-btn--sm { min-height: 40px; min-width: 40px; }
  .nux-login-tab, .nux-login-subtab { min-width: 44px; }
  .nx-sidebar-item { min-height: 44px; }
  .nx-input, .nx-select, .nux-input { min-height: 44px; font-size: 16px; }
  .nux-btn,
.nux-acc-head,
.nux-bottom-nav-item,
.nux-layout-nav-item,
.nux-layout-collapse-btn,
.nux-tab-item,
.nux-segmented-item,
.nux-chip,
.nux-cal-nav,
.nux-cal-today-btn,
.nux-checkin-preset,
.nux-notif-panel-item,
.nux-notif-panel-page-btn,
.nux-notify-bell,
.nux-notify-item,
.nux-onboarding-btn,
.nux-uc-tab,
.nux-uc-trigger,
.nux-uc-action,
.nux-uc-close,
.nux-uc-logout,
.nux-login-tab,
.nux-login-subtab,
.nux-third-btn,
.nux-link,
.nux-undo-btn,
.nux-field-clear,
.nux-password-toggle,
.nux-sms-btn,
.nux-captcha-img,
.nux-check,
.nux-checkbox,
.nux-select-native,
.nux-app-card-cover,
.nux-backtop,
.nux-menu-user-btn,
.nux-menu-about-btn,
.nux-selection-clear,
.nc-chip,
.nc-btn,
.nxw-chip,
.nxw-choice-btn,
.nvi-btn,
.nx-conv-list-new,
.nx-ai-chat-quick-btn,
.nx-auto-act,
.nux-input-number-btn,
.nx-settings-nav-item,
.nx-ai-chat-scroll-btn,
.nx-modal-close,
.nxsp-close,
.nxsp-tab,
.nxsp-personal-item,
.nux-wallet-claim,
.nx-auto-modal-close,
.nux-notify-reload,
.nux-checkin-ghost,
.nux-checkin-mini,
.nux-ob-btn {
    min-height: 44px;
  }
  .nux-menu-user-btn,
.nux-menu-about-btn,
.nvi-btn,
.nux-backtop,
.nux-notify-bell,
.nx-modal-close,
.nxsp-close {
    min-width: 44px;
  }
  .nux-footer .nux-footer-link {
    padding: 4px 6px;
  }
  .nux-chip-remove,
.nux-notif-panel-item-delete,
.nux-onboarding-close,
.nux-cal-nav,
.nux-field-clear,
.nux-password-toggle,
.nux-notify-bell,
.nux-uc-trigger,
.nux-uc-close,
.nux-uc-logout,
.nux-menu-user-btn,
.nux-menu-about-btn,
.nux-app-card-fav,
.nux-app-card-edit,
.nux-switch-track,
.nux-check-box,
.nx-settings-close,
.nux-layout-collapse-btn,
.nx-conv-list-item-btn,
.nx-ai-chat-action-btn,
.nx-ai-chat-reasoning-toggle,
.nx-ai-chat-retry-btn,
.nxsp-search-clear,
.nxw-card-link,
.nux-ob-dismiss,
.nx-auto-switch {
    position: relative;
  }
  .nux-chip-remove::after,
.nux-notif-panel-item-delete::after,
.nux-onboarding-close::after,
.nux-cal-nav::after,
.nux-field-clear::after,
.nux-password-toggle::after,
.nux-notify-bell::after,
.nux-uc-trigger::after,
.nux-uc-close::after,
.nux-uc-logout::after,
.nux-menu-user-btn::after,
.nux-menu-about-btn::after,
.nux-app-card-fav::after,
.nux-app-card-edit::after,
.nux-switch-track::after,
.nux-check-box::after,
.nx-settings-close::after,
.nux-layout-collapse-btn::after,
.nx-conv-list-item-btn::after,
.nx-ai-chat-action-btn::after,
.nx-ai-chat-reasoning-toggle::after,
.nx-ai-chat-retry-btn::after,
.nxsp-search-clear::after,
.nxw-card-link::after,
.nux-ob-dismiss::after,
.nx-auto-switch::after {
    content: "";
    position: absolute;
    inset: -10px;
  }
}@media (max-width: 768px){
  .nx-hamburger { display: flex; }
  .nx-sidebar { display: none; }
  .nx-nav { padding: 0 var(--nx-space-4); height: 52px; }
  .nx-card { padding: var(--nx-space-4); }
  .nx-app { flex-direction: column; }
  .nx-hide-mobile { display: none !important; }
}@media (max-width: 480px){
  .nx-card { padding: var(--nx-space-3); }
  .nx-modal { padding: var(--nx-space-4); }
}

[data-theme="dark"] .nx-drawer { background: var(--nx-bg-surface); }
[data-theme="dark"] .nx-hamburger-line { background: var(--nx-text-heading); }@media (max-width: 768px){
  .el-dialog { width: 95% !important; margin-top: 5vh !important; }
  .el-drawer { width: 85% !important; }
  .el-table { font-size: 13px; }
  .el-form-item__label { float: none !important; text-align: left !important; width: auto !important; padding-bottom: 4px !important; }
  .el-form-item__content { margin-left: 0 !important; }
}@media (max-width: 480px){
  .el-dialog { width: 98% !important; margin-top: 2vh !important; }
  .el-message-box { width: 92% !important; }
}@media (max-width: 768px){
  .sidebar { position: fixed !important; top: 0; left: 0; bottom: 0; z-index: var(--nx-z-drawer); width: 260px !important; max-width: 85vw; transform: translateX(-100%); transition: transform 0.3s ease; }
  .sidebar.sidebar-open, .sidebar.open { transform: translateX(0); }
  .sidebar-overlay { position: fixed; inset: 0; background: var(--nx-overlay-bg, rgba(0,0,0,0.5)); z-index: var(--nx-z-overlay); display: none; }
  .sidebar-overlay.active { display: block; }
  .main { width: 100% !important; }
  .content { padding: 12px !important; }
  .topbar { padding: 0 12px !important; height: 48px !important; }
  .topbar-title { font-size: 13px !important; }
  .topbar-actions .btn span { display: none; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr !important; }
  .card { padding: 12px !important; margin-bottom: 10px !important; }
  .stat-value { font-size: 20px !important; }
  .stat-label { font-size: 10px !important; }
  .btn { padding: 8px 14px !important; font-size: 13px !important; min-height: 40px; }
  .btn-sm { padding: 6px 10px !important; min-height: 40px; }
  .btn-xs { min-height: 36px; }
  .form-input, .form-select, .form-textarea { font-size: 16px !important; width: 100%; }
  .form-label { font-size: 13px !important; }
  .nav-item { padding: 10px 14px !important; font-size: 13px !important; min-height: 44px; }
  .tab-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; }
  .tab { white-space: nowrap; padding: 8px 12px; }
  .mobile-menu-btn { display: inline-flex !important; }
  .app { flex-direction: column !important; }
  .hide-mobile { display: none !important; }
}@media (max-width: 480px){
  .content { padding: 8px !important; }
  .card { padding: 8px !important; }
  .stat-value { font-size: 18px !important; }
  .btn { padding: 6px 10px; font-size: 12px; }
  .topbar-title { font-size: 12px !important; }
  .sidebar { width: 85vw !important; }
}@media (min-width: 769px){
  .mobile-menu-btn { display: none !important; }
  .sidebar-overlay { display: none !important; }
}@media (hover: none) and (pointer: coarse){
  .nav-item { min-height: 44px; }
  .form-input, .form-select, .form-textarea { min-height: 40px; font-size: 16px; }
  .tab { min-height: 40px; padding: 10px 14px; }
}

/* ===== 移动端基础重置（收口自各项目 mobile-base.css，可直接替代） ===== */
:root {
  --safe-top: var(--nx-safe-top);
  --safe-bottom: var(--nx-safe-bottom);
  --safe-left: var(--nx-safe-left);
  --safe-right: var(--nx-safe-right);
  --app-vh: calc(var(--nx-vh) * 100);
}

* {
  -webkit-tap-highlight-color: transparent;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

/* iOS 聚焦缩放防护：触屏设备输入字号不得低于 16px（任意类名的输入框，业务仓无需再各自手写） */
@media (hover: none) and (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
  textarea, select {
    font-size: 16px !important;
  }
}

html, body {
  overscroll-behavior-y: contain;
}

body {
  padding-top: var(--safe-top);
  padding-bottom: var(--safe-bottom);
  padding-left: var(--safe-left);
  padding-right: var(--safe-right);
}

.full-height {
  height: 100vh;
  height: 100svh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100svh;
  min-height: 100dvh;
}

img, video, canvas {
  max-width: 100%;
  height: auto;
}

@supports not (padding: env(safe-area-inset-top)) {
  :root {
    --safe-top: 0px;
    --safe-bottom: 0px;
    --safe-left: 0px;
    --safe-right: 0px;
  }
}

@media (max-width: 768px) {
  .show-mobile {
    display: block !important;
  }
  .container,
  .container-fluid {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (min-width: 769px) {
  .show-mobile {
    display: none !important;
  }
}

@media (pointer: coarse) {
  .tooltip:hover {
    display: none !important;
  }
}

@media (max-width: 768px){
  button:not([class]),
  .btn,
  [role="button"],
  a.btn {
    min-height: 44px;
    min-width: 44px;
  }
  .modal,
  .modal-overlay {
    padding: 0 !important;
  }
  .modal-card,
  .modal-content {
    max-width: 100% !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }
  table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}@media (pointer: coarse){
  button:not([class]),
  .btn,
  [role="button"],
  a.btn,
  .clickable {
    min-height: 44px;
    min-width: 44px;
  }
}

/* iOS Safari 防聚焦缩放：文本输入控件字号 <16px 时聚焦会强制放大页面（多端地板统一防御） */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]),
  select,
  textarea,
  .form-control,
  .form-select {
    font-size: 16px;
  }
}

/* 弹层移动端收敛：modal 转底部动作面板形态，贴合并规避误触 */
@media (max-width: 768px) {
  .nx-modal-overlay {
    align-items: flex-end;
    padding: 0;
  }
  .nx-modal {
    width: 100%;
    max-width: 100%;
    max-height: 90dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--nx-radius-xl, 1rem) var(--nx-radius-xl, 1rem) 0 0;
    padding: var(--nx-space-6, 1.5rem) var(--nx-space-4, 1rem) calc(var(--nx-space-6, 1.5rem) + var(--nx-safe-bottom, 0px));
  }
}

/* 底部动作面板原语：≤768 时给弹层挂 .nx-sheet 即贴底全宽化（居中定位型自动解除居中）。
 * 键盘弹起时随 --nx-kb（nexus-utils dom.syncKeyboardHeight 注入）抬离软件键盘，输入区不被遮挡。
 * 供 JS 注入弹层与库外弹窗消费；.nx-modal 的专用块与设置抽屉已自带移动形态，不依赖此原语。 */
@media (max-width: 768px) {
  .nx-sheet {
    left: 0 !important;
    right: 0 !important;
    bottom: var(--nx-kb, 0px) !important;
    top: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    max-height: calc(90dvh - var(--nx-kb, 0px)) !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--nx-radius-xl, 1rem) var(--nx-radius-xl, 1rem) 0 0;
    padding-bottom: calc(var(--nx-space-6, 1.5rem) + var(--nx-safe-bottom, 0px));
  }
}

/* ===== 下拉刷新原语 NexusPullRefresh（触屏，nexus-pull-refresh.js）===== */
.nx-pull-refresh {
    position: absolute;
    top: 8px;
    left: 50%;
    margin-left: -52px;
    width: 104px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 18px;
    background: var(--nx-bg-elevated, #fff);
    border: 1px solid var(--nx-border, #e2e8f0);
    box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
    color: var(--nx-text-accent, var(--app-accent, #4f46e5));
    font-size: 12px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-28px);
    transition: opacity 0.2s ease, transform 0.25s ease, visibility 0.25s;
    z-index: var(--nx-z-float, 1500);
    pointer-events: none;
}
[data-theme="dark"] .nx-pull-refresh {
    background: var(--nx-bg-elevated, #2a3848);
    border-color: var(--nx-border, #334155);
}
.nx-pull-refresh-spinner {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    transition: transform 0.1s linear;
}
.nx-pull-refresh-spinner.is-spinning {
    animation: nx-pull-spin 0.7s linear infinite;
}
.nx-pull-refresh-spinner.is-spinning svg {
    display: none;
}
.nx-pull-refresh-spinner.is-spinning::after {
    content: '';
    width: 16px;
    height: 16px;
    border: 2px solid var(--nx-accent-soft, rgba(99, 102, 241, 0.25));
    border-top-color: currentColor;
    border-radius: 50%;
}
@keyframes nx-pull-spin {
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .nx-pull-refresh { transition: opacity 0.1s ease; }
    .nx-pull-refresh-spinner { transition: none; }
    .nx-pull-refresh-spinner.is-spinning { animation-duration: 1.4s; }
}

/* ===== nux-icons.css ===== */
/* nux-icons.css - fontawesome-free 6.7.2 subset (CC BY 4.0, Fonticons Inc.) built by nexus-ui/tools/nux_icons_build.py - S98 */

.fa,.fas,.far,.fab,.fad,.fal,.fat,.fa-solid,.fa-regular,.fa-brands,.fa-duotone,.fa-light,.fa-thin{display:inline-block;width:1em;height:1em;vertical-align:-.125em;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.fa-xs{width:.75em;height:.75em}.fa-sm{width:.875em;height:.875em}.fa-lg{width:1.33333em;height:1.33333em;vertical-align:-.2em}.fa-xl{width:2em;height:2em}
.fa-2x{width:2em;height:2em}.fa-3x{width:3em;height:3em}.fa-4x{width:4em;height:4em}.fa-5x{width:5em;height:5em}
.fa-6x{width:6em;height:6em}.fa-7x{width:7em;height:7em}.fa-8x{width:8em;height:8em}.fa-9x{width:9em;height:9em}.fa-10x{width:10em;height:10em}
.fa-fw{width:1.25em;text-align:center}
.fa-pull-left{float:left;margin-right:.3em}.fa-pull-right{float:right;margin-left:.3em}
.fa-spin{-webkit-animation:nuxfa-spin 2s linear infinite;animation:nuxfa-spin 2s linear infinite}
.fa-pulse,.fa-spin-pulse{-webkit-animation:nuxfa-spin 1s steps(8) infinite;animation:nuxfa-spin 1s steps(8) infinite}
.fa-inverse{background-color:#fff}
@-webkit-keyframes nuxfa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}
@keyframes nuxfa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}

.fa-arrow-left{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z%22/%3E%3C/svg%3E')}
.fa-arrow-right{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z%22/%3E%3C/svg%3E')}
.fa-arrows-rotate{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z%22/%3E%3C/svg%3E')}
.fa-balance-scale,.fa-scale-balanced{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3L352 448l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288l144.9 0L512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C627.2 382 574.9 416 512 416zM126.8 195.8L54.4 320l144.9 0L126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1C242 382 189.7 416 126.8 416S11.7 382 .9 337.1z%22/%3E%3C/svg%3E')}
.fa-ban{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z%22/%3E%3C/svg%3E')}
.fa-band-aid,.fa-bandage{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M480 416l96 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-96 0 0 320zM448 96L192 96l0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l96 0 0-320L64 96zM248 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22/%3E%3C/svg%3E')}
.fa-bell{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M224 0c-17.7 0-32 14.3-32 32l0 19.2C119 66 64 130.6 64 208l0 18.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S19.4 416 32 416l384 0c12.6 0 24-7.4 29.2-18.9s3.1-25-5.3-34.4l-7.4-8.3C401.3 319.2 384 273.9 384 226.8l0-18.8c0-77.4-55-142-128-156.8L256 32c0-17.7-14.3-32-32-32zm45.3 493.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z%22/%3E%3C/svg%3E')}
.fa-bell-slash{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-90.2-70.7c.2-.4 .4-.9 .6-1.3c5.2-11.5 3.1-25-5.3-34.4l-7.4-8.3C497.3 319.2 480 273.9 480 226.8l0-18.8c0-77.4-55-142-128-156.8L352 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 19.2c-42.6 8.6-79 34.2-102 69.3L38.8 5.1zM406.2 416L160 222.1l0 4.8c0 47-17.3 92.4-48.5 127.6l-7.4 8.3c-8.4 9.4-10.4 22.9-5.3 34.4S115.4 416 128 416l278.2 0zm-40.9 77.3c12-12 18.7-28.3 18.7-45.3l-64 0-64 0c0 17 6.7 33.3 18.7 45.3s28.3 18.7 45.3 18.7s33.3-6.7 45.3-18.7z%22/%3E%3C/svg%3E')}
.fa-bolt{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288l111.5 0L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7l-111.5 0L349.4 44.6z%22/%3E%3C/svg%3E')}
.fa-book{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E')}
.fa-book-open{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z%22/%3E%3C/svg%3E')}
.fa-book-reader,.fa-book-open-reader{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M160 96a96 96 0 1 1 192 0A96 96 0 1 1 160 96zm80 152l0 264-48.4-24.2c-20.9-10.4-43.5-17-66.8-19.3l-96-9.6C12.5 457.2 0 443.5 0 427L0 224c0-17.7 14.3-32 32-32l30.3 0c63.6 0 125.6 19.6 177.7 56zm32 264l0-264c52.1-36.4 114.1-56 177.7-56l30.3 0c17.7 0 32 14.3 32 32l0 203c0 16.4-12.5 30.2-28.8 31.8l-96 9.6c-23.2 2.3-45.9 8.9-66.8 19.3L272 512z%22/%3E%3C/svg%3E')}
.fa-box{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M50.7 58.5L0 160l208 0 0-128L93.7 32C75.5 32 58.9 42.3 50.7 58.5zM240 160l208 0L397.3 58.5C389.1 42.3 372.5 32 354.3 32L240 32l0 128zm208 32L0 192 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-224z%22/%3E%3C/svg%3E')}
.fa-box-archive{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z%22/%3E%3C/svg%3E')}
.fa-briefcase{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M184 48l144 0c4.4 0 8 3.6 8 8l0 40L176 96l0-40c0-4.4 3.6-8 8-8zm-56 8l0 40L64 96C28.7 96 0 124.7 0 160l0 96 192 0 128 0 192 0 0-96c0-35.3-28.7-64-64-64l-64 0 0-40c0-30.9-25.1-56-56-56L184 0c-30.9 0-56 25.1-56 56zM512 288l-192 0 0 32c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-32L0 288 0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-128z%22/%3E%3C/svg%3E')}
.fa-bullhorn{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M480 32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9L381.7 53c-48 48-113.1 75-181 75l-8.7 0-32 0-96 0c-35.3 0-64 28.7-64 64l0 96c0 35.3 28.7 64 64 64l0 128c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128 8.7 0c67.9 0 133 27 181 75l43.6 43.6c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-147.6c18.6-8.8 32-32.5 32-60.4s-13.4-51.6-32-60.4L480 32zm-64 76.7L416 240l0 131.3C357.2 317.8 280.5 288 200.7 288l-8.7 0 0-96 8.7 0c79.8 0 156.5-29.8 215.3-83.3z%22/%3E%3C/svg%3E')}
.fa-bullseye{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M448 256A192 192 0 1 0 64 256a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E')}
.fa-calendar-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 48 0c26.5 0 48 21.5 48 48l0 48L0 160l0-48C0 85.5 21.5 64 48 64l48 0 0-32c0-17.7 14.3-32 32-32zM0 192l448 0 0 272c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 192zM329 305c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95-47-47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0L329 305z%22/%3E%3C/svg%3E')}
.fa-camera{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0L362.9 64.8C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z%22/%3E%3C/svg%3E')}
.fa-cart-shopping{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 24C0 10.7 10.7 0 24 0L69.5 0c22 0 41.5 12.8 50.6 32l411 0c26.3 0 45.5 25 38.6 50.4l-41 152.3c-8.5 31.4-37 53.3-69.5 53.3l-288.5 0 5.4 28.5c2.2 11.3 12.1 19.5 23.6 19.5L488 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288.3 0c-34.6 0-64.3-24.6-70.7-58.5L77.4 54.5c-.7-3.8-4-6.5-7.9-6.5L24 48C10.7 48 0 37.3 0 24zM128 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm336-48a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E')}
.fa-chart-bar,.fa-chart-column{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z%22/%3E%3C/svg%3E')}
.fa-chart-column{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM160 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm128-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm64 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM480 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z%22/%3E%3C/svg%3E')}
.fa-chart-line{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z%22/%3E%3C/svg%3E')}
.fa-chart-pie{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M304 240l0-223.4c0-9 7-16.6 16-16.6C443.7 0 544 100.3 544 224c0 9-7.6 16-16.6 16L304 240zM32 272C32 150.7 122.1 50.3 239 34.3c9.2-1.3 17 6.1 17 15.4L256 288 412.5 444.5c6.7 6.7 6.2 17.7-1.5 23.1C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zm526.4 16c9.3 0 16.6 7.8 15.4 17c-7.7 55.9-34.6 105.6-73.9 142.3c-6 5.6-15.4 5.2-21.2-.7L320 288l238.4 0z%22/%3E%3C/svg%3E')}
.fa-chart-simple{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z%22/%3E%3C/svg%3E')}
.fa-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z%22/%3E%3C/svg%3E')}
.fa-check-circle,.fa-circle-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z%22/%3E%3C/svg%3E')}
.fa-chevron-right{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 320 512%22%3E%3Cpath d=%22M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 320 512%22%3E%3Cpath d=%22M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z%22/%3E%3C/svg%3E')}
.fa-circle-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z%22/%3E%3C/svg%3E')}
.fa-circle-exclamation{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E')}
.fa-circle-info{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z%22/%3E%3C/svg%3E')}
.fa-circle-notch{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z%22/%3E%3C/svg%3E')}
.fa-clock{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z%22/%3E%3C/svg%3E')}
.fa-cloud{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M0 336c0 79.5 64.5 144 144 144l368 0c70.7 0 128-57.3 128-128c0-61.9-44-113.6-102.4-125.4c4.1-10.7 6.4-22.4 6.4-34.6c0-53-43-96-96-96c-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32C167.6 32 96 103.6 96 192c0 2.7 .1 5.4 .2 8.1C40.2 219.8 0 273.2 0 336z%22/%3E%3C/svg%3E')}
.fa-coins{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 80c0 18-14.3 34.6-38.4 48c-29.1 16.1-72.5 27.5-122.3 30.9c-3.7-1.8-7.4-3.5-11.3-5C300.6 137.4 248.2 128 192 128c-8.3 0-16.4 .2-24.5 .6l-1.1-.6C142.3 114.6 128 98 128 80c0-44.2 86-80 192-80S512 35.8 512 80zM160.7 161.1c10.2-.7 20.7-1.1 31.3-1.1c62.2 0 117.4 12.3 152.5 31.4C369.3 204.9 384 221.7 384 240c0 4-.7 7.9-2.1 11.7c-4.6 13.2-17 25.3-35 35.5c0 0 0 0 0 0c-.1 .1-.3 .1-.4 .2c0 0 0 0 0 0s0 0 0 0c-.3 .2-.6 .3-.9 .5c-35 19.4-90.8 32-153.6 32c-59.6 0-112.9-11.3-148.2-29.1c-1.9-.9-3.7-1.9-5.5-2.9C14.3 274.6 0 258 0 240c0-34.8 53.4-64.5 128-75.4c10.5-1.5 21.4-2.7 32.7-3.5zM416 240c0-21.9-10.6-39.9-24.1-53.4c28.3-4.4 54.2-11.4 76.2-20.5c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 19.3-16.5 37.1-43.8 50.9c-14.6 7.4-32.4 13.7-52.4 18.5c.1-1.8 .2-3.5 .2-5.3zm-32 96c0 18-14.3 34.6-38.4 48c-1.8 1-3.6 1.9-5.5 2.9C304.9 404.7 251.6 416 192 416c-62.8 0-118.6-12.6-153.6-32C14.3 370.6 0 354 0 336l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 342.6 135.8 352 192 352s108.6-9.4 148.1-25.9c7.8-3.2 15.3-6.9 22.4-10.9c6.1-3.4 11.8-7.2 17.2-11.2c1.5-1.1 2.9-2.3 4.3-3.4l0 3.4 0 5.7 0 26.3zm32 0l0-32 0-25.9c19-4.2 36.5-9.5 52.1-16c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 10.5-5 21-14.9 30.9c-16.3 16.3-45 29.7-81.3 38.4c.1-1.7 .2-3.5 .2-5.3zM192 448c56.2 0 108.6-9.4 148.1-25.9c16.3-6.8 31.5-15.2 43.9-25.5l0 35.4c0 44.2-86 80-192 80S0 476.2 0 432l0-35.4c12.5 10.3 27.6 18.7 43.9 25.5C83.4 438.6 135.8 448 192 448z%22/%3E%3C/svg%3E')}
.fa-comment{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 240c0 114.9-114.6 208-256 208c-37.1 0-72.3-6.4-104.1-17.9c-11.9 8.7-31.3 20.6-54.3 30.6C73.6 471.1 44.7 480 16 480c-6.5 0-12.3-3.9-14.8-9.9c-2.5-6-1.1-12.8 3.4-17.4c0 0 0 0 0 0s0 0 0 0s0 0 0 0c0 0 0 0 0 0l.3-.3c.3-.3 .7-.7 1.3-1.4c1.1-1.2 2.8-3.1 4.9-5.7c4.1-5 9.6-12.4 15.2-21.6c10-16.6 19.5-38.4 21.4-62.9C17.7 326.8 0 285.1 0 240C0 125.1 114.6 32 256 32s256 93.1 256 208z%22/%3E%3C/svg%3E')}
.fa-comment-dots{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 448c141.4 0 256-93.1 256-208S397.4 32 256 32S0 125.1 0 240c0 45.1 17.7 86.8 47.7 120.9c-1.9 24.5-11.4 46.3-21.4 62.9c-5.5 9.2-11.1 16.6-15.2 21.6c-2.1 2.5-3.7 4.4-4.9 5.7c-.6 .6-1 1.1-1.3 1.4l-.3 .3c0 0 0 0 0 0c0 0 0 0 0 0s0 0 0 0s0 0 0 0c-4.6 4.6-5.9 11.4-3.4 17.4c2.5 6 8.3 9.9 14.8 9.9c28.7 0 57.6-8.9 81.6-19.3c22.9-10 42.4-21.9 54.3-30.6c31.8 11.5 67 17.9 104.1 17.9zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z%22/%3E%3C/svg%3E')}
.fa-comments{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M208 352c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176c0 38.6 14.7 74.3 39.6 103.4c-3.5 9.4-8.7 17.7-14.2 24.7c-4.8 6.2-9.7 11-13.3 14.3c-1.8 1.6-3.3 2.9-4.3 3.7c-.5 .4-.9 .7-1.1 .8l-.2 .2s0 0 0 0s0 0 0 0C1 327.2-1.4 334.4 .8 340.9S9.1 352 16 352c21.8 0 43.8-5.6 62.1-12.5c9.2-3.5 17.8-7.4 25.2-11.4C134.1 343.3 169.8 352 208 352zM448 176c0 112.3-99.1 196.9-216.5 207C255.8 457.4 336.4 512 432 512c38.2 0 73.9-8.7 104.7-23.9c7.5 4 16 7.9 25.2 11.4c18.3 6.9 40.3 12.5 62.1 12.5c6.9 0 13.1-4.5 15.2-11.1c2.1-6.6-.2-13.8-5.8-17.9c0 0 0 0 0 0s0 0 0 0l-.2-.2c-.2-.2-.6-.4-1.1-.8c-1-.8-2.5-2-4.3-3.7c-3.6-3.3-8.5-8.1-13.3-14.3c-5.5-7-10.7-15.4-14.2-24.7c24.9-29 39.6-64.7 39.6-103.4c0-92.8-84.9-168.9-192.6-175.5c.4 5.1 .6 10.3 .6 15.5z%22/%3E%3C/svg%3E')}
.fa-compass{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z%22/%3E%3C/svg%3E')}
.fa-cube{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M234.5 5.7c13.9-5 29.1-5 43.1 0l192 68.6C495 83.4 512 107.5 512 134.6l0 242.9c0 27-17 51.2-42.5 60.3l-192 68.6c-13.9 5-29.1 5-43.1 0l-192-68.6C17 428.6 0 404.5 0 377.4L0 134.6c0-27 17-51.2 42.5-60.3l192-68.6zM256 66L82.3 128 256 190l173.7-62L256 66zm32 368.6l160-57.1 0-188L288 246.6l0 188z%22/%3E%3C/svg%3E')}
.fa-envelope{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z%22/%3E%3C/svg%3E')}
.fa-eye{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z%22/%3E%3C/svg%3E')}
.fa-file-export{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z%22/%3E%3C/svg%3E')}
.fa-file-lines{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E')}
.fa-file-signature{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-19.3c-2.7 1.1-5.4 2-8.2 2.7l-60.1 15c-3 .7-6 1.2-9 1.4c-.9 .1-1.8 .2-2.7 .2l-64 0c-6.1 0-11.6-3.4-14.3-8.8l-8.8-17.7c-1.7-3.4-5.1-5.5-8.8-5.5s-7.2 2.1-8.8 5.5l-8.8 17.7c-2.9 5.9-9.2 9.4-15.7 8.8s-12.1-5.1-13.9-11.3L144 381l-9.8 32.8c-6.1 20.3-24.8 34.2-46 34.2L80 448c-8.8 0-16-7.2-16-16s7.2-16 16-16l8.2 0c7.1 0 13.3-4.6 15.3-11.4l14.9-49.5c3.4-11.3 13.8-19.1 25.6-19.1s22.2 7.8 25.6 19.1l11.6 38.6c7.4-6.2 16.8-9.7 26.8-9.7c15.9 0 30.4 9 37.5 23.2l4.4 8.8 8.9 0c-3.1-8.8-3.7-18.4-1.4-27.8l15-60.1c2.8-11.3 8.6-21.5 16.8-29.7L384 203.6l0-43.6-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM549.8 139.7c-15.6-15.6-40.9-15.6-56.6 0l-29.4 29.4 71 71 29.4-29.4c15.6-15.6 15.6-40.9 0-56.6l-14.4-14.4zM311.9 321c-4.1 4.1-7 9.2-8.4 14.9l-15 60.1c-1.4 5.5 .2 11.2 4.2 15.2s9.7 5.6 15.2 4.2l60.1-15c5.6-1.4 10.8-4.3 14.9-8.4L512.1 262.7l-71-71L311.9 321z%22/%3E%3C/svg%3E')}
.fa-fire{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M159.3 5.4c7.8-7.3 19.9-7.2 27.7 .1c27.6 25.9 53.5 53.8 77.7 84c11-14.4 23.5-30.1 37-42.9c7.9-7.4 20.1-7.4 28 .1c34.6 33 63.9 76.6 84.5 118c20.3 40.8 33.8 82.5 33.8 111.9C448 404.2 348.2 512 224 512C98.4 512 0 404.1 0 276.5c0-38.4 17.8-85.3 45.4-131.7C73.3 97.7 112.7 48.6 159.3 5.4zM225.7 416c25.3 0 47.7-7 68.8-21c42.1-29.4 53.4-88.2 28.1-134.4c-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5c-16.5-21-46-58.5-62.8-79.8c-6.3-8-18.3-8.1-24.7-.1c-33.8 42.5-50.8 69.3-50.8 99.4C112 375.4 162.6 416 225.7 416z%22/%3E%3C/svg%3E')}
.fa-flag{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 64 0 368 0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 64.3-16.1c41.1-10.3 84.6-5.5 122.5 13.4c44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0c-35.1-17.6-75.4-22-113.5-12.5L64 48l0-16z%22/%3E%3C/svg%3E')}
.fa-flask{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M288 0L160 0 128 0C110.3 0 96 14.3 96 32s14.3 32 32 32l0 132.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512l309.2 0c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5L320 64c17.7 0 32-14.3 32-32s-14.3-32-32-32L288 0zM192 196.8L192 64l64 0 0 132.8c0 23.7 6.6 46.9 19 67.1L309.5 320l-171 0L173 263.9c12.4-20.2 19-43.4 19-67.1z%22/%3E%3C/svg%3E')}
.fa-folder{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z%22/%3E%3C/svg%3E')}
.fa-gear{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z%22/%3E%3C/svg%3E')}
.fa-graduation-cap{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M320 32c-8.1 0-16.1 1.4-23.7 4.1L15.8 137.4C6.3 140.9 0 149.9 0 160s6.3 19.1 15.8 22.6l57.9 20.9C57.3 229.3 48 259.8 48 291.9l0 28.1c0 28.4-10.8 57.7-22.3 80.8c-6.5 13-13.9 25.8-22.5 37.6C0 442.7-.9 448.3 .9 453.4s6 8.9 11.2 10.2l64 16c4.2 1.1 8.7 .3 12.4-2s6.3-6.1 7.1-10.4c8.6-42.8 4.3-81.2-2.1-108.7C90.3 344.3 86 329.8 80 316.5l0-24.6c0-30.2 10.2-58.7 27.9-81.5c12.9-15.5 29.6-28 49.2-35.7l157-61.7c8.2-3.2 17.5 .8 20.7 9s-.8 17.5-9 20.7l-157 61.7c-12.4 4.9-23.3 12.4-32.2 21.6l159.6 57.6c7.6 2.7 15.6 4.1 23.7 4.1s16.1-1.4 23.7-4.1L624.2 182.6c9.5-3.4 15.8-12.5 15.8-22.6s-6.3-19.1-15.8-22.6L343.7 36.1C336.1 33.4 328.1 32 320 32zM128 408c0 35.3 86 72 192 72s192-36.7 192-72L496.7 262.6 354.5 314c-11.1 4-22.8 6-34.5 6s-23.5-2-34.5-6L143.3 262.6 128 408z%22/%3E%3C/svg%3E')}
.fa-hand-holding-heart{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L192 512 32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l36.8 0 44.9-36c22.7-18.2 50.9-28 80-28l78.3 0 16 0 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l120.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384c0 0 0 0 0 0l-.9 0c.3 0 .6 0 .9 0z%22/%3E%3C/svg%3E')}
.fa-hand-pointer{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2c20.6 0 38.2 13 45 31.2c8.8-9.3 21.2-15.2 35-15.2c25.3 0 46 19.5 47.9 44.3c8.5-7.7 19.8-12.3 32.1-12.3c26.5 0 48 21.5 48 48l0 48 0 16 0 48c0 70.7-57.3 128-128 128l-16 0-64 0-.1 0-5.2 0c-5 0-9.9-.3-14.7-1c-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7L128 40zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z%22/%3E%3C/svg%3E')}
.fa-heart{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z%22/%3E%3C/svg%3E')}
.fa-heart-pulse{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M228.3 469.1L47.6 300.4c-4.2-3.9-8.2-8.1-11.9-12.4l87 0c22.6 0 43-13.6 51.7-34.5l10.5-25.2 49.3 109.5c3.8 8.5 12.1 14 21.4 14.1s17.8-5 22-13.3L320 253.7l1.7 3.4c9.5 19 28.9 31 50.1 31l104.5 0c-3.7 4.3-7.7 8.5-11.9 12.4L283.7 469.1c-7.5 7-17.4 10.9-27.7 10.9s-20.2-3.9-27.7-10.9zM503.7 240l-132 0c-3 0-5.8-1.7-7.2-4.4l-23.2-46.3c-4.1-8.1-12.4-13.3-21.5-13.3s-17.4 5.1-21.5 13.3l-41.4 82.8L205.9 158.2c-3.9-8.7-12.7-14.3-22.2-14.1s-18.1 5.9-21.8 14.8l-31.8 76.3c-1.2 3-4.2 4.9-7.4 4.9L16 240c-2.6 0-5 .4-7.3 1.1C3 225.2 0 208.2 0 190.9l0-5.8c0-69.9 50.5-129.5 119.4-141C165 36.5 211.4 51.4 244 84l12 12 12-12c32.6-32.6 79-47.5 124.6-39.9C461.5 55.6 512 115.2 512 185.1l0 5.8c0 16.9-2.8 33.5-8.3 49.1z%22/%3E%3C/svg%3E')}
.fa-hospital{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M192 48c0-26.5 21.5-48 48-48L400 0c26.5 0 48 21.5 48 48l0 464-80 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 80-80 0 0-464zM48 96l112 0 0 416L48 512c-26.5 0-48-21.5-48-48L0 320l80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 288l0-64 80 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L0 192l0-48c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 48-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 64-80 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80 0 0 144c0 26.5-21.5 48-48 48l-112 0 0-416 112 0zM312 64c-8.8 0-16 7.2-16 16l0 24-24 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l24 0 0 24c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-24 24 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-24 0 0-24c0-8.8-7.2-16-16-16l-16 0z%22/%3E%3C/svg%3E')}
.fa-lightbulb{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M272 384c9.6-31.9 29.5-59.1 49.2-86.2c0 0 0 0 0 0c5.2-7.1 10.4-14.2 15.4-21.4c19.8-28.5 31.4-63 31.4-100.3C368 78.8 289.2 0 192 0S16 78.8 16 176c0 37.3 11.6 71.9 31.4 100.3c5 7.2 10.2 14.3 15.4 21.4c0 0 0 0 0 0c19.8 27.1 39.7 54.4 49.2 86.2l160 0zM192 512c44.2 0 80-35.8 80-80l0-16-160 0 0 16c0 44.2 35.8 80 80 80zM112 176c0 8.8-7.2 16-16 16s-16-7.2-16-16c0-61.9 50.1-112 112-112c8.8 0 16 7.2 16 16s-7.2 16-16 16c-44.2 0-80 35.8-80 80z%22/%3E%3C/svg%3E')}
.fa-list-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E')}
.fa-list-ol{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M24 56c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24l0 120 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-96-8 0C34.7 80 24 69.3 24 56zM86.7 341.2c-6.5-7.4-18.3-6.9-24 1.2L51.5 357.9c-7.7 10.8-22.7 13.3-33.5 5.6s-13.3-22.7-5.6-33.5l11.1-15.6c23.7-33.2 72.3-35.6 99.2-4.9c21.3 24.4 20.8 60.9-1.1 84.7L86.8 432l33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0c-9.5 0-18.2-5.6-22-14.4s-2.1-18.9 4.3-25.9l72-78c5.3-5.8 5.4-14.6 .3-20.5zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z%22/%3E%3C/svg%3E')}
.fa-location-dot{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z%22/%3E%3C/svg%3E')}
.fa-lock{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M144 144l0 48 160 0 0-48c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192l0-48C80 64.5 144.5 0 224 0s144 64.5 144 144l0 48 16 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256c0-35.3 28.7-64 64-64l16 0z%22/%3E%3C/svg%3E')}
.fa-magnifying-glass{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z%22/%3E%3C/svg%3E')}
.fa-magnifying-glass-chart{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z%22/%3E%3C/svg%3E')}
.fa-microchip{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm192 32l-192 0 0 192 192 0 0-192z%22/%3E%3C/svg%3E')}
.fa-microscope{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M160 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32c17.7 0 32 14.3 32 32l0 224c0 17.7-14.3 32-32 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32c-17.7 0-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32zM32 448l288 0c70.7 0 128-57.3 128-128s-57.3-128-128-128l0-64c106 0 192 86 192 192c0 49.2-18.5 94-48.9 128l16.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32zm80-64l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z%22/%3E%3C/svg%3E')}
.fa-mobile-screen{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM144 448c0 8.8 7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16zM304 64L80 64l0 320 224 0 0-320z%22/%3E%3C/svg%3E')}
.fa-newspaper{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L80 480c-44.2 0-80-35.8-80-80L0 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 272c0 8.8 7.2 16 16 16s16-7.2 16-16L96 96zm64 24l0 80c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L184 96c-13.3 0-24 10.7-24 24zm208-8c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0c-8.8 0-16 7.2-16 16zM160 304c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16zm0 96c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-256 0c-8.8 0-16 7.2-16 16z%22/%3E%3C/svg%3E')}
.fa-palette{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 256c0 .9 0 1.8 0 2.7c-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48c0 3.4 .4 6.7 1 9.9c2.1 10.2 6.5 20 10.8 29.9c6.1 13.8 12.1 27.5 12.1 42c0 31.8-21.6 60.7-53.4 62c-3.5 .1-7 .2-10.6 .2C114.6 512 0 397.4 0 256S114.6 0 256 0S512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E')}
.fa-paw{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M226.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5s.3-86.2 32.6-96.8s70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3S-2.7 179.3 21.8 165.3s59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7c-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2C84.9 480 64 459.1 64 433.3l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3s29.1 51.7 10.2 84.1s-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5s46.9 53.9 32.6 96.8s-52.1 69.1-84.4 58.5z%22/%3E%3C/svg%3E')}
.fa-pen-fancy{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M373.5 27.1C388.5 9.9 410.2 0 433 0c43.6 0 79 35.4 79 79c0 22.8-9.9 44.6-27.1 59.6L277.7 319l-10.3-10.3-64-64L193 234.3 373.5 27.1zM170.3 256.9l10.4 10.4 64 64 10.4 10.4-19.2 83.4c-3.9 17.1-16.9 30.7-33.8 35.4L24.3 510.3l95.4-95.4c2.6 .7 5.4 1.1 8.3 1.1c17.7 0 32-14.3 32-32s-14.3-32-32-32s-32 14.3-32 32c0 2.9 .4 5.6 1.1 8.3L1.7 487.6 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8l83.4-19.2z%22/%3E%3C/svg%3E')}
.fa-pen-nib{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M368.4 18.3L312.7 74.1 437.9 199.3l55.7-55.7c21.9-21.9 21.9-57.3 0-79.2L447.6 18.3c-21.9-21.9-57.3-21.9-79.2 0zM288 94.6l-9.2 2.8L134.7 140.6c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-3.8 11.3-1 23.9 7.3 32.4L164.7 324.7c-3-6.3-4.7-13.3-4.7-20.7c0-26.5 21.5-48 48-48s48 21.5 48 48s-21.5 48-48 48c-7.4 0-14.4-1.7-20.7-4.7L33.7 500.9c8.6 8.3 21.1 11.2 32.4 7.3l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 2.7-9.2L288 94.6z%22/%3E%3C/svg%3E')}
.fa-pen-to-square{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z%22/%3E%3C/svg%3E')}
.fa-plug{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M96 0C78.3 0 64 14.3 64 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM288 0c-17.7 0-32 14.3-32 32l0 96 64 0 0-96c0-17.7-14.3-32-32-32zM32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 32c0 77.4 55 142 128 156.8l0 67.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-67.2C297 398 352 333.4 352 256l0-32c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z%22/%3E%3C/svg%3E')}
.fa-plus{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z%22/%3E%3C/svg%3E')}
.fa-project-diagram,.fa-diagram-project{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 192 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-192 0 0 16c0 1.7-.1 3.4-.3 5L272 288l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-1.7 .1-3.4 .3-5L144 224l-96 0c-26.5 0-48-21.5-48-48L0 80z%22/%3E%3C/svg%3E')}
.fa-puzzle-piece{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z%22/%3E%3C/svg%3E')}
.fa-robot{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M320 0c17.7 0 32 14.3 32 32l0 64 120 0c39.8 0 72 32.2 72 72l0 272c0 39.8-32.2 72-72 72l-304 0c-39.8 0-72-32.2-72-72l0-272c0-39.8 32.2-72 72-72l120 0 0-64c0-17.7 14.3-32 32-32zM208 384c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zm96 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0zM264 256a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm152 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM48 224l16 0 0 192-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zm544 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0 0-192 16 0z%22/%3E%3C/svg%3E')}
.fa-rocket{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M156.6 384.9L125.7 354c-8.5-8.5-11.5-20.8-7.7-32.2c3-8.9 7-20.5 11.8-33.8L24 288c-8.6 0-16.6-4.6-20.9-12.1s-4.2-16.7 .2-24.1l52.5-88.5c13-21.9 36.5-35.3 61.9-35.3l82.3 0c2.4-4 4.8-7.7 7.2-11.3C289.1-4.1 411.1-8.1 483.9 5.3c11.6 2.1 20.6 11.2 22.8 22.8c13.4 72.9 9.3 194.8-111.4 276.7c-3.5 2.4-7.3 4.8-11.3 7.2l0 82.3c0 25.4-13.4 49-35.3 61.9l-88.5 52.5c-7.4 4.4-16.6 4.5-24.1 .2s-12.1-12.2-12.1-20.9l0-107.2c-14.1 4.9-26.4 8.9-35.7 11.9c-11.2 3.6-23.4 .5-31.8-7.8zM384 168a40 40 0 1 0 0-80 40 40 0 1 0 0 80z%22/%3E%3C/svg%3E')}
.fa-route{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 96c0 50.2-59.1 125.1-84.6 155c-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8c6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96c0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8C59.8 473 0 402.5 0 352c0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9c-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E')}
.fa-search,.fa-magnifying-glass{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z%22/%3E%3C/svg%3E')}
.fa-seedling{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M512 32c0 113.6-84.6 207.5-194.2 222c-7.1-53.4-30.6-101.6-65.3-139.3C290.8 46.3 364 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 32 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z%22/%3E%3C/svg%3E')}
.fa-share-nodes{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M352 224c53 0 96-43 96-96s-43-96-96-96s-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9c0 53 43 96 96 96s96-43 96-96s-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9 .7-7.8 .7-11.9s-.2-8-.7-11.9l94.1-47C302.6 213.8 326.1 224 352 224z%22/%3E%3C/svg%3E')}
.fa-shield{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0z%22/%3E%3C/svg%3E')}
.fa-shield-halved{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 0c4.6 0 9.2 1 13.4 2.9L457.7 82.8c22 9.3 38.4 31 38.3 57.2c-.5 99.2-41.3 280.7-213.6 363.2c-16.7 8-36.1 8-52.8 0C57.3 420.7 16.5 239.2 16 140c-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.8 1 251.4 0 256 0zm0 66.8l0 378.1C394 378 431.1 230.1 432 141.4L256 66.8s0 0 0 0z%22/%3E%3C/svg%3E')}
.fa-shuffle{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8L284 229.3 244 176l31.2-41.6C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM164 282.7L204 336l-31.2 41.6C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L164 282.7zm274.6 188c-9.2 9.2-22.9 11.9-34.9 6.9s-19.8-16.6-19.8-29.6l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z%22/%3E%3C/svg%3E')}
.fa-sitemap{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M208 80c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-8 0 0 40 152 0c30.9 0 56 25.1 56 56l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-4.4-3.6-8-8-8l-152 0 0 40 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-40-152 0c-4.4 0-8 3.6-8 8l0 32 8 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-64 0c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l8 0 0-32c0-30.9 25.1-56 56-56l152 0 0-40-8 0c-26.5 0-48-21.5-48-48l0-64z%22/%3E%3C/svg%3E')}
.fa-sliders{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M0 416c0 17.7 14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384c-17.7 0-32 14.3-32 32zm128 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM320 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32-80c-32.8 0-61 19.7-73.3 48L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48zM192 128a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm73.3-64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64z%22/%3E%3C/svg%3E')}
.fa-snowflake{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M224 0c17.7 0 32 14.3 32 32l0 30.1 15-15c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-49 49 0 70.3 61.4-35.8 17.7-66.1c3.4-12.8 16.6-20.4 29.4-17s20.4 16.6 17 29.4l-5.2 19.3 23.6-13.8c15.3-8.9 34.9-3.7 43.8 11.5s3.8 34.9-11.5 43.8l-25.3 14.8 21.7 5.8c12.8 3.4 20.4 16.6 17 29.4s-16.6 20.4-29.4 17l-67.7-18.1L287.5 256l60.9 35.5 67.7-18.1c12.8-3.4 26 4.2 29.4 17s-4.2 26-17 29.4l-21.7 5.8 25.3 14.8c15.3 8.9 20.4 28.5 11.5 43.8s-28.5 20.4-43.8 11.5l-23.6-13.8 5.2 19.3c3.4 12.8-4.2 26-17 29.4s-26-4.2-29.4-17l-17.7-66.1L256 311.7l0 70.3 49 49c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-15-15 0 30.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-30.1-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l49-49 0-70.3-61.4 35.8-17.7 66.1c-3.4 12.8-16.6 20.4-29.4 17s-20.4-16.6-17-29.4l5.2-19.3L48.1 395.6c-15.3 8.9-34.9 3.7-43.8-11.5s-3.7-34.9 11.5-43.8l25.3-14.8-21.7-5.8c-12.8-3.4-20.4-16.6-17-29.4s16.6-20.4 29.4-17l67.7 18.1L160.5 256 99.6 220.5 31.9 238.6c-12.8 3.4-26-4.2-29.4-17s4.2-26 17-29.4l21.7-5.8L15.9 171.6C.6 162.7-4.5 143.1 4.4 127.9s28.5-20.4 43.8-11.5l23.6 13.8-5.2-19.3c-3.4-12.8 4.2-26 17-29.4s26 4.2 29.4 17l17.7 66.1L192 200.3l0-70.3L143 81c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l15 15L192 32c0-17.7 14.3-32 32-32z%22/%3E%3C/svg%3E')}
.fa-spinner{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z%22/%3E%3C/svg%3E')}
.fa-star{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z%22/%3E%3C/svg%3E')}
.fa-stethoscope{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M142.4 21.9c5.6 16.8-3.5 34.9-20.2 40.5L96 71.1 96 192c0 53 43 96 96 96s96-43 96-96l0-120.9-26.1-8.7c-16.8-5.6-25.8-23.7-20.2-40.5s23.7-25.8 40.5-20.2l26.1 8.7C334.4 19.1 352 43.5 352 71.1L352 192c0 77.2-54.6 141.6-127.3 156.7C231 404.6 278.4 448 336 448c61.9 0 112-50.1 112-112l0-70.7c-28.3-12.3-48-40.5-48-73.3c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 70.7c0 97.2-78.8 176-176 176c-92.9 0-168.9-71.9-175.5-163.1C87.2 334.2 32 269.6 32 192L32 71.1c0-27.5 17.6-52 43.8-60.7l26.1-8.7c16.8-5.6 34.9 3.5 40.5 20.2zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z%22/%3E%3C/svg%3E')}
.fa-sync-alt,.fa-arrows-rotate{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M105.1 202.6c7.7-21.8 20.2-42.3 37.8-59.8c62.5-62.5 163.8-62.5 226.3 0L386.3 160 352 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l111.5 0c0 0 0 0 0 0l.4 0c17.7 0 32-14.3 32-32l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 35.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0C73.2 122 55.6 150.7 44.8 181.4c-5.9 16.7 2.9 34.9 19.5 40.8s34.9-2.9 40.8-19.5zM39 289.3c-5 1.5-9.8 4.2-13.7 8.2c-4 4-6.7 8.8-8.1 14c-.3 1.2-.6 2.5-.8 3.8c-.3 1.7-.4 3.4-.4 5.1L16 432c0 17.7 14.3 32 32 32s32-14.3 32-32l0-35.1 17.6 17.5c0 0 0 0 0 0c87.5 87.4 229.3 87.4 316.7 0c24.4-24.4 42.1-53.1 52.9-83.8c5.9-16.7-2.9-34.9-19.5-40.8s-34.9 2.9-40.8 19.5c-7.7 21.8-20.2 42.3-37.8 59.8c-62.5 62.5-163.8 62.5-226.3 0l-.1-.1L125.6 352l34.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L48.4 288c-1.6 0-3.2 .1-4.8 .3s-3.1 .5-4.6 1z%22/%3E%3C/svg%3E')}
.fa-tag{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z%22/%3E%3C/svg%3E')}
.fa-tasks,.fa-list-check{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M152.1 38.2c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 113C-2.3 103.6-2.3 88.4 7 79s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zm0 160c9.9 8.9 10.7 24 1.8 33.9l-72 80c-4.4 4.9-10.6 7.8-17.2 7.9s-12.9-2.4-17.6-7L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l22.1 22.1 55.1-61.2c8.9-9.9 24-10.7 33.9-1.8zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM48 368a48 48 0 1 1 0 96 48 48 0 1 1 0-96z%22/%3E%3C/svg%3E')}
.fa-timeline{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M128 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32 97.3c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3L96 224l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0 54.7c-28.3 12.3-48 40.5-48 73.3c0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-320 0 0-54.7zM488 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM320 392a24 24 0 1 1 0 48 24 24 0 1 1 0-48z%22/%3E%3C/svg%3E')}
.fa-trash-can{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z%22/%3E%3C/svg%3E')}
.fa-triangle-exclamation{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 512 512%22%3E%3Cpath d=%22M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z%22/%3E%3C/svg%3E')}
.fa-trophy{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M400 0L176 0c-26.5 0-48.1 21.8-47.1 48.2c.2 5.3 .4 10.6 .7 15.8L24 64C10.7 64 0 74.7 0 88c0 92.6 33.5 157 78.5 200.7c44.3 43.1 98.3 64.8 138.1 75.8c23.4 6.5 39.4 26 39.4 45.6c0 20.9-17 37.9-37.9 37.9L192 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-26.1 0C337 448 320 431 320 410.1c0-19.6 15.9-39.2 39.4-45.6c39.9-11 93.9-32.7 138.2-75.8C542.5 245 576 180.6 576 88c0-13.3-10.7-24-24-24L446.4 64c.3-5.2 .5-10.4 .7-15.8C448.1 21.8 426.5 0 400 0zM48.9 112l84.4 0c9.1 90.1 29.2 150.3 51.9 190.6c-24.9-11-50.8-26.5-73.2-48.3c-32-31.1-58-76-63-142.3zM464.1 254.3c-22.4 21.8-48.3 37.3-73.2 48.3c22.7-40.3 42.8-100.5 51.9-190.6l84.4 0c-5.1 66.3-31.1 111.2-63 142.3z%22/%3E%3C/svg%3E')}
.fa-user-graduate{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M219.3 .5c3.1-.6 6.3-.6 9.4 0l200 40C439.9 42.7 448 52.6 448 64s-8.1 21.3-19.3 23.5L352 102.9l0 57.1c0 70.7-57.3 128-128 128s-128-57.3-128-128l0-57.1L48 93.3l0 65.1 15.7 78.4c.9 4.7-.3 9.6-3.3 13.3s-7.6 5.9-12.4 5.9l-32 0c-4.8 0-9.3-2.1-12.4-5.9s-4.3-8.6-3.3-13.3L16 158.4l0-71.8C6.5 83.3 0 74.3 0 64C0 52.6 8.1 42.7 19.3 40.5l200-40zM111.9 327.7c10.5-3.4 21.8 .4 29.4 8.5l71 75.5c6.3 6.7 17 6.7 23.3 0l71-75.5c7.6-8.1 18.9-11.9 29.4-8.5C401 348.6 448 409.4 448 481.3c0 17-13.8 30.7-30.7 30.7L30.7 512C13.8 512 0 498.2 0 481.3c0-71.9 47-132.7 111.9-153.6z%22/%3E%3C/svg%3E')}
.fa-user-plus{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM504 312l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z%22/%3E%3C/svg%3E')}
.fa-user-tie{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 448 512%22%3E%3Cpath d=%22M96 128a128 128 0 1 0 256 0A128 128 0 1 0 96 128zm94.5 200.2l18.6 31L175.8 483.1l-36-146.9c-2-8.1-9.8-13.4-17.9-11.3C51.9 342.4 0 405.8 0 481.3c0 17 13.8 30.7 30.7 30.7l131.7 0c0 0 0 0 .1 0l5.5 0 112 0 5.5 0c0 0 0 0 .1 0l131.7 0c17 0 30.7-13.8 30.7-30.7c0-75.5-51.9-138.9-121.9-156.4c-8.1-2-15.9 3.3-17.9 11.3l-36 146.9L238.9 359.2l18.6-31c6.4-10.7-1.3-24.2-13.7-24.2L224 304l-19.7 0c-12.4 0-20.1 13.6-13.7 24.2z%22/%3E%3C/svg%3E')}
.fa-users{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 640 512%22%3E%3Cpath d=%22M144 0a80 80 0 1 1 0 160A80 80 0 1 1 144 0zM512 0a80 80 0 1 1 0 160A80 80 0 1 1 512 0zM0 298.7C0 239.8 47.8 192 106.7 192l42.7 0c15.9 0 31 3.5 44.6 9.7c-1.3 7.2-1.9 14.7-1.9 22.3c0 38.2 16.8 72.5 43.3 96c-.2 0-.4 0-.7 0L21.3 320C9.6 320 0 310.4 0 298.7zM405.3 320c-.2 0-.4 0-.7 0c26.6-23.5 43.3-57.8 43.3-96c0-7.6-.7-15-1.9-22.3c13.6-6.3 28.7-9.7 44.6-9.7l42.7 0C592.2 192 640 239.8 640 298.7c0 11.8-9.6 21.3-21.3 21.3l-213.3 0zM224 224a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zM128 485.3C128 411.7 187.7 352 261.3 352l117.3 0C452.3 352 512 411.7 512 485.3c0 14.7-11.9 26.7-26.7 26.7l-330.7 0c-14.7 0-26.7-11.9-26.7-26.7z%22/%3E%3C/svg%3E')}
.fa-wand-magic-sparkles{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 576 512%22%3E%3Cpath d=%22M234.7 42.7L197 56.8c-3 1.1-5 4-5 7.2s2 6.1 5 7.2l37.7 14.1L248.8 123c1.1 3 4 5 7.2 5s6.1-2 7.2-5l14.1-37.7L315 71.2c3-1.1 5-4 5-7.2s-2-6.1-5-7.2L277.3 42.7 263.2 5c-1.1-3-4-5-7.2-5s-6.1 2-7.2 5L234.7 42.7zM46.1 395.4c-18.7 18.7-18.7 49.1 0 67.9l34.6 34.6c18.7 18.7 49.1 18.7 67.9 0L529.9 116.5c18.7-18.7 18.7-49.1 0-67.9L495.3 14.1c-18.7-18.7-49.1-18.7-67.9 0L46.1 395.4zM484.6 82.6l-105 105-23.3-23.3 105-105 23.3 23.3zM7.5 117.2C3 118.9 0 123.2 0 128s3 9.1 7.5 10.8L64 160l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L128 160l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L128 96 106.8 39.5C105.1 35 100.8 32 96 32s-9.1 3-10.8 7.5L64 96 7.5 117.2zm352 256c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 416l21.2 56.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 416l56.5-21.2c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 352l-21.2-56.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 352l-56.5 21.2z%22/%3E%3C/svg%3E')}
.fa-xmark{-webkit-mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z%22/%3E%3C/svg%3E');mask-image:url('data:image/svg+xml;utf8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 384 512%22%3E%3Cpath d=%22M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z%22/%3E%3C/svg%3E')}
