/* roulang page: index */
:root {
      --bg-matte: #F7F8FA;
      --bg-dark: #0D1117;
      --color-slate-main: #1E2229;
      --color-emerald-accent: #00E599;
      --color-cyan-lake: #00B4D8;
      --border-light: #E2E8F0;
      --border-dark: rgba(255, 255, 255, 0.08);
      --font-stack: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
    }

    body {
      font-family: var(--font-stack);
      background-color: var(--bg-matte);
      color: #334155;
      line-height: 1.75;
      overflow-x: hidden;
      -webkit-font-smoothing: antialiased;
    }

    .num-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
      font-feature-settings: "tnum";
    }

    .card-hover-fx {
      transition: transform 250ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 250ms ease-out, border-color 250ms ease-out;
    }
    .card-hover-fx:hover {
      transform: translateY(-4px);
      box-shadow: 0 12px 30px -10px rgba(0, 0, 0, 0.08);
      border-color: #CBD5E1;
    }

    .card-dark-hover:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 36px -12px rgba(0, 229, 153, 0.12);
      border-color: rgba(0, 229, 153, 0.3);
    }

    /* 细腻边框与阴影规范 */
    .fine-border {
      border: 1px solid var(--border-light);
    }
    .fine-border-dark {
      border: 1px solid var(--border-dark);
    }
    
    .status-pulse {
      position: relative;
    }
    .status-pulse::after {
      content: '';
      position: absolute;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      background: var(--color-emerald-accent);
      top: 50%;
      left: 0;
      transform: translateY(-50%);
      box-shadow: 0 0 8px var(--color-emerald-accent);
    }

    /* 折叠手风琴细节 */
    details > summary {
      list-style: none;
    }
    details > summary::-webkit-details-marker {
      display: none;
    }
    details[open] summary svg {
      transform: rotate(180deg);
    }
