
/* Categories Page */
.category-section {
      margin-bottom: var(--spacing-lg);
    }
    
    .category-section-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: var(--spacing-sm) 0;
      margin-bottom: var(--spacing-sm);
    }
    
    .category-section-title {
      font-size: var(--font-size-sm);
      font-weight: var(--font-weight-semibold);
      color: var(--color-text-secondary);
      text-transform: uppercase;
    }
    
    .category-group {
      background-color: var(--color-bg-secondary);
      border: 1px solid var(--color-border);
      border-radius: 0 var(--radius-lg) var(--radius-lg) var(--radius-lg);
      margin-bottom: var(--spacing-md);
      overflow: hidden;
      transition: transform 0.2s ease-out, margin-bottom 0.2s ease-out; /* 添加平滑过渡 */
    }

    /* 拖拽样式（PC和移动端统一） */
    .category-group.dragging-mobile {
      opacity: 0.95;
      box-shadow: 0 12px 32px rgba(0, 0, 0, 0.25);
      z-index: 1000;
      position: fixed; /* 固定定位脱离文档流 */
      pointer-events: none; /* 拖拽时不干扰检测 */
      transition: none; /* 拖拽时不需要过渡 */
    }

    .category-group.drag-placeholder {
      opacity: 0.3;
      pointer-events: none;
    }

    .category-parent {
      display: flex;
      align-items: center;
      padding: var(--spacing-md);
      cursor: pointer;
      transition: background-color var(--transition-fast);
    }

    @media (hover: hover) and (pointer: fine) {
      .category-parent:hover {
        background-color: var(--color-bg-tertiary);
      }
    }

    /* 拖拽手柄 */
    .drag-handle {
      cursor: grab;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 32px;
      height: 32px;
      color: var(--color-text-tertiary);
      transition: color var(--transition-fast);
      border-radius: var(--radius-md);
    }

    @media (hover: hover) and (pointer: fine) {
      .drag-handle:hover {
        color: var(--color-primary);
        background-color: var(--color-bg-tertiary);
      }
    }

    .drag-handle:active {
      cursor: grabbing;
      background-color: var(--color-primary-light);
    }

    .drag-handle svg {
      width: 18px;
      height: 18px;
    }
    
    .category-parent:hover {
      background-color: var(--color-bg-tertiary);
    }
    
    .category-expand-icon {
      width: 20px;
      height: 20px;
      color: var(--color-text-tertiary);
      transition: transform var(--transition-fast);
      margin-right: var(--spacing-sm);
    }
    
    .category-parent.expanded .category-expand-icon {
      transform: rotate(90deg);
    }
    
    .category-name {
      flex: 1;
      color: var(--color-text-secondary);
      font-weight: var(--font-weight-medium);
    }
    
    .category-actions {
      display: flex;
      gap: var(--spacing-xs);
    }
    
    .category-children {
      display: none;
      border-top: 1px solid var(--color-border-light);
    }
    
    .category-children.visible {
      display: block;
    }
    
    .category-child {
      display: flex;
      align-items: center;
      padding: var(--spacing-sm) var(--spacing-md);
      padding-left: 52px;
      transition: background-color var(--transition-fast);
    }

    @media (hover: hover) and (pointer: fine) {
      .category-child:hover {
        background-color: var(--color-bg-tertiary);
      }
    }

    .category-child:not(:last-child) {
      border-bottom: 1px solid var(--color-border-light);
    }
    
    .category-child-name {
      flex: 1;
      font-size: var(--font-size-sm);
    }
    
    .category-default-badge {
      font-size: var(--font-size-xs);
      color: var(--color-text-tertiary);
      margin-left: var(--spacing-sm);
    }
    
    .add-child-btn {
      padding: var(--spacing-sm) var(--spacing-md);
      padding-left: 52px;
      color: var(--color-primary);
      font-size: var(--font-size-sm);
      display: flex;
      align-items: center;
      gap: var(--spacing-xs);
      border-top: 1px solid var(--color-border-light);
    }

    @media (hover: hover) and (pointer: fine) {
      .add-child-btn:hover {
        background-color: var(--color-bg-tertiary);
      }
    }

    .preset-food-info {
      padding: 0 0 var(--spacing-sm) var(--spacing-md);
      font-size: 0.8rem;
    }

    /* Nutrition Goals Card */
    .nutrition-goals-card {
      background-color: var(--color-bg-secondary);
      border-radius: var(--radius-lg);
      margin-bottom: var(--spacing-lg);
      padding: var(--spacing-md);
    }

    .nutrition-goals-header {
      margin-bottom: var(--spacing-md);
    }

    .nutrition-goal-item {
      margin-bottom: var(--spacing-md);
    }

    .nutrition-goal-item:last-child {
      margin-bottom: 0;
    }

    .input-with-ticker {
      position: relative;
      display: flex;
      align-items: center;
    }

    .input-with-ticker .form-input {
      flex: 1;
      padding-right: 80px;
    }

    .input-actions {
      position: absolute;
      right: 8px;
      display: flex;
      gap: 4px;
    }

    .ticker-btn,
    .reset-btn {
      width: 32px;
      height: 32px;
      display: flex;
      align-items: center;
      justify-content: center;
      border: none;
      border-radius: var(--radius-md);
      cursor: pointer;
      transition: all var(--transition-fast);
    }

    .ticker-btn {
      background-color: var(--color-primary);
      color: white;
    }

    @media (hover: hover) and (pointer: fine) {
      .ticker-btn:hover {
        background-color: var(--color-primary-dark);
        transform: scale(1.05);
      }
    }

    .ticker-btn:active {
      transform: scale(0.95);
    }

    .reset-btn {
      background-color: var(--color-bg-tertiary);
      color: var(--color-text-secondary);
    }

    @media (hover: hover) and (pointer: fine) {
      .reset-btn:hover {
        background-color: var(--color-border);
        color: var(--color-text-primary);
        transform: scale(1.05);
      }
    }

    /* 自动计算开关 */
    .auto-calc-switch {
      display: flex;
      align-items: center;
      gap: var(--spacing-sm);
      cursor: pointer;
      user-select: none;
    }

    .auto-calc-switch input[type="checkbox"] {
      position: relative;
      width: 44px;
      height: 24px;
      appearance: none;
      background-color: var(--color-bg-tertiary);
      border-radius: 12px;
      outline: none;
      transition: background-color var(--transition-fast);
      cursor: pointer;
    }

    .auto-calc-switch input[type="checkbox"]:checked {
      background-color: var(--color-primary);
    }

    .auto-calc-switch input[type="checkbox"]::before {
      content: '';
      position: absolute;
      top: 2px;
      left: 2px;
      width: 20px;
      height: 20px;
      background-color: white;
      border-radius: 50%;
      transition: transform var(--transition-fast);
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }

    .auto-calc-switch input[type="checkbox"]:checked::before {
      transform: translateX(20px);
    }

    .switch-text {
      font-size: var(--font-size-sm);
      color: var(--color-text-secondary);
    }

    /* 计算的目标值显示 */
    .calculated-goals-info {
      display: flex;
      flex-direction: column;
      gap: var(--spacing-md);
    }

    .calculated-goals-info .info-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: var(--spacing-sm) var(--spacing-md);
      background-color: var(--color-bg-secondary);
      border-radius: 0 var(--radius-md) var(--radius-md) var(--radius-md);
      border: 1px solid var(--color-border);
    }

    .calculated-goals-info .info-label {
      font-size: var(--font-size-sm);
      color: var(--color-text-secondary);
    }

    .calculated-goals-info .info-value {
      font-size: var(--font-size-lg);
      color: var(--color-primary);
      font-weight: var(--font-weight-semibold);
    }

    .calc-note {
      text-align: center;
      padding: var(--spacing-sm);
      margin-top: var(--spacing-xs);
    }

    .manual-goals-input {
      /* 与原有样式保持一致 */
    }

    .reset-btn:active {
      transform: scale(0.95);
    }

    .ticker-btn svg,
    .reset-btn svg {
      width: 16px;
      height: 16px;
    }

    /* Icon Selector */
    .icon-selector {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
      gap: var(--spacing-sm);
      max-height: 200px;
      overflow-y: auto;
      padding: var(--spacing-sm);
      background-color: var(--color-bg-tertiary);
      border-radius: var(--radius-lg);
      border: 1px solid var(--color-border);
    }

    .icon-selector-loading {
      grid-column: 1 / -1;
      text-align: center;
      padding: var(--spacing-lg);
      color: var(--color-text-secondary);
    }

    .icon-option {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: var(--spacing-sm);
      border: 2px solid var(--color-border);
      border-radius: var(--radius-md);
      cursor: pointer;
      transition: all var(--transition-fast);
      background-color: var(--color-bg-secondary);
    }

    @media (hover: hover) and (pointer: fine) {
      .icon-option:hover {
        border-color: var(--color-primary);
        background-color: var(--color-primary-light);
      }
    }

    .icon-option.selected {
      border-color: var(--color-primary);
      background-color: var(--color-primary-light);
      box-shadow: 0 0 0 2px var(--color-primary);
    }

    .icon-option img {
      width: 32px;
      height: 32px;
      margin-bottom: var(--spacing-xs);
      /* 浅色主题：#333333 */
      filter: brightness(0) saturate(100%) invert(20%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
    }

    /* 深色主题：纯黑 */
    html[data-theme="dark"] .icon-option img {
      filter: brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(100%) contrast(100%);
    }

    .icon-option-name {
      font-size: var(--font-size-xs);
      color: var(--color-text-secondary);
      text-align: center;
      word-break: break-all;
      line-height: 1.2;
    }

    /* 高亮动画效果 */
    .highlight-animation {
      animation: highlight-pulse 2s ease-out;
    }

    @keyframes highlight-pulse {
      0% {
        background-color: var(--color-primary-light);
      }
      50% {
        background-color: var(--color-primary-light);
      }
      100% {
        background-color: var(--color-bg-secondary);
      }
    }

    .category-child.highlight-animation {
      animation: highlight-pulse-child 2s ease-out;
    }

    @keyframes highlight-pulse-child {
      0% {
        background-color: var(--color-primary-light);
      }
      50% {
        background-color: var(--color-primary-light);
      }
      100% {
        background-color: transparent;
      }
    }
