/* 入口安全码与线路页面样式。 */
        * {
            box-sizing: border-box;
        }

        html,
        body {
            min-height: 100%;
            margin: 0;
        }

        body {
            font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif;
            color: #111827;
            background: #fff;
        }

        a {
            color: inherit;
            text-decoration: none;
        }

        .page {
            min-height: 100dvh;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 24px 16px 170px;
            overflow: hidden;
        }

        .search-form {
            width: min(720px, 100%);
        }

        .search-panel {
            display: grid;
            grid-template-columns: minmax(0, 1fr) 108px;
            gap: 10px;
            padding: 12px;
            border: 1px solid #dfe7f1;
            border-radius: 12px;
            background: rgb(255 255 255 / 96%);
            box-shadow: 0 18px 46px rgb(30 41 59 / 8%);
        }

        .safe-input {
            width: 100%;
            min-width: 0;
            height: 46px;
            border: 1px solid #d4deea;
            border-radius: 7px;
            background: #fbfdff;
            padding: 0 16px;
            outline: none;
            color: #243044;
            font-size: 19px;
            font-weight: 600;
            letter-spacing: 0;
            transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
        }

        .safe-input::placeholder {
            color: #9aa5b5;
        }

        .safe-input:focus {
            border-color: #dc3f3f;
            background: #fff;
            box-shadow: 0 0 0 3px rgb(220 63 63 / 10%);
        }

        .primary-button {
            height: 46px;
            border: 1px solid #aa2a2a;
            border-radius: 7px;
            background: linear-gradient(180deg, #d64a45 0%, #b82b2b 100%);
            color: #fff;
            font-size: 17px;
            font-weight: 800;
            cursor: pointer;
            box-shadow: 0 10px 22px rgb(184 43 43 / 18%);
            transition: filter .15s ease, transform .08s ease, opacity .15s ease;
        }

        .primary-button:hover {
            filter: brightness(1.05);
        }

        .primary-button:active {
            transform: translateY(1px);
        }

        .primary-button:disabled {
            cursor: not-allowed;
            opacity: .62;
            filter: none;
        }

        .message {
            min-height: 18px;
            margin: 7px 0 0;
            text-align: center;
            color: #dc2626;
            font-size: 13px;
            font-weight: 600;
        }

        .browser-tip {
            margin: 7px 0 0;
            text-align: center;
            color: #e45151;
            font-size: 13px;
        }

        .error-card {
            width: min(620px, 100%);
            padding: 32px;
            border: 1px solid #d8e1ed;
            border-radius: 16px;
            background: rgb(255 255 255 / 92%);
            text-align: center;
            box-shadow: 0 18px 44px rgb(15 23 42 / 10%);
        }

        .error-title {
            margin: 0;
            color: #dc3f3f;
            font-size: 30px;
            font-weight: 800;
        }

        .error-text {
            margin: 24px 0 0;
            color: #64748b;
            font-size: 18px;
            font-weight: 700;
        }

        .error-actions {
            display: flex;
            justify-content: center;
            gap: 16px;
            margin-top: 32px;
            flex-wrap: wrap;
        }

        .secondary-button {
            height: 46px;
            min-width: 132px;
            border: 1px solid #cbd5e1;
            border-radius: 8px;
            background: #fff;
            color: #3454d1;
            font-size: 16px;
            font-weight: 800;
            cursor: pointer;
        }

        .hint-box {
            margin-top: 40px;
            padding: 20px 24px;
            border-radius: 12px;
            background: #edf3ff;
            text-align: left;
            color: #64748b;
            font-size: 14px;
            font-weight: 600;
        }

        .hint-title {
            margin: 0 0 16px;
            color: #243044;
            font-weight: 800;
        }

        .hint-line {
            margin: 12px 0 0;
        }

        .result-wrap {
            width: min(880px, 100%);
        }

        .site-title {
            text-align: center;
            color: #c94c47;
            font-size: 48px;
            line-height: 1;
            font-weight: 900;
            text-shadow: 0 10px 20px rgb(201 76 71 / 12%);
            word-break: break-word;
        }

        .result-panel {
            margin-top: 26px;
            padding: 30px 34px 28px;
            border: 1px solid #e1e8f2;
            border-radius: 14px;
            background:
                linear-gradient(180deg, rgb(255 255 255 / 98%) 0%, rgb(255 253 253 / 98%) 100%);
            box-shadow: 0 24px 58px rgb(30 41 59 / 9%);
        }

        .empty-lines {
            padding: 32px 0;
            text-align: center;
            color: #92400e;
            font-size: 14px;
            font-weight: 600;
        }

        .line-group + .line-group {
            margin-top: 28px;
        }

        .group-title {
            margin: 0;
            color: #3f75b7;
            font-size: 21px;
            font-weight: 800;
            letter-spacing: 0;
            text-align: center;
        }

        .line-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(136px, 168px));
            justify-content: center;
            gap: 12px;
            margin-top: 14px;
            padding-top: 20px;
            border-top: 1px dashed #d6e2ef;
        }

        .line-card {
            min-height: 48px;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            padding: 9px 16px;
            border: 1px solid #c4dcf3;
            border-radius: 8px;
            background: linear-gradient(180deg, #fbfdff 0%, #eef7ff 100%);
            color: #243044;
            font-size: 17px;
            font-weight: 800;
            box-shadow: 0 8px 16px rgb(15 23 42 / 5%), inset 0 1px 0 rgb(255 255 255 / 92%);
            transition: border-color .15s ease, box-shadow .15s ease, background .15s ease, transform .08s ease;
        }

        .line-card:hover {
            border-color: #dc3f3f;
            background: linear-gradient(180deg, #fffafa, #fff1f2);
            box-shadow: 0 10px 22px rgb(220 63 63 / 13%);
        }

        .line-card:active {
            transform: translateY(1px);
        }

        .latency {
            color: rgb(201 76 71 / 64%);
            font-size: 13px;
            font-weight: 800;
            white-space: nowrap;
        }

        .lottery-link {
            display: block;
            margin-top: 32px;
            text-align: center;
            color: #3454d1;
            font-size: 16px;
            font-weight: 800;
            transition: color .15s ease;
        }

        .lottery-link:hover {
            color: #dc3f3f;
        }

        .hidden {
            display: none !important;
        }

        @media (max-width: 760px) {
            .page {
                align-items: flex-start;
                padding-top: 24vh;
                padding-bottom: 56px;
            }

            .search-panel {
                grid-template-columns: 1fr;
            }

            .primary-button {
                width: 100%;
            }

            .site-title {
                font-size: 34px;
            }

            .result-panel,
            .error-card {
                padding: 24px 18px;
            }

            .line-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .line-card {
                font-size: 16px;
            }
        }

        @media (max-width: 420px) {
            .page {
                padding-left: 12px;
                padding-right: 12px;
            }

            .line-grid {
                grid-template-columns: 1fr;
            }
        }

