body {
            margin: 0;
            overflow: hidden;
            font-family: 'Microsoft YaHei', 'Segoe UI', Roboto, sans-serif;
            background-color: #eef2f5;
            touch-action: pan-x pan-y;
        }
        /* 原顶部 info 区块已完全移除，不再显示任何文字 */
        #stats-panel {
            position: absolute;
            top: 20px;
            right: 20px;
            background: rgba(255,255,255,0.85);
            backdrop-filter: blur(8px);
            padding: 12px 20px;
            border-radius: 16px;
            color: #1e2a3a;
            font-family: monospace;
            font-size: 14px;
            text-align: left;
            border-right: 3px solid #ff5555;
            pointer-events: none;
            z-index: 10;
            line-height: 1.5;
            box-shadow: 0 2px 12px rgba(0,0,0,0.1);
            font-weight: 500;
        }
        #stats-panel h4 {
            margin: 0 0 8px 0;
            color: #ff5533;
            text-align: center;
        }
        #controls {
            position: absolute;
            bottom: 20px;
            left: 20px;
            right: 20px;
            background: rgba(255,255,255,0.94);
            backdrop-filter: blur(12px);
            border-radius: 28px;
            padding: 16px 28px;
            display: flex;
            flex-wrap: wrap;
            justify-content: space-between;
            align-items: center;
            gap: 14px;
            z-index: 20;
            color: #1e2a3a;
            font-size: 14px;
            font-weight: 500;
            border: 1px solid rgba(0,0,0,0.08);
            box-shadow: 0 6px 24px rgba(0,0,0,0.1);
            pointer-events: auto;
            font-family: monospace;
            padding-bottom: 74px;
        }
        body.controls-collapsed #controls {
            display: none;
        }
        #collapsed-controls {
            position: absolute;
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            display: none;
            align-items: center;
            justify-content: center;
            gap: 12px;
            background: transparent;
            padding: 0;
            z-index: 20;
            pointer-events: auto;
        }
        body.controls-collapsed #collapsed-controls {
            display: flex;
        }
        #collapsed-controls button {
            width: 44px;
            height: 44px;
            padding: 0;
            border-radius: 50%;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 20px;
            border: 2px solid rgba(30,42,58,0.14);
            background: rgba(255,255,255,0.92);
            color: #2c3e4e;
            box-shadow: 0 5px 18px rgba(0,0,0,0.18);
            backdrop-filter: blur(10px);
        }
        #expandControlsBtn {
            background: rgba(255,255,255,0.94);
            color: #2c3e4e;
        }
        #collapsed-controls #collapsedPlayBtn,
        #collapsed-controls #collapsedPauseBtn {
            width: 50px;
            height: 50px;
            border: none;
            color: #ffffff;
            box-shadow: 0 3px 10px rgba(0,0,0,0.24);
        }
        #collapsed-controls #collapsedPlayBtn {
            background: #16a76a;
        }
        #collapsed-controls #collapsedPlayBtn::before {
            content: "";
            width: 0;
            height: 0;
            border-top: 12px solid transparent;
            border-bottom: 12px solid transparent;
            border-left: 18px solid #ffffff;
            margin-left: 4px;
        }
        #collapsed-controls #collapsedPauseBtn {
            background: #ff9f1c;
        }
        #collapsed-controls #collapsedPauseBtn::before,
        #collapsed-controls #collapsedPauseBtn::after {
            content: "";
            width: 7px;
            height: 24px;
            background: #ffffff;
            border-radius: 3px;
        }
        #collapsed-controls #collapsedPauseBtn::before {
            margin-right: 4px;
        }
        #collapsed-controls #collapsedPauseBtn::after {
            margin-left: 4px;
        }
        #collapsed-controls button:hover {
            transform: scale(1.06);
        }
        #expandControlsBtn:hover {
            background: #ffffff;
        }
        #collapsed-controls #collapsedPlayBtn:hover {
            background: #21c47d;
        }
        #collapsed-controls #collapsedPauseBtn:hover {
            background: #ffb33f;
        }
        .control-group {
            display: flex;
            align-items: center;
            gap: 12px;
            background: rgba(0,0,0,0.04);
            padding: 6px 18px;
            border-radius: 48px;
        }
        .control-group span {
            white-space: nowrap;
        }
        .control-group label {
            font-weight: bold;
            letter-spacing: 1px;
            color: #2c3e4e;
        }
        input {
            cursor: pointer;
            background: #ffffff;
            border: 1px solid #ccc;
            color: #1e2a3a;
            padding: 6px 12px;
            border-radius: 32px;
            font-weight: normal;
        }
        input[type="range"].time-slider {
            width: 260px;
            background: #e9ecef;
        }
        input[type="range"] {
            width: 150px;
            background: #e9ecef;
        }
        input[type="number"] {
            width: 80px;
            text-align: center;
            background: #f8f9fa;
        }
        input[type="number"].date-part-input {
            width: 48px;
            padding: 6px 8px;
        }
        input[type="checkbox"] {
            width: 16px;
            height: 16px;
            padding: 0;
        }
        .value-display {
            min-width: 60px;
            text-align: center;
            background: #e9ecef;
            padding: 4px 12px;
            border-radius: 32px;
            color: #1e2a3a;
        }
        button {
            background: #ffaa33;
            border: none;
            padding: 6px 20px;
            border-radius: 40px;
            font-weight: bold;
            cursor: pointer;
            transition: 0.2s;
            color: #2c3e4e;
        }
        button:hover {
            background: #ffcc55;
            transform: scale(1.02);
        }
        #collapseControlsBtn {
            position: absolute;
            right: 28px;
            bottom: 18px;
            min-width: 116px;
            height: 46px;
            padding: 8px 22px;
            font-size: 15px;
            box-shadow: 0 4px 14px rgba(0,0,0,0.16);
        }
        .solar-term-buttons {
            display: flex;
            gap: 8px;
            background: rgba(0,0,0,0.04);
            padding: 4px 12px;
            border-radius: 48px;
        }
        .solar-term-buttons button {
            background: #88aadd;
            color: white;
            padding: 4px 12px;
            font-size: 12px;
        }
        .solar-term-buttons button:hover {
            background: #aaccff;
        }
        .time-control-buttons {
            display: flex;
            gap: 8px;
            background: rgba(0,0,0,0.04);
            padding: 4px 12px;
            border-radius: 48px;
        }
        .time-control-buttons button {
            background: #66bb99;
            color: white;
            padding: 6px 18px;
            font-size: 14px;
        }
        .time-control-buttons button.pause-btn {
            background: #aa8866;
        }
        .time-control-buttons button.speed-btn {
            background: #88aadd;
            padding: 6px 10px;
        }
        .time-control-buttons button.speed-btn.active {
            background: #2266cc;
            color: #ffffff;
        }
        .time-control-buttons button:hover {
            background: #88ddbb;
        }
        .time-control-buttons button.pause-btn:hover {
            background: #ccaa88;
        }
        .time-control-buttons button.speed-btn:hover {
            background: #6699ee;
        }
        .time-control-buttons .night-boost-control,
        .time-control-buttons .path-label-control,
        .time-control-buttons .underground-sun-control,
        .time-control-buttons .seasonal-sun-path-control {
            display: flex;
            align-items: center;
            gap: 5px;
            color: #2c3e4e;
            font-weight: bold;
            padding: 4px 10px;
            border-radius: 32px;
            background: rgba(255,255,255,0.45);
            white-space: nowrap;
        }
        button.lock-btn {
            background: #66bb99;
            color: white;
            padding: 6px 14px;
            font-size: 13px;
        }
        button.lock-btn.active {
            background: #cc6633;
        }
        .signature {
            font-size: 13px;
            color: #5a6e7c;
            background: rgba(0,0,0,0.05);
            padding: 6px 16px;
            border-radius: 40px;
            letter-spacing: 1px;
            font-family: 'KaiTi', 'Microsoft YaHei', monospace;
            white-space: nowrap;
        }
        @media (max-width: 1000px) {
            #controls { left: 12px; right: 12px; bottom: 12px; padding: 14px 18px 74px; max-height: 58vh; overflow-y: auto; justify-content: center; }
            #collapsed-controls { bottom: 12px; }
            #collapseControlsBtn { right: 18px; bottom: 16px; min-width: 108px; height: 44px; }
            .control-group { padding: 6px 12px; gap: 8px; flex-wrap: wrap; justify-content: center; }
            input[type="range"].time-slider { width: 180px; }
            input[type="range"] { width: 110px; }
            input[type="number"] { width: 72px; }
            input[type="number"].date-part-input { width: 42px; }
            .value-display { min-width: 50px; font-size: 12px; }
            .signature { font-size: 10px; padding: 4px 12px; }
            .solar-term-buttons button { padding: 2px 8px; font-size: 10px; }
            .time-control-buttons { flex-wrap: wrap; justify-content: center; }
            .time-control-buttons button { padding: 4px 12px; font-size: 12px; }
        }
        @media (max-width: 640px) {
            #stats-panel {
                top: 8px;
                right: 8px;
                max-width: calc(100vw - 24px);
                padding: 8px 10px;
                border-radius: 12px;
                font-size: 11px;
                line-height: 1.35;
                text-align: left;
                border-right-width: 2px;
            }
            #stats-panel h4 {
                margin-bottom: 4px;
                font-size: 12px;
            }
            #controls {
                left: 8px;
                right: 8px;
                bottom: 8px;
                max-height: min(66vh, 520px);
                padding: 12px 12px 72px;
                border-radius: 20px;
                gap: 8px;
                align-content: flex-start;
                font-size: 12px;
            }
            #collapsed-controls {
                bottom: max(10px, env(safe-area-inset-bottom));
                gap: 10px;
            }
            #collapsed-controls button {
                width: 42px;
                height: 42px;
                font-size: 17px;
            }
            #collapsed-controls #collapsedPlayBtn,
            #collapsed-controls #collapsedPauseBtn {
                width: 52px;
                height: 52px;
            }
            #collapsed-controls #collapsedPlayBtn::before {
                border-top-width: 13px;
                border-bottom-width: 13px;
                border-left-width: 20px;
            }
            #collapsed-controls #collapsedPauseBtn::before,
            #collapsed-controls #collapsedPauseBtn::after {
                width: 8px;
                height: 26px;
            }
            .control-group,
            .time-control-buttons,
            .solar-term-buttons {
                width: 100%;
                box-sizing: border-box;
                justify-content: center;
                gap: 6px;
                padding: 8px 10px;
                border-radius: 18px;
            }
            .control-group span:first-child {
                width: 100%;
                text-align: center;
            }
            input[type="range"],
            input[type="range"].time-slider {
                width: min(100%, 230px);
                flex: 1 1 150px;
            }
            input[type="number"] {
                width: 64px;
                padding: 5px 8px;
            }
            input[type="number"].date-part-input {
                width: 44px;
            }
            .value-display {
                min-width: 52px;
                padding: 4px 8px;
                font-size: 11px;
            }
            button {
                padding: 6px 12px;
                font-size: 12px;
            }
            #collapseControlsBtn {
                right: 14px;
                bottom: 14px;
                min-width: 104px;
                height: 44px;
                font-size: 14px;
            }
            .time-control-buttons button {
                flex: 1 1 64px;
                padding: 6px 8px;
            }
            .time-control-buttons button.speed-btn {
                flex: 0 1 50px;
            }
            .time-control-buttons .night-boost-control,
            .time-control-buttons .path-label-control,
            .time-control-buttons .underground-sun-control,
            .time-control-buttons .seasonal-sun-path-control {
                width: 100%;
                justify-content: center;
                white-space: normal;
                text-align: center;
                font-size: 11px;
            }
            .solar-term-buttons {
                flex-wrap: wrap;
            }
            .solar-term-buttons button {
                flex: 1 1 68px;
                padding: 5px 8px;
                font-size: 11px;
            }
            .signature {
                width: 100%;
                box-sizing: border-box;
                text-align: center;
                font-size: 10px;
                padding: 5px 10px;
            }
        }
        @media (max-width: 420px) {
            #stats-panel {
                font-size: 10px;
                max-width: 168px;
            }
            #controls {
                font-size: 11px;
            }
            .control-group {
                padding: 7px 8px;
            }
            input[type="range"],
            input[type="range"].time-slider {
                flex-basis: 130px;
            }
            input[type="number"] {
                width: 58px;
            }
            button {
                padding-left: 10px;
                padding-right: 10px;
            }
        }
