/* roulang page: index */
:root {
            --hd-primary: #0B0F17;
            --hd-secondary: #111827;
            --hd-accent: #00D2A0;
            --hd-accent-blue: #0A84FF;
            --hd-surface: #FFFFFF;
            --hd-bg: #F8FAFC;
            --hd-border: #E2E8F0;
            --hd-text-main: #0F172A;
            --hd-text-muted: #64748B;
        }
        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
            background-color: var(--hd-bg);
            color: var(--hd-text-main);
            overflow-x: hidden;
        }
        .mono-font {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        }
        .hd-glass {
            background: rgba(255, 255, 255, 0.88);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
        }
        .hd-glow-accent {
            box-shadow: 0 0 25px -5px rgba(0, 210, 160, 0.35);
        }
        .hd-card {
            background: #FFFFFF;
            border: 1px solid var(--hd-border);
            border-radius: 14px;
            transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
        }
        .hd-card:hover {
            transform: translateY(-4px);
            border-color: #CBD5E1;
            box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.08);
        }
        .step-line::after {
            content: '';
            position: absolute;
            top: 24px;
            left: 50%;
            width: 100%;
            height: 2px;
            background: #E2E8F0;
            z-index: 1;
        }
        @media (max-width: 768px) {
            .step-line::after {
                display: none;
            }
        }
        .badge-status {
            display: inline-flex;
            align-items: center;
            padding: 2px 10px;
            border-radius: 9999px;
            font-size: 0.75rem;
            font-weight: 600;
        }

/* roulang page: category1 */
:root {
      --hd-primary: #0B0F17;
      --hd-secondary: #111827;
      --hd-accent: #00D2A0;
      --hd-accent-blue: #0A84FF;
      --hd-surface: #FFFFFF;
      --hd-bg: #F8FAFC;
      --hd-border: #E2E8F0;
      --hd-text-main: #0F172A;
      --hd-text-muted: #64748B;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: var(--hd-bg);
      color: var(--hd-text-main);
      overflow-x: hidden;
    }
    .mono-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .hd-card {
      background: #FFFFFF;
      border: 1px solid var(--hd-border);
      border-radius: 14px;
      transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .hd-card:hover {
      transform: translateY(-4px);
      border-color: #CBD5E1;
      box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.08);
    }
    .badge-status {
      display: inline-flex;
      align-items: center;
      padding: 2px 10px;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
    }
    /* 进度环仪表盘与蓝图专用微质感 */
    .conic-dial {
      background: conic-gradient(#00D2A0 0% 88%, #E2E8F0 88% 100%);
    }
    .custom-scrollbar::-webkit-scrollbar {
      height: 6px;
    }
    .custom-scrollbar::-webkit-scrollbar-track {
      background: #F1F5F9;
    }
    .custom-scrollbar::-webkit-scrollbar-thumb {
      background: #CBD5E1;
      border-radius: 4px;
    }

/* roulang page: category2 */
:root {
      --hd-primary: #0B0F17;
      --hd-secondary: #111827;
      --hd-accent: #00D2A0;
      --hd-accent-blue: #0A84FF;
      --hd-surface: #FFFFFF;
      --hd-bg: #F8FAFC;
      --hd-border: #E2E8F0;
      --hd-text-main: #0F172A;
      --hd-text-muted: #64748B;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: var(--hd-bg);
      color: var(--hd-text-main);
      overflow-x: hidden;
    }
    .mono-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .hd-card {
      background: #FFFFFF;
      border: 1px solid var(--hd-border);
      border-radius: 14px;
      transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .hd-card:hover {
      transform: translateY(-4px);
      border-color: #CBD5E1;
      box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.08);
    }
    .badge-status {
      display: inline-flex;
      align-items: center;
      padding: 2px 10px;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
    }
    .grid-pattern {
      background-size: 32px 32px;
      background-image: linear-gradient(to right, rgba(226, 232, 240, 0.6) 1px, transparent 1px),
                        linear-gradient(to bottom, rgba(226, 232, 240, 0.6) 1px, transparent 1px);
    }
    @media (max-width: 768px) {
      .step-line::after {
        display: none;
      }
    }

/* roulang page: category3 */
:root {
      --hd-primary: #0B0F17;
      --hd-secondary: #111827;
      --hd-accent: #00D2A0;
      --hd-accent-blue: #0A84FF;
      --hd-surface: #FFFFFF;
      --hd-bg: #F8FAFC;
      --hd-border: #E2E8F0;
      --hd-text-main: #0F172A;
      --hd-text-muted: #64748B;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: var(--hd-bg);
      color: var(--hd-text-main);
      overflow-x: hidden;
    }
    .mono-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .hd-card {
      background: #FFFFFF;
      border: 1px solid var(--hd-border);
      border-radius: 14px;
      transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .hd-card:hover {
      transform: translateY(-4px);
      border-color: #CBD5E1;
      box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.08);
    }
    .badge-status {
      display: inline-flex;
      align-items: center;
      padding: 2px 10px;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
    }
    .focus-ring:focus {
      outline: none;
      box-shadow: 0 0 0 2px rgba(0, 210, 160, 0.2);
      border-color: var(--hd-accent);
    }
    details > summary {
      list-style: none;
    }
    details > summary::-webkit-details-marker {
      display: none;
    }
    details[open] summary svg {
      transform: rotate(180deg);
    }

/* roulang page: category4 */
:root {
      --hd-primary: #0B0F17;
      --hd-secondary: #111827;
      --hd-accent: #00D2A0;
      --hd-accent-blue: #0A84FF;
      --hd-surface: #FFFFFF;
      --hd-bg: #F8FAFC;
      --hd-border: #E2E8F0;
      --hd-text-main: #0F172A;
      --hd-text-muted: #64748B;
    }
    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      background-color: var(--hd-bg);
      color: var(--hd-text-main);
      overflow-x: hidden;
    }
    .mono-font {
      font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    }
    .hd-card {
      background: #FFFFFF;
      border: 1px solid var(--hd-border);
      border-radius: 14px;
      transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
    }
    .hd-card:hover {
      transform: translateY(-4px);
      border-color: #CBD5E1;
      box-shadow: 0 16px 36px -8px rgba(15, 23, 42, 0.08);
    }
    .badge-status {
      display: inline-flex;
      align-items: center;
      padding: 2px 10px;
      border-radius: 9999px;
      font-size: 0.75rem;
      font-weight: 600;
    }
    .custom-scroll::-webkit-scrollbar {
      height: 6px;
    }
    .custom-scroll::-webkit-scrollbar-track {
      background: #F1F5F9;
    }
    .custom-scroll::-webkit-scrollbar-thumb {
      background: #CBD5E1;
      border-radius: 4px;
    }
