        * { margin: 0; padding: 0; box-sizing: border-box; }
        html, body { 
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            -webkit-text-size-adjust: 100%;
            text-size-adjust: 100%;
            height: 100%; width: 100%; overflow: hidden;
        }
        #map { width: 100%; height: var(--app-height, 100vh); position: fixed; top: 0; left: 0; }
        
        /* 权限弹窗 */
        .auth-modal {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(0,0,0,0.7); z-index: 2000;
            display: flex; align-items: center; justify-content: center;
        }
        .auth-box {
            background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
            padding: 32px 22px 24px;
            border-radius: 20px;
            width: min(88vw, 360px);
            max-width: 360px;
            text-align: center;
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 18px 44px rgba(15,35,60,0.24);
        }
        .auth-box h2 {
            font-size: 22px;
            margin-bottom: 12px;
            color: #1f2d3d;
            letter-spacing: 0.02em;
        }
        .auth-box input {
            width: 100%;
            min-height: 48px;
            padding: 13px 14px;
            border: 1px solid #d7e0e8;
            border-radius: 12px;
            font-size: 17px;
            margin-bottom: 14px;
            background: #f8fafc;
            color: #1f2d3d;
            transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
        }
        .auth-box input:focus {
            outline: none;
            border-color: #07c160;
            background: #fff;
            box-shadow: 0 0 0 3px rgba(7,193,96,0.14);
        }
        .auth-box button {
            width: 100%;
            min-height: 48px;
            padding: 13px 14px;
            background: linear-gradient(135deg, #07c160, #12b886);
            color: white;
            border: none;
            border-radius: 12px;
            font-size: 17px;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 10px 24px rgba(7,193,96,0.26);
        }
        .auth-box .error {
            color: #ff4d4f;
            font-size: 14px;
            margin-top: 10px;
            min-height: 20px;
            line-height: 1.5;
        }
        .force-password-box {
            width: min(92vw, 420px);
            text-align: left;
        }
        .force-password-box h3 {
            font-size: 20px;
            margin-bottom: 10px;
            color: #1f2d3d;
        }
        .force-password-box p {
            color: #5b6b7c;
            font-size: 14px;
            line-height: 1.6;
            margin-bottom: 12px;
        }
        .force-password-account {
            margin-bottom: 14px;
            padding: 10px 12px;
            border-radius: 10px;
            background: #f3f7fb;
            color: #1f2d3d;
            font-size: 14px;
        }
        .force-password-actions {
            display: flex;
            gap: 10px;
            margin-top: 6px;
        }
        .force-password-actions button {
            flex: 1;
            min-height: 44px;
            font-size: 15px;
        }
        .force-password-actions .secondary {
            background: #f3f5f7;
            color: #334155;
        }
        .startup-splash {
            position: fixed;
            inset: 0;
            z-index: 2200;
            display: flex;
            align-items: center;
            justify-content: center;
            background:
                radial-gradient(circle at top, rgba(7,193,96,0.14), transparent 36%),
                linear-gradient(180deg, #f7fbf9 0%, #eef5f1 100%);
        }
        .startup-splash.hidden {
            display: none;
        }
        .startup-card {
            width: min(86vw, 320px);
            padding: 26px 22px;
            border-radius: 18px;
            background: rgba(255,255,255,0.94);
            border: 1px solid rgba(7,193,96,0.12);
            box-shadow: 0 14px 36px rgba(31,45,61,0.12);
            text-align: center;
            color: #1f2d3d;
        }
        .startup-spinner {
            width: 34px;
            height: 34px;
            margin: 0 auto 14px;
            border-radius: 50%;
            border: 3px solid rgba(7,193,96,0.18);
            border-top-color: #07c160;
            animation: startupSpin 0.85s linear infinite;
        }
        .startup-title {
            font-size: 17px;
            font-weight: 700;
        }
        .startup-sub {
            margin-top: 8px;
            font-size: 13px;
            line-height: 1.6;
            color: #5b6b79;
        }
        @keyframes startupSpin {
            to { transform: rotate(360deg); }
        }
        
        /* 点位弹窗 */
        .point-modal {
            position: fixed; bottom: 0; left: 0; width: 100%;
            background: linear-gradient(180deg, #ffffff 0%, #f9fbfd 100%);
            border-radius: 24px 24px 0 0;
            padding: 20px 20px calc(20px + env(safe-area-inset-bottom)); z-index: 1012; transform: translateY(100%);
            transition: transform 0.3s; max-height: 80vh; overflow-y: auto;
            border-top: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 -14px 34px rgba(15,35,60,0.18);
        }
        .point-modal.show { transform: translateY(0); }
        .point-modal .header {
            display: flex; justify-content: space-between; align-items: center;
            gap: 12px;
            margin-bottom: 16px;
            position: sticky;
            top: -20px;
            z-index: 3;
            margin-left: -20px;
            margin-right: -20px;
            padding: 14px 20px 12px;
            background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(249,251,253,0.96) 100%);
            backdrop-filter: blur(10px);
            border-bottom: 1px solid rgba(31,45,61,0.06);
        }
        .point-modal h3 {
            font-size: 20px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.3;
        }
        .point-modal .close {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 36px;
            height: 36px;
            border-radius: 999px;
            background: #f5f8fb;
            border: 1px solid #dde7f0;
            font-size: 24px;
            line-height: 1;
            color: #66788a;
            cursor: pointer;
            flex: 0 0 auto;
            transition: background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
        }
        .point-modal .close:hover {
            background: #eff4f9;
            box-shadow: 0 4px 12px rgba(15,35,60,0.07);
        }
        .point-modal .close:active {
            transform: translateY(1px);
        }
        .point-modal .info {
            color: #5f6f80;
            font-size: 14px;
            margin-bottom: 15px;
            line-height: 1.65;
        }
        .point-modal .info span { color: #07c160; }

        .point-detail-modal {
            padding: 18px 18px calc(18px + env(safe-area-inset-bottom));
        }
        .point-detail-modal .header {
            align-items: flex-start;
            gap: 12px;
            margin-bottom: 10px;
        }
        .point-title-wrap {
            min-width: 0;
            flex: 1;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .point-title-wrap h3 {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .point-title-edit {
            flex: 0 0 auto;
            border: none;
            border-radius: 10px;
            padding: 6px 10px;
            background: #f0f7ff;
            color: #1677ff;
            cursor: pointer;
            font-size: 13px;
            font-weight: 700;
        }
        .point-meta-line {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-bottom: 12px;
        }
        .point-meta-chip {
            display: inline-flex;
            align-items: center;
            min-width: 0;
            max-width: 100%;
            padding: 5px 10px;
            border-radius: 999px;
            background: #f7fafc;
            border: 1px solid #e5edf4;
            color: #4f5f6f;
            font-size: 13px;
            line-height: 1.4;
        }
        .point-meta-chip span {
            color: #1677ff;
            font-weight: 700;
        }
        .point-detail-modal .current-status {
            border-radius: 14px;
            padding: 11px 12px;
            margin-bottom: 12px;
            background: #f6ffed;
            border-color: #b7eb8f;
        }
        .point-cleaning-card {
            background: #f0f7ff !important;
            border-color: #91caff !important;
            color: #315a80;
        }
        .point-status-line {
            display: flex;
            align-items: center;
            gap: 8px;
            flex-wrap: wrap;
        }
        .point-status-pill {
            display: inline-flex;
            align-items: center;
            border-radius: 999px;
            padding: 2px 9px;
            background: #07c160;
            color: #fff;
            font-weight: 700;
            line-height: 1.6;
        }
        .point-extra-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-top: 8px;
        }
        .point-extra-tag {
            border-radius: 999px;
            padding: 2px 8px;
            background: #fff7e6;
            color: #ad6800;
            border: 1px solid #ffd591;
            font-size: 12px;
        }
        .point-status-meta {
            display: block;
            margin-top: 8px;
            color: #7a8794;
            font-size: 12px;
        }
        .point-detail-modal .status-section {
            margin-bottom: 10px;
            padding: 11px 12px;
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .point-detail-modal .status-section-title {
            color: #5f6f80;
            font-weight: 700;
        }
        .point-action-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
            margin-top: 10px;
        }
        .point-action-grid .submit-btn {
            margin: 0;
            min-width: 0;
            padding: 12px;
        }
        .point-action-grid #submitStatusBtn,
        .point-action-grid #submitBtn {
            grid-column: 1 / -1;
        }

        @media (min-width: 700px) {
            .point-modal.point-detail-modal {
                left: 50%;
                bottom: 24px;
                width: min(540px, calc(100vw - 48px));
                border-radius: 20px;
                transform: translate(-50%, calc(100% + 48px));
                max-height: min(78vh, 720px);
            }
            .point-modal.point-detail-modal.show {
                transform: translate(-50%, 0);
            }
        }

        .industry-detail-modal {
            left: 50%;
            top: 50%;
            bottom: auto;
            width: min(680px, calc(100vw - 24px));
            max-height: min(84vh, calc(100vh - 24px));
            padding: 18px 18px calc(18px + env(safe-area-inset-bottom));
            background: linear-gradient(180deg, #ffffff 0%, #f7fbff 100%);
            border-radius: 22px;
            transform: translate(-50%, calc(-50% + 20px));
            box-shadow: 0 22px 48px rgba(15,35,60,0.22);
            overflow-y: auto;
        }
        .industry-detail-modal.show {
            transform: translate(-50%, -50%);
        }
        .industry-detail-modal .header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 14px;
            padding-bottom: 12px;
            border-bottom: 1px solid rgba(31,45,61,0.08);
        }
        .industry-detail-title-wrap {
            min-width: 0;
            flex: 1 1 auto;
        }
        .industry-detail-modal .info {
            display: inline-block;
            max-width: 100%;
            margin-top: 8px;
            padding: 6px 9px;
            border-radius: 999px;
            background: #f0f7ff;
            color: #315a80;
            font-size: 13px;
            line-height: 1.45;
        }
        .industry-detail-body {
            display: flex;
            flex-direction: column;
            gap: 12px;
            padding-bottom: 8px;
        }
        .industry-detail-summary-card {
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 16px;
            padding: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #f6fbff 100%);
            box-shadow: 0 8px 20px rgba(15,35,60,0.06);
        }
        .industry-detail-summary-location {
            font-size: 17px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.45;
            word-break: break-word;
        }
        .industry-detail-summary-meta {
            margin-top: 8px;
            color: #526579;
            font-size: 13px;
            line-height: 1.65;
            word-break: break-word;
        }
        .industry-detail-chip-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 10px;
        }
        .industry-detail-chip {
            display: inline-flex;
            align-items: center;
            min-height: 28px;
            padding: 5px 10px;
            border-radius: 999px;
            background: #f4f7fb;
            color: #526579;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
        }
        .industry-detail-chip.primary {
            background: #e6f4ff;
            color: #0958d9;
        }
        .industry-detail-card {
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 16px;
            padding: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
            color: #2f3a45;
            font-size: 14px;
            line-height: 1.75;
            box-shadow: 0 6px 16px rgba(15,35,60,0.05);
        }
        .industry-detail-section-title {
            margin-bottom: 10px;
            color: #1f2d3d;
            font-size: 14px;
            font-weight: 800;
            line-height: 1.4;
        }
        .industry-detail-row {
            display: flex;
            gap: 8px;
            align-items: flex-start;
            padding: 4px 0;
        }
        .industry-detail-label {
            flex: 0 0 88px;
            color: #6b7a88;
            font-weight: 700;
        }
        .industry-detail-value {
            min-width: 0;
            flex: 1;
            color: #1f2d3d;
            word-break: break-word;
        }
        .industry-detail-paragraph {
            color: #1f2d3d;
            font-size: 14px;
            line-height: 1.75;
            white-space: pre-wrap;
            word-break: break-word;
        }
        .industry-status-pill {
            display: inline-flex;
            align-items: center;
            padding: 4px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
        }
        .industry-status-pill.plan {
            background: #fff7e6;
            color: #ad6800;
        }
        .industry-status-pill.build {
            background: #e6f4ff;
            color: #0958d9;
        }
        .industry-status-pill.done {
            background: #f6ffed;
            color: #389e0d;
        }
        .industry-photo-section {
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 16px;
            padding: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
            box-shadow: 0 6px 16px rgba(15,35,60,0.05);
        }
        .industry-photo-section .industry-photo-title {
            margin-bottom: 10px;
            color: #1f2d3d;
            font-size: 14px;
            font-weight: 800;
        }
        .industry-photo-section .industry-photo-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
            gap: 10px;
        }
        .industry-photo-section .industry-photo-thumb,
        .industry-photo-section .industry-photo-missing {
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 12px;
        }
        .industry-photo-section .industry-photo-thumb {
            object-fit: cover;
            cursor: zoom-in;
            box-shadow: 0 2px 8px rgba(31,45,61,0.12);
        }
        .industry-photo-section .industry-photo-missing {
            background: #fafafa;
            border: 1px dashed #d9d9d9;
            color: #8c8c8c;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            font-size: 11px;
            line-height: 1.5;
            padding: 6px;
        }
        .industry-detail-empty {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 96px;
            padding: 14px;
            border-radius: 14px;
            border: 1px dashed #d9d9d9;
            background: #fafafa;
            color: #8c8c8c;
            text-align: center;
            font-size: 13px;
            line-height: 1.6;
        }
        .industry-detail-toolbar {
            margin-top: 14px;
            padding-top: 12px;
            border-top: 1px solid rgba(31,45,61,0.08);
        }
        .industry-detail-primary-actions,
        .industry-detail-admin-actions,
        .industry-detail-actions {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px;
        }
        .industry-detail-admin-actions {
            margin-top: 10px;
        }
        .industry-detail-actions {
            margin-top: 12px;
        }
        .industry-detail-actions .submit-btn,
        .industry-detail-primary-actions .submit-btn,
        .industry-detail-admin-actions .submit-btn {
            margin: 0;
            min-width: 0;
            padding: 11px 12px;
        }
        .industry-detail-primary-actions .submit-btn:only-child {
            grid-column: 1 / -1;
        }

        @media (min-width: 700px) {
            .point-modal.industry-detail-modal {
                left: 50%;
                top: 50%;
                bottom: auto;
                width: min(760px, calc(100vw - 96px));
                max-height: min(84vh, 860px);
                border-radius: 22px;
                transform: translate(-50%, calc(-50% + 18px));
            }
            .point-modal.industry-detail-modal.show {
                transform: translate(-50%, -50%);
            }
            .industry-detail-toolbar {
                margin-top: 16px;
            }
            .industry-project-card-actions {
                gap: 10px;
                margin-top: 6px;
            }
            .industry-card-btn {
                min-height: 38px;
                padding: 9px 16px;
                border-radius: 12px;
                font-size: 14px;
            }
        }
        
        .current-status {
            background: linear-gradient(180deg, #f6ffed 0%, #fcfff8 100%);
            border: 1px solid #b7eb8f;
            border-radius: 14px; padding: 12px 13px; margin-bottom: 15px;
            font-size: 14px; color: #333;
            line-height: 1.65;
            box-shadow: 0 4px 12px rgba(56,158,13,0.08);
        }
        .current-status small { color: #999; font-size: 12px; }

        .status-section { margin-bottom: 12px; }
        .status-section-title {
            font-size: 14px;
            color: #5f6f80;
            font-weight: 700;
            margin-bottom: 10px;
            line-height: 1.5;
        }

        .status-options { display: flex; flex-wrap: wrap; gap: 10px; }
        .status-btn {
            min-height: 42px;
            padding: 10px 16px;
            border: 1px solid #d9e2ec;
            border-radius: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #f7fafc 100%);
            font-size: 15px;
            font-weight: 700;
            color: #44505c;
            cursor: pointer;
            transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
            box-shadow: 0 4px 12px rgba(15,35,60,0.05);
        }
        .status-btn:hover {
            background: #f5f8fc;
            box-shadow: 0 7px 16px rgba(15,35,60,0.08);
        }
        .status-btn:active {
            transform: translateY(1px);
            box-shadow: 0 3px 8px rgba(15,35,60,0.07);
        }
        .status-btn.selected {
            background: linear-gradient(180deg, #08c766 0%, #07b85b 100%);
            color: white !important;
            border-color: #07c160 !important;
            box-shadow: 0 8px 20px rgba(7,193,96,0.2);
        }

        .submit-btn {
            width: 100%;
            min-height: 48px;
            padding: 14px 14px;
            background: linear-gradient(180deg, #08c766 0%, #07b85b 100%);
            color: white;
            border: none;
            border-radius: 14px;
            font-size: 16px;
            font-weight: 800;
            cursor: pointer;
            margin-top: 10px;
            box-shadow: 0 10px 24px rgba(7,193,96,0.22);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, opacity 0.16s ease;
        }
        .submit-btn:hover {
            filter: brightness(0.99);
            box-shadow: 0 12px 26px rgba(7,193,96,0.24);
        }
        .submit-btn:active {
            transform: translateY(1px) scale(0.995);
            box-shadow: 0 6px 16px rgba(7,193,96,0.2);
        }
        .submit-btn:disabled {
            background: #ccd3da;
            box-shadow: none;
            filter: none;
            opacity: 0.78;
            cursor: not-allowed;
        }
        .error-msg {
            color: #ff4d4f;
            font-size: 14px;
            margin-top: 12px;
            text-align: center;
            line-height: 1.5;
        }
        button:focus-visible,
        select:focus-visible,
        input:focus-visible,
        textarea:focus-visible {
            outline: none;
            box-shadow: 0 0 0 3px rgba(22,119,255,0.16);
        }
        .modal-action-row {
            display: grid !important;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px !important;
            margin-top: 16px !important;
        }
        .modal-action-row .modal-action-btn {
            min-height: 48px;
            width: 100%;
            padding: 11px 14px !important;
            border: 1px solid transparent !important;
            border-radius: 14px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            line-height: 1.4;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06) !important;
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, opacity 0.16s ease;
        }
        .modal-action-row .modal-action-btn:hover {
            filter: brightness(0.99);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08) !important;
        }
        .modal-action-row .modal-action-btn:active {
            transform: translateY(1px) scale(0.995);
            box-shadow: 0 3px 10px rgba(15,35,60,0.08) !important;
        }
        .modal-action-row .modal-action-btn:disabled {
            opacity: 0.68;
            cursor: not-allowed;
            box-shadow: none !important;
        }
        .modal-action-row .modal-action-btn:only-child {
            grid-column: 1 / -1;
        }
        .modal-action-row .modal-action-btn.secondary {
            order: 1;
            background: #f5f7fa !important;
            color: #44505c !important;
            border-color: #d9e2ec !important;
        }
        .modal-action-row .modal-action-btn.primary {
            order: 2;
            background: #07c160 !important;
            color: #fff !important;
        }
        .modal-action-row .modal-action-btn.info {
            order: 2;
            background: #1677ff !important;
            color: #fff !important;
        }
        .modal-action-row .modal-action-btn.warning {
            order: 2;
            background: #fa8c16 !important;
            color: #fff !important;
        }
        .modal-action-row .modal-action-btn.danger {
            order: 2;
            background: #fff1f0 !important;
            color: #cf1322 !important;
            border-color: #ffccc7 !important;
        }
        .modal-action-row .modal-action-btn.neutral {
            order: 2;
            background: #f5f5f5 !important;
            color: #595959 !important;
            border-color: #d9d9d9 !important;
        }
        .wo-detail-actions {
            display: grid !important;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 10px !important;
            margin-top: 16px !important;
        }
        .wo-detail-action-btn {
            min-height: 48px;
            width: 100%;
            padding: 11px 14px !important;
            border: 1px solid transparent !important;
            border-radius: 14px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            line-height: 1.4;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06) !important;
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, opacity 0.16s ease;
        }
        .wo-detail-action-btn:hover {
            filter: brightness(0.99);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08) !important;
        }
        .wo-detail-action-btn:active {
            transform: translateY(1px) scale(0.995);
            box-shadow: 0 3px 10px rgba(15,35,60,0.08) !important;
        }
        .wo-detail-actions .wo-detail-action-btn:only-child {
            grid-column: 1 / -1;
        }
        .wo-detail-action-btn.is-primary {
            background: #07c160 !important;
            color: #fff !important;
        }
        .wo-detail-action-btn.is-info {
            background: #1677ff !important;
            color: #fff !important;
        }
        .wo-detail-action-btn.is-warning {
            background: #fa8c16 !important;
            color: #fff !important;
        }
        .wo-detail-action-btn.is-secondary {
            background: #f5f7fa !important;
            color: #44505c !important;
            border-color: #d9e2ec !important;
        }
        .wo-detail-action-btn.is-danger {
            background: #fff1f0 !important;
            color: #cf1322 !important;
            border-color: #ffccc7 !important;
        }
        .wo-detail-action-btn.is-readonly {
            background: #f5f5f5 !important;
            color: #999 !important;
            border-color: #e5e5e5 !important;
            cursor: not-allowed;
            box-shadow: none !important;
        }
        
        /* 地图首页控制条 */
        .map-home-topbar {
            position: fixed;
            top: calc(8px + env(safe-area-inset-top));
            left: 12px;
            right: auto;
            width: max-content;
            max-width: calc(100vw - 24px);
            z-index: 1002;
            display: flex;
            align-items: center;
            gap: 8px;
            min-height: 48px;
            padding: 8px;
            border-radius: 20px;
            background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(247,250,252,0.94) 100%);
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 10px 26px rgba(15,35,60,0.16);
            backdrop-filter: blur(12px);
        }
        .map-home-select {
            min-width: 0;
            height: 38px;
            border: 1px solid #dce5ee;
            border-radius: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #f5f8fb 100%);
            color: #1f2d3d;
            font-size: 14px;
            font-weight: 700;
            padding: 0 30px 0 12px;
            outline: none;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
            transition: border-color 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
        }
        .map-home-select.village {
            flex: 1 1 92px;
            max-width: 140px;
        }
        .map-home-select:disabled {
            opacity: 1;
            color: #526579;
            background: #eef3f7;
        }
        .map-layer-compact {
            flex: 0 0 auto;
            height: 38px;
            border: 1px solid #cfe2ff;
            border-radius: 14px;
            padding: 0 12px;
            background: linear-gradient(180deg, #f4f9ff 0%, #e8f3ff 100%);
            color: #1677ff;
            font-size: 14px;
            font-weight: 800;
            cursor: pointer;
            white-space: nowrap;
            box-shadow: 0 4px 12px rgba(22,119,255,0.12);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .map-home-icon-btn,
        .camera-mode-option {
            flex: 0 0 auto;
            height: 38px;
            min-width: 40px;
            border: 1px solid #dce5ee;
            border-radius: 14px;
            background: linear-gradient(180deg, #ffffff 0%, #f5f8fb 100%);
            color: #315a80;
            font-size: 14px;
            font-weight: 800;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease, background 0.16s ease;
        }
        .map-home-select:hover,
        .map-home-icon-btn:hover,
        .camera-mode-option:hover,
        .map-layer-compact:hover {
            filter: brightness(0.995);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08);
        }
        .map-home-icon-btn:active,
        .camera-mode-option:active,
        .map-layer-compact:active,
        .bottom-dock-btn:active,
        .bottom-dock-main:active {
            transform: scale(0.96);
        }
        .locate-me-btn {
            position: static;
            width: 40px;
            height: 38px;
            min-width: 40px;
            background: linear-gradient(180deg, #36a2ff 0%, #1677ff 100%);
            color: white;
            border-radius: 12px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            border: 1px solid rgba(255,255,255,0.18);
            box-shadow: 0 8px 18px rgba(22,119,255,0.28);
            cursor: pointer;
            z-index: auto;
            transition: transform 0.2s, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .locate-me-btn:hover {
            filter: brightness(1.02);
            box-shadow: 0 10px 22px rgba(22,119,255,0.32);
        }
        .locate-me-btn:active { transform: scale(0.95); }
        .map-home-topbar .locate-me-btn {
            position: static;
            width: 40px;
            height: 38px;
            min-width: 40px;
            right: auto;
            bottom: auto;
        }
        .locate-crosshair {
            position: relative;
            width: 19px;
            height: 19px;
            border: 2px solid currentColor;
            border-radius: 50%;
            display: block;
        }
        .locate-crosshair::before {
            content: "";
            position: absolute;
            left: 50%;
            top: 50%;
            width: 5px;
            height: 5px;
            background: currentColor;
            border-radius: 50%;
            transform: translate(-50%, -50%);
        }
        .locate-crosshair::after {
            content: "";
            position: absolute;
            left: 50%;
            top: 50%;
            width: 27px;
            height: 27px;
            transform: translate(-50%, -50%);
            background:
                linear-gradient(currentColor, currentColor) center top / 2px 6px no-repeat,
                linear-gradient(currentColor, currentColor) center bottom / 2px 6px no-repeat,
                linear-gradient(currentColor, currentColor) left center / 6px 2px no-repeat,
                linear-gradient(currentColor, currentColor) right center / 6px 2px no-repeat;
        }
        
        .add-current-btn,
        .temp-workorder-btn {
            display: none !important;
        }
        .home-bottom-dock {
            position: fixed;
            left: 50%;
            right: auto;
            bottom: calc(8px + env(safe-area-inset-bottom));
            width: min(460px, calc(100vw - 16px));
            z-index: 1000;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 6px;
            min-height: 64px;
            padding: 8px 10px;
            border-radius: 26px;
            background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(245,248,251,0.94) 100%);
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 12px 30px rgba(15,35,60,0.18);
            backdrop-filter: blur(14px);
            transform: translateX(-50%);
        }
        .bottom-dock-btn,
        .bottom-dock-main {
            position: relative;
            flex: 1 1 0;
            min-width: 0;
            height: 50px;
            border: none;
            border-radius: 16px;
            background: transparent;
            color: #4f5f6f;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 3px;
            font-size: 12px;
            font-weight: 800;
            cursor: pointer;
            transition: transform 0.16s ease, background 0.16s ease, box-shadow 0.16s ease, color 0.16s ease;
        }
        .bottom-dock-btn .icon,
        .bottom-dock-main .icon {
            font-size: 19px;
            line-height: 1;
        }
        .bottom-dock-btn:hover {
            background: rgba(244,247,250,0.95);
            color: #1f2d3d;
            box-shadow: inset 0 0 0 1px rgba(217,226,236,0.9);
        }
        .bottom-dock-main {
            flex: 0 0 54px;
            height: 54px;
            margin-top: -20px;
            border-radius: 20px;
            background: linear-gradient(135deg, #07c160, #12b886);
            color: #fff;
            box-shadow: 0 10px 22px rgba(7,193,96,0.34);
            font-size: 13px;
        }
        .bottom-dock-main:hover {
            box-shadow: 0 14px 28px rgba(7,193,96,0.38);
        }
        .bottom-dock-main .icon {
            font-size: 24px;
        }
        .bottom-dock-btn.has-alert {
            color: #d46b08;
            background: linear-gradient(180deg, #fffaf0 0%, #fff1dc 100%);
            box-shadow: inset 0 0 0 1px rgba(255,213,145,0.9);
        }
        .home-action-sheet .action-sheet-title {
            font-weight: 800;
            color: #1f2d3d;
            font-size: 15px;
        }
        .home-action-sheet {
            background: rgba(255,255,255,0.97);
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 18px 44px rgba(15,35,60,0.22);
            backdrop-filter: blur(16px);
        }
        .home-action-sheet .action-sheet-btn[disabled] {
            opacity: 0.45;
            cursor: not-allowed;
        }
        .action-sheet-btn {
            min-height: 48px;
            line-height: 1.35;
        }
        .action-sheet .action-sheet-btn {
            font-size: 16px;
            font-weight: 700;
            border: 1px solid rgba(31,45,61,0.06);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .action-sheet .action-sheet-btn:hover {
            filter: brightness(0.995);
            box-shadow: 0 12px 22px rgba(15,35,60,0.1);
        }
        .action-sheet .action-sheet-btn:active {
            transform: translateY(1px);
            box-shadow: 0 5px 14px rgba(15,35,60,0.08);
        }
        #homeMoreSheet, #homeCreateSheet {
            left: auto;
            right: 8px;
            bottom: calc(84px + env(safe-area-inset-bottom));
            width: min(340px, calc(100vw - 16px));
            border-radius: 22px;
            transform: translateY(12px);
            opacity: 0;
            visibility: hidden;
            pointer-events: none;
            transition: transform 0.22s ease, opacity 0.22s ease;
        }
        #homeMoreSheet.show, #homeCreateSheet.show {
            transform: translateY(0);
            opacity: 1;
            visibility: visible;
            pointer-events: auto;
        }
        @media (min-width: 641px) {
            .home-action-sheet {
                left: 50%;
                right: auto;
                bottom: calc(82px + env(safe-area-inset-bottom));
                width: min(380px, calc(100vw - 24px));
                border-radius: 22px;
                transform: translate(-50%, 18px);
                opacity: 0;
                padding: 14px;
            }
            .home-action-sheet.show {
                transform: translate(-50%, 0);
                opacity: 1;
            }
            #homeMoreSheet, #homeCreateSheet {
                left: auto;
                right: 18px;
                bottom: calc(88px + env(safe-area-inset-bottom));
                width: min(320px, calc(100vw - 24px));
                transform: translateY(12px);
            }
            #homeMoreSheet.show, #homeCreateSheet.show {
                transform: translateY(0);
            }
        }
        /* 记录面板 */
        .records-panel {
            position: fixed; top: 0; right: -100%;
            width: 100%; height: 100%; background: linear-gradient(180deg, #f6f8fb 0%, #eef3f8 100%);
            z-index: 1105; transition: right 0.3s;
            display: flex; flex-direction: column;
            overscroll-behavior-x: contain;
            overscroll-behavior-y: contain;
            touch-action: pan-y;
        }
        .records-panel.show { right: 0; }
        .records-header {
            background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(250,252,255,0.95) 100%); padding: 9px 12px 8px; display: flex;
            justify-content: space-between; align-items: center;
            box-shadow: 0 2px 8px rgba(15,35,60,0.04);
            border-bottom: 1px solid rgba(31,45,61,0.05);
            backdrop-filter: blur(10px);
            position: relative;
            z-index: 2;
        }
        .records-header h2 {
            font-size: 15px;
            line-height: 1.2;
            font-weight: 800;
            color: #1f2d3d;
            letter-spacing: 0.01em;
        }
        .records-header .back {
            color: #526579;
            cursor: pointer;
            font-size: 12px;
            padding: 5px 9px;
            border-radius: 999px;
            background: #f4f7fb;
            border: 1px solid #dbe4ed;
            font-weight: 700;
            position: relative;
            z-index: 3;
            pointer-events: auto;
        }
        .records-header.industry-projects-header {
            gap: 8px;
        }
        .records-header.industry-projects-header h2 {
            flex: 1;
            text-align: center;
        }
        #pointManagementDeleteHistoryBox {
            display: none;
            flex: 0 0 auto;
            padding: 0;
            margin: 0;
        }
        #pointManagementDeleteHistoryBtn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-height: 30px;
            padding: 5px 10px;
            border-radius: 999px;
            border: 1px solid #dbe4ed;
            background: #f4f7fb;
            color: #526579;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
            white-space: nowrap;
            cursor: pointer;
            box-shadow: none;
        }
        #pointManagementDeleteHistoryBtn:hover {
            background: #edf3f9;
        }
        #pointManagementDeleteHistoryBtn:active {
            transform: translateY(1px);
        }
        @media (max-width: 520px) {
            .records-header.industry-projects-header {
                flex-wrap: wrap;
            }
            .records-header.industry-projects-header h2 {
                order: 3;
                flex: 1 0 100%;
                text-align: left;
            }
        }
        .records-filter {
            background: rgba(255,255,255,0.94); padding: 7px 10px 7px;
            display: flex; gap: 6px; flex-wrap: wrap;
            align-items: center; border-bottom: 1px solid rgba(31,45,61,0.06);
            box-shadow: inset 0 -1px 0 rgba(255,255,255,0.7);
            backdrop-filter: blur(8px);
        }
        .pm-filter-field {
            position: relative;
            flex: 1;
            min-width: 120px;
        }
        .records-filter select {
            padding: 8px 11px; border: 1px solid #d7e0e8;
            border-radius: 10px; font-size: 14px; width: 100%;
            background: #fbfdff;
            color: #1f2d3d;
            -webkit-text-fill-color: #1f2d3d;
            -webkit-appearance: menulist;
            appearance: auto;
            touch-action: auto;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
        }
        .records-filter select option {
            background: #fff;
            color: #1f2d3d;
        }
        .mobile-filter-trigger {
            display: none;
            width: 100%;
            padding: 8px 34px 8px 11px;
            border: 1px solid #d7e0e8;
            border-radius: 10px;
            background: #fbfdff;
            color: #1f2d3d;
            font-size: 14px;
            text-align: left;
            position: relative;
            cursor: pointer;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
        }
        .mobile-filter-trigger::after {
            content: '⌄';
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-size: 14px;
            pointer-events: none;
        }
        .mobile-filter-trigger:disabled {
            color: #999;
            background: #fafafa;
            cursor: not-allowed;
        }
        .records-filter button {
            min-height: 38px;
            padding: 8px 13px;
            border: none;
            border-radius: 12px;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 6px 16px rgba(15,35,60,0.08);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .records-filter button:hover {
            filter: brightness(0.99);
            box-shadow: 0 10px 20px rgba(15,35,60,0.1);
        }
        .records-filter button:active {
            transform: translateY(1px);
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .records-filter .query-btn { background: #07c160; color: white; }
        .records-filter .export-btn { background: #1890ff; color: white; }
        .workorder-filter-primary,
        .workorder-filter-advanced {
            gap: 5px;
            align-items: flex-end;
        }
        .workorder-filter-field {
            display: flex;
            flex-direction: row;
            align-items: center;
            gap: 5px;
            flex: 1 1 0;
            min-width: 0;
        }
        .workorder-filter-label {
            flex: 0 0 auto;
            min-width: 3.3em;
            font-size: 10px;
            color: #5f6f80;
            font-weight: 700;
            line-height: 1.2;
            white-space: nowrap;
        }
        .workorder-filter-primary select,
        .workorder-filter-primary input,
        .workorder-filter-advanced select,
        .workorder-filter-advanced input {
            min-width: 0;
            width: auto;
            flex: 1 1 auto;
        }
        .workorder-filter-field input[type="month"] {
            padding: 7px 10px;
            border: 1px solid #d7e0e8;
            border-radius: 10px;
            font-size: 12px;
            min-height: 36px;
            box-sizing: border-box;
            background: #fbfdff;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
        }
        .workorder-filter-primary {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            align-items: end;
            gap: 4px;
        }
        .workorder-filter-primary .workorder-filter-field {
            flex: initial;
            min-width: 0;
        }
        .workorder-filter-primary #woFilterYearField,
        .workorder-filter-primary #woFilterMonthSelectField,
        .workorder-filter-primary #woFilterVillageField {
            min-width: 0;
        }
        .workorder-filter-primary #woFilterYearField .workorder-filter-label,
        .workorder-filter-primary #woFilterMonthSelectField .workorder-filter-label,
        .workorder-filter-primary #woFilterVillageField .workorder-filter-label {
            display: none;
        }
        .workorder-filter-primary #woFilterYearField,
        .workorder-filter-primary #woFilterMonthSelectField,
        .workorder-filter-primary #woFilterVillageField {
            gap: 0;
        }
        .workorder-filter-primary select:not(:disabled),
        .workorder-filter-advanced select:not(:disabled) {
            background: #fff;
            color: #1f2d3d;
            opacity: 1;
        }
        .workorder-filter-primary > button {
            width: 100%;
            min-width: 0;
            justify-content: center;
        }
        .workorder-advanced-toggle {
            padding: 7px 10px;
            border: 1px solid #d9e2ec;
            border-radius: 10px;
            background: linear-gradient(180deg, #ffffff 0%, #f4f7fa 100%);
            color: #44505c;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
            white-space: nowrap;
            min-height: 36px;
            align-self: flex-end;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .workorder-primary-export-btn {
            padding: 7px 10px;
            border-radius: 10px;
            min-height: 36px;
            font-size: 12px;
            font-weight: 700;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(180deg, #1890ff 0%, #0d6efd 100%) !important;
            color: #ffffff !important;
            border: 1px solid #1677ff !important;
            box-shadow: 0 4px 12px rgba(24,144,255,0.16);
        }
        .workorder-advanced-toggle:hover {
            filter: brightness(0.995);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08);
        }
        .workorder-filter-advanced {
            display: none;
            padding-top: 6px;
            border-top: 1px solid rgba(31,45,61,0.06);
            margin-top: 2px;
            align-items: stretch;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 4px;
        }
        .workorder-filter-advanced .workorder-filter-field {
            flex: initial;
            min-width: 0;
        }
        .workorder-filter-footer {
            flex: initial;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: stretch;
            justify-content: flex-end;
            gap: 0;
            padding-top: 0;
            border-top: none;
        }
        .filter-picker-anchor-layer {
            position: fixed;
            z-index: 2024;
            display: none;
            width: min(360px, calc(100vw - 16px));
            max-height: min(70vh, 540px);
            padding: 0;
            margin: 0;
            border-radius: 14px;
            background: #fff;
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 16px 34px rgba(15,35,60,0.16);
            overflow: hidden;
        }
        .filter-picker-anchor-layer.show {
            display: block;
        }
        .filter-picker-anchor-arrow {
            position: absolute;
            width: 12px;
            height: 12px;
            background: #fff;
            transform: rotate(45deg);
            border-left: 1px solid rgba(31,45,61,0.08);
            border-top: 1px solid rgba(31,45,61,0.08);
            top: -7px;
            left: 24px;
            box-shadow: -2px -2px 8px rgba(15,35,60,0.03);
        }
        .filter-picker-anchor-layer[data-placement="top"] .filter-picker-anchor-arrow {
            top: auto;
            bottom: -7px;
            transform: rotate(225deg);
        }
        .filter-picker-anchor-head {
            padding: 11px 12px 9px;
            border-bottom: 1px solid rgba(31,45,61,0.06);
            background: linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
            font-size: 13px;
            font-weight: 800;
            color: #1f2d3d;
        }
        .filter-picker-anchor-list {
            max-height: calc(min(70vh, 540px) - 46px);
            overflow-y: auto;
            overscroll-behavior: contain;
        }
        .filter-picker-anchor-list .filter-picker-option {
            padding: 12px 14px;
            font-size: 14px;
            border-bottom: 1px solid rgba(31,45,61,0.05);
            cursor: pointer;
        }
        .filter-picker-anchor-list .filter-picker-option:last-child {
            border-bottom: none;
        }
        .filter-picker-anchor-list .filter-picker-option.selected {
            background: #e6f4ff;
            color: #0958d9;
        }
        @media (max-width: 640px) {
            .filter-picker-anchor-layer {
                width: min(92vw, 360px);
            }
        }
        .workorder-filter-footer {
            width: auto;
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 0;
            padding-top: 0;
            border-top: none;
        }
        .workorder-filter-actions {
            display: flex;
            gap: 8px;
            flex-wrap: wrap;
            justify-content: flex-start;
        }
        .workorder-filter-actions button {
            flex: none;
        }
        .workorder-filter-collapse {
            border: 1px solid #d9e2ec;
            border-radius: 999px;
            background: linear-gradient(180deg, #ffffff 0%, #f4f7fa 100%);
            color: #44505c;
            font-size: 11px;
            font-weight: 700;
            white-space: nowrap;
            min-height: 34px;
            width: 100%;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .workorder-filter-collapse:hover {
            filter: brightness(0.995);
            box-shadow: 0 8px 18px rgba(15,35,60,0.08);
        }
        .workorder-primary-tools {
            width: 100%;
            display: flex;
            align-items: stretch;
            gap: 6px;
            padding: 0 12px 4px;
            background: rgba(255,255,255,0.92);
            border-bottom: none;
            box-sizing: border-box;
            backdrop-filter: blur(8px);
        }
        .workorder-primary-tools .workorder-advanced-toggle,
        .workorder-primary-tools .workorder-primary-export-btn {
            flex: 1 1 calc(50% - 4px);
            min-width: 0;
            min-height: 38px;
            padding: 0 12px;
            justify-content: center;
        }
        .workorder-primary-tools .workorder-advanced-toggle {
            margin-left: 0;
            align-self: auto;
        }
        .workorder-primary-tools .workorder-primary-export-btn {
            display: inline-flex;
            align-items: center;
            background: linear-gradient(180deg, #1890ff 0%, #0d6efd 100%) !important;
            color: #ffffff !important;
            border: 1px solid #1677ff !important;
            box-shadow: 0 8px 18px rgba(24,144,255,0.16) !important;
        }
        .workorder-primary-tools .workorder-primary-export-btn:hover {
            filter: brightness(0.995);
        }
        .workorder-primary-tools button.is-active {
            background: linear-gradient(180deg, #eef6ff 0%, #dbeeff 100%) !important;
            color: #0958d9 !important;
            border-color: #91caff !important;
            box-shadow: 0 8px 18px rgba(24,144,255,0.12) !important;
        }
        #workOrderMainSummaryBar {
            margin: 2px 10px 0;
            display: flex;
            flex-direction: column;
            align-items: center;
        }
        #workOrderMainSummaryBar .wo-summary-head {
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            margin-top: 2px;
            text-align: center;
        }
        #workOrderMainSummaryBar .wo-summary-title-group {
            min-width: 0;
            flex: 0 1 auto;
        }
        #workOrderMainSummaryBar .wo-summary-scope {
            font-size: 10px;
            color: #8c8c8c;
            line-height: 1.4;
            text-align: center;
        }
        #workOrderMainSummaryBar .wo-summary-meta {
            display: flex;
            align-items: center;
            gap: 5px;
            flex-wrap: wrap;
            justify-content: center;
        }
        #workOrderMainSummaryBar .wo-summary-meta-item {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 2px 6px;
            border-radius: 999px;
            border: 1px solid rgba(31,45,61,0.08);
            background: rgba(255,255,255,0.94);
            box-shadow: 0 4px 10px rgba(15,35,60,0.04);
        }
        #workOrderMainSummaryBar .wo-summary-meta-label {
            font-size: 10px;
            color: #6b7a88;
            font-weight: 700;
        }
        #workOrderMainSummaryBar .wo-summary-meta-value {
            font-size: 11px;
            color: #1f2d3d;
            font-weight: 800;
        }
        #workOrderMainSummaryBar .wo-stage-tabs-shell {
            width: 100%;
            display: flex;
            justify-content: center;
            overflow-x: auto;
            overflow-y: hidden;
            -webkit-overflow-scrolling: touch;
            overscroll-behavior-x: contain;
            scrollbar-width: none;
            margin-top: 3px;
            padding-bottom: 2px;
            touch-action: pan-x;
        }
        #workOrderMainSummaryBar .wo-stage-tabs-shell::-webkit-scrollbar {
            display: none;
        }
        #workOrderMainSummaryBar .wo-stage-tabs {
            display: inline-flex;
            gap: 8px;
            justify-content: center;
            flex-wrap: nowrap;
        }
        #workOrderMainSummaryBar .wo-stage-tab {
            appearance: none;
            flex: 0 0 auto;
            min-width: 80px;
            width: auto;
            padding: 8px 12px;
            border-radius: 12px;
            border: 1px solid rgba(31,45,61,0.08);
            background: rgba(255,255,255,0.96);
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            text-align: left;
        }
        #workOrderMainSummaryBar .wo-stage-tab.is-active {
            background: linear-gradient(180deg, #edf6ff 0%, #dbeeff 100%);
            border-color: #91caff;
            box-shadow: 0 10px 20px rgba(24,144,255,0.12);
        }
        #workOrderMainSummaryBar .wo-stage-tab-label {
            min-width: 0;
            font-size: 13px;
            font-weight: 700;
            color: #44505c;
            line-height: 1.2;
        }
        #workOrderMainSummaryBar .wo-stage-tab.is-active .wo-stage-tab-label {
            color: #0958d9;
        }
        #workOrderMainSummaryBar .wo-stage-tab-count {
            flex: 0 0 auto;
            min-width: 22px;
            height: 22px;
            padding: 0 6px;
            border-radius: 999px;
            background: #f3f6f9;
            color: #1f2d3d;
            font-size: 12px;
            font-weight: 800;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        @media (min-width: 721px) {
            #workOrderMainSummaryBar .wo-stage-tabs-shell {
                overflow-x: visible;
            }
        }
        #workOrderMainSummaryBar .wo-stage-tab.is-active .wo-stage-tab-count {
            background: #1890ff;
            color: #fff;
        }
        .wo-card-shell {
            overflow: hidden;
        }
        .wo-card-layout {
            display: grid;
            grid-template-columns: 96px minmax(0, 1fr);
            gap: 8px;
            align-items: stretch;
        }
        .wo-card-photo-column {
            min-width: 0;
        }
        .wo-card-photo-column .wo-card-photo-caption {
            margin-top: 4px;
            text-align: center;
            font-size: 10px;
            line-height: 1.28;
            color: #5f6f80;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .wo-card-photo-caption-dispatch {
            color: #1677ff;
            font-weight: 700;
        }
        .wo-card-photo-caption-owner {
            color: #52c41a;
            font-weight: 700;
        }
        .wo-card-photo {
            position: relative;
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 14px;
            overflow: hidden;
            background: linear-gradient(180deg, #f7fbff 0%, #edf4fb 100%);
            border: 1px solid #dde8f2;
            box-shadow: 0 6px 16px rgba(15,35,60,0.06);
            cursor: zoom-in;
        }
        .wo-card-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        .wo-card-photo-count {
            position: absolute;
            right: 7px;
            bottom: 7px;
            min-width: 20px;
            height: 20px;
            padding: 0 6px;
            border-radius: 999px;
            background: rgba(0,0,0,0.55);
            color: #fff;
            font-size: 11px;
            font-weight: 700;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .wo-card-photo-empty {
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 14px;
            border: 1px dashed #d9e2ec;
            background: #f7fafc;
            color: #8c8c8c;
            font-size: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            line-height: 1.4;
        }
        .wo-card-body {
            min-width: 0;
        }
        .wo-card-top {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 10px;
        }
        .wo-card-main {
            min-width: 0;
            flex: 1;
        }
        .wo-card-status {
            flex: 0 0 auto;
            font-size: 11px;
            font-weight: 700;
            white-space: nowrap;
            padding: 4px 9px;
            border-radius: 999px;
            background: linear-gradient(180deg, #ffffff 0%, #f4f7fa 100%);
            border: 1px solid #e2eaf2;
            box-shadow: 0 3px 10px rgba(15,35,60,0.05);
        }
        .wo-card-title {
            display: flex;
            align-items: center;
            gap: 5px;
            flex-wrap: wrap;
            color: #1f2d3d;
            line-height: 1.35;
        }
        .wo-card-title b {
            font-size: 13px;
            letter-spacing: 0.01em;
        }
        .wo-card-desc {
            margin-top: 5px;
            color: #262626;
            line-height: 1.5;
            padding: 7px 9px;
            border-radius: 9px;
            background: linear-gradient(180deg, #fafcff 0%, #f5f8fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
        }
        .wo-card-meta {
            margin-top: 4px;
            color: #5f6f80;
            line-height: 1.45;
            font-size: 10px;
        }
        .wo-card-minor {
            margin-top: 4px;
            color: #7a8794;
            line-height: 1.5;
            font-size: 10px;
        }
        .wo-card-actions {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 6px;
            margin-top: 8px;
        }
        .wo-card-actions .workorder-card-btn {
            min-height: 32px;
            padding: 6px 8px;
            border: 1px solid transparent;
            border-radius: 10px;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.35;
            cursor: pointer;
            box-shadow: 0 6px 16px rgba(15,35,60,0.06);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .wo-card-actions .workorder-card-btn:hover {
            filter: brightness(0.995);
            box-shadow: 0 10px 20px rgba(15,35,60,0.1);
        }
        .wo-card-actions .workorder-card-btn:active {
            transform: translateY(1px);
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .wo-card-actions .workorder-card-btn.secondary {
            background: #f5f7fa;
            color: #44505c;
            border-color: #d9e2ec;
        }
        .wo-card-actions .workorder-card-btn.info {
            background: #e6f4ff;
            color: #0958d9;
            border-color: #91caff;
        }
        @media (min-width: 721px) {
            .workorder-filter-primary {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
            .workorder-filter-label {
                min-width: 4em;
                font-size: 11px;
            }
            .records-header h2 {
                font-size: 16px;
            }
            .workorder-filter-advanced {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
        }
        @media (max-width: 640px) {
            .workorder-filter-label {
                min-width: 3.2em;
                font-size: 11px;
            }
            .workorder-filter-primary {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .workorder-filter-advanced {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .workorder-filter-actions {
                justify-content: stretch;
            }
            .workorder-filter-actions button {
                flex: 1;
            }
            .wo-card-layout {
                grid-template-columns: 84px minmax(0, 1fr);
            }
            .wo-card-actions .workorder-card-btn {
                width: 100%;
                min-width: 0;
            }
            .wo-card-photo-column .wo-card-photo-caption {
                font-size: 9px;
            }
            .records-hint.workorder-hint-bar {
                align-items: flex-start;
            }
            .workorder-primary-tools {
                gap: 5px;
                padding: 5px 12px 4px;
            }
            .workorder-primary-tools .workorder-advanced-toggle,
            .workorder-primary-tools .workorder-primary-export-btn {
                flex: 1 1 0;
                min-width: 0;
                justify-content: center;
            }
            .workorder-primary-tools .workorder-advanced-toggle {
                margin-left: 0;
                width: auto;
            }
            .workorder-filter-advanced {
                gap: 5px;
            }
            .workorder-filter-footer {
                width: 100%;
                padding-top: 0;
                border-top: none;
            }
            #workOrderMainSummaryBar .wo-summary-meta {
                width: 100%;
                justify-content: center;
            }
            #workOrderMainSummaryBar .wo-stage-tabs {
                justify-content: flex-start;
            }
            #workOrderMainSummaryBar .wo-stage-tabs-shell {
                justify-content: flex-start;
            }
            #workOrderMainSummaryBar .wo-stage-tab {
                min-width: 90px;
            }
            #workOrderPrimaryFilter {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 4px;
            }
            #woFilterYearField,
            #woFilterMonthSelectField,
            #woFilterVillageField,
            #woAdvancedActionField {
                grid-column: span 1;
            }
            #workOrderPrimaryFilter .workorder-filter-field {
                min-width: 0;
            }
            #workorderPrimaryTools {
                padding-top: 4px;
            }
            .archive-filter-grid {
                grid-template-columns: 1fr;
                gap: 8px;
            }
            .archive-filter-field {
                gap: 4px;
            }
            .archive-filter-field label {
                font-size: 11px;
            }
            #workOrderArchivePanel .records-filter {
                padding: 10px 12px;
                gap: 8px;
            }
            #workOrderArchivePanel .records-action-row {
                padding: 10px 12px;
                gap: 8px;
                flex-wrap: wrap;
            }
            #workOrderArchivePanel .records-action-row button {
                flex: 1 1 calc(50% - 4px);
                min-width: 0;
                min-height: 40px;
                font-size: 14px;
                padding: 10px 8px;
            }
            #workOrderArchivePanel .release-banner {
                margin: 10px 12px 0;
                padding: 12px 14px;
            }
            #workOrderArchivePanel .release-banner .value {
                font-size: 20px;
            }
        }
        @media (min-width: 960px) {
            #workOrderPrimaryFilter,
            #workOrderAdvancedFilter,
            #workorderPrimaryTools,
            #workOrderFilterHint,
            #workOrderTodoSummary,
            #workOrderStatsSummary,
            #workOrderList,
            #workOrderTodoList,
            #workOrderTodoHint {
                width: min(920px, calc(100% - 20px));
                margin-left: auto;
                margin-right: auto;
                box-sizing: border-box;
            }
            #workOrderTodoBusinessTabs,
            #workOrderTodoTopTabs,
            #workOrderTodoDispatchFilters {
                width: min(920px, calc(100% - 20px));
                margin-left: auto;
                margin-right: auto;
                box-sizing: border-box;
                justify-content: center;
            }
            #workOrderMainSummaryBar {
                width: min(920px, calc(100% - 20px));
                margin-left: auto;
                margin-right: auto;
                box-sizing: border-box;
                display: flex;
                flex-direction: column;
                align-items: center;
            }
            #workOrderMainSummaryBar .wo-stage-tabs,
            #workOrderMainSummaryBar .wo-summary-head {
                width: 100%;
                max-width: none;
                margin-left: auto;
                margin-right: auto;
                justify-content: center;
            }
            #workOrderMainSummaryBar .wo-stage-tabs-shell {
                width: 100%;
                justify-content: center;
            }
            #workOrderMainSummaryBar .wo-stage-tabs {
                justify-content: center;
                align-items: center;
            }
            #workOrderExportModal {
                width: min(320px, calc(100vw - 20px));
                left: auto !important;
                right: 12px;
                top: 88px !important;
                transform: none !important;
                border-radius: 14px;
                box-shadow: 0 16px 38px rgba(15,35,60,0.18);
            }
        }
        .records-list {
            flex: 1;
            overflow-y: auto;
            padding: 10px;
            scroll-padding-top: 10px;
        }
        .record-item {
            background: white;
            padding: 16px;
            border-radius: 16px;
            margin-bottom: 12px;
            font-size: 15px;
            border: 1px solid rgba(31,45,61,0.07);
            box-shadow: 0 8px 20px rgba(15,35,60,0.06);
            line-height: 1.65;
        }
        .record-item .time { color: #7a8794; font-size: 12px; margin-top: 6px; }
        .industry-project-card {
            padding: 12px;
        }
        .industry-project-card-body {
            display: flex;
            align-items: stretch;
            gap: 12px;
        }
        .industry-project-card-cover {
            flex: 0 0 92px;
            width: 92px;
            height: 92px;
            border-radius: 16px;
            overflow: hidden;
            background: linear-gradient(180deg, #f7fbff 0%, #eef5fb 100%);
            border: 1px solid #e4edf5;
            display: flex;
            align-items: center;
            justify-content: center;
        }
        .industry-project-card-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        .industry-project-card-photo-empty {
            padding: 0 10px;
            font-size: 12px;
            font-weight: 700;
            color: #8c8c8c;
            line-height: 1.5;
            text-align: center;
        }
        .industry-project-card-content {
            flex: 1 1 auto;
            min-width: 0;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .industry-project-card-secondary {
            color: #526579;
            font-size: 13px;
            line-height: 1.55;
            word-break: break-word;
        }
        .industry-project-card-top {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 10px;
        }
        .industry-project-card-title {
            min-width: 0;
            font-size: 16px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.35;
            word-break: break-word;
        }
        .industry-project-status {
            flex: 0 0 auto;
            padding: 5px 10px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 800;
            line-height: 1.2;
        }
        .industry-project-status.plan {
            background: #fff7e6;
            color: #ad6800;
        }
        .industry-project-status.build {
            background: #e6f4ff;
            color: #0958d9;
        }
        .industry-project-status.done {
            background: #f6ffed;
            color: #389e0d;
        }
        .industry-project-card-meta {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }
        .industry-project-chip {
            display: inline-flex;
            align-items: center;
            min-height: 24px;
            padding: 4px 8px;
            border-radius: 999px;
            background: #f4f7fb;
            color: #526579;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
        }
        .industry-project-chip.primary {
            background: #e6f4ff;
            color: #0958d9;
        }
        .industry-project-card-location {
            color: #1f2d3d;
            font-size: 14px;
            line-height: 1.6;
            word-break: break-word;
        }
        .industry-project-card-foot {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            color: #7a8794;
            font-size: 12px;
            line-height: 1.5;
        }
        .industry-project-card-actions {
            display: flex;
            gap: 8px;
            margin-top: 2px;
        }
        .industry-card-btn {
            min-height: 32px;
            padding: 7px 12px;
            border: none;
            border-radius: 10px;
            background: #1677ff;
            color: #fff;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
        }
        .industry-card-btn.ghost {
            background: #edf4ff;
            color: #0958d9;
        }
        .industry-status-bar {
            display: flex;
            gap: 8px;
            padding: 10px 10px 2px;
            overflow-x: auto;
            scrollbar-width: none;
        }
        .industry-status-bar::-webkit-scrollbar {
            display: none;
        }
        .industry-status-chip {
            flex: 0 0 auto;
            min-width: 78px;
            min-height: 54px;
            padding: 8px 12px;
            border: 1px solid #dbe4ed;
            border-radius: 14px;
            background: #fff;
            color: #526579;
            cursor: pointer;
            display: flex;
            flex-direction: column;
            align-items: flex-start;
            justify-content: center;
            gap: 3px;
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .industry-status-chip .label {
            font-size: 12px;
            font-weight: 700;
            line-height: 1.2;
            white-space: nowrap;
        }
        .industry-status-chip .count {
            font-size: 16px;
            font-weight: 800;
            line-height: 1.1;
            color: #1f2d3d;
        }
        .industry-status-chip.active {
            border-color: #1677ff;
            background: linear-gradient(180deg, #edf5ff 0%, #ffffff 100%);
            box-shadow: 0 8px 18px rgba(22,119,255,0.12);
        }
        .industry-status-chip.active .label,
        .industry-status-chip.active .count {
            color: #0958d9;
        }
        .account-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 10px;
        }
        .account-mini-card {
            background: #fff;
            border: 1px solid #edf2f7;
            border-radius: 12px;
            padding: 12px;
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .account-mini-card .title {
            font-size: 14px;
            font-weight: 800;
            color: #1f2d3d;
        }
        .account-mini-card .sub {
            margin-top: 6px;
            font-size: 12px;
            color: #6b7b8c;
            line-height: 1.6;
        }
        .account-note {
            margin-top: 10px;
            padding: 10px 12px;
            border-radius: 10px;
            background: #fffbe6;
            color: #8c6d1f;
            font-size: 12px;
            line-height: 1.7;
        }
        
        /* 点位选择器 */
        .point-selector {
            position: fixed; top: 50%; left: 50%;
            transform: translate(-50%, -50%);
            background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
            border-radius: 20px;
            padding: 22px 18px 18px;
            width: min(88vw, 360px);
            max-width: 360px;
            z-index: 1013; display: none; max-height: min(76vh, calc(100vh - 40px)); overflow-y: auto;
            overscroll-behavior-x: contain;
            overscroll-behavior-y: contain;
            touch-action: pan-y;
            border: 1px solid rgba(31,45,61,0.1);
            box-shadow: 0 22px 48px rgba(15,35,60,0.22);
        }
        .point-selector.modal-top {
            z-index: 2016;
        }
        .point-selector.show { display: block; }
        .point-selector h4 {
            margin-bottom: 16px;
            font-size: 18px;
            line-height: 1.3;
            color: #1f2d3d;
        }
        .point-selector label {
            display: inline-block;
            margin-bottom: 6px;
            color: #526579;
            font-size: 14px;
            font-weight: 700;
            line-height: 1.45;
        }
        .point-selector input:not([type="file"]):not([type="checkbox"]):not([type="radio"]),
        .point-selector select,
        .point-selector textarea {
            width: 100%;
            min-height: 44px;
            padding: 11px 12px;
            border: 1px solid #d9e2ec;
            border-radius: 12px;
            font-size: 15px;
            color: #1f2d3d;
            background: #fbfdff;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
        }
        .point-selector textarea {
            min-height: 92px;
            line-height: 1.6;
            resize: vertical;
        }
        .point-selector input[readonly],
        .point-selector select:disabled,
        .point-selector input:disabled {
            background: #f5f7fa;
            color: #6b7a88;
        }
        .workorder-form-modal {
            max-height: min(80vh, calc(100vh - 32px));
            overflow-y: auto;
        }
        .workorder-form-modal .modal-action-row {
            margin-top: 18px !important;
        }
        #createWOModal .photo-grid,
        #submitWOModal .photo-grid {
            margin-top: 12px;
        }
        #createWOModal .photo-add-card,
        #submitWOModal .photo-add-card {
            min-height: 108px;
        }
        #createWOModal .photo-cell,
        #submitWOModal .photo-cell {
            border-radius: 14px;
        }
        #createWOModal .photo-cell img,
        #submitWOModal .photo-cell img {
            border-radius: 14px;
        }
        #createWOModal [data-role="wo-type-value"],
        #woLocationInfo,
        #submitWOInfo {
            margin-top: 4px;
            font-size: 14px !important;
            color: #2f3a45 !important;
            padding: 10px 12px !important;
            border-radius: 12px !important;
            background: linear-gradient(180deg, #f8fbff 0%, #f1f6fb 100%) !important;
            border: 1px solid #dbe6f0 !important;
            line-height: 1.65 !important;
        }
        #createWOModal label,
        #submitWOModal label {
            font-size: 13px !important;
            font-weight: 700;
            color: #526579;
        }
        #woProjectFields,
        #woDispatchFields {
            margin-top: 2px;
            padding: 10px 10px 2px;
            border-radius: 14px;
            background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
        }
        #cleaningSnapshotBtn,
        #woArchiveExportBtn,
        #woArchiveDownloadBtn,
        #woArchiveAttachmentDownloadBtn,
        #woArchiveCleanupBtn,
        #maintenanceModeActionBtn,
        #maintenanceRefreshBtn {
            min-height: 44px;
            border-radius: 12px !important;
            box-shadow: 0 8px 18px rgba(15,35,60,0.1);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        #cleaningSnapshotBtn:hover,
        #woArchiveExportBtn:hover,
        #woArchiveDownloadBtn:hover,
        #woArchiveAttachmentDownloadBtn:hover,
        #woArchiveCleanupBtn:hover,
        #maintenanceModeActionBtn:hover,
        #maintenanceRefreshBtn:hover {
            filter: brightness(0.995);
            box-shadow: 0 12px 22px rgba(15,35,60,0.12);
        }
        #cleaningSnapshotBtn:active,
        #woArchiveExportBtn:active,
        #woArchiveDownloadBtn:active,
        #woArchiveAttachmentDownloadBtn:active,
        #woArchiveCleanupBtn:active,
        #maintenanceModeActionBtn:active,
        #maintenanceRefreshBtn:active {
            transform: translateY(1px);
            box-shadow: 0 5px 14px rgba(15,35,60,0.1);
        }
        .point-option {
            padding: 14px 12px;
            border-bottom: 1px solid #eef2f6;
            cursor: pointer;
            border-radius: 12px;
            transition: background 0.16s ease, transform 0.16s ease;
        }
        .point-option:hover {
            background: #f5f8fc;
            transform: translateY(-1px);
        }
        .point-option .name { font-weight: bold; }
        .point-option .dist { color: #999; font-size: 12px; }
        .form-info-box {
            margin-top: 4px;
            font-size: 14px;
            color: #2f3a45;
            padding: 10px 12px;
            border-radius: 12px;
            background: linear-gradient(180deg, #f8fbff 0%, #f1f6fb 100%);
            border: 1px solid #dbe6f0;
            line-height: 1.65;
        }
        .form-inline-actions {
            display: flex;
            gap: 8px;
            margin-top: 8px;
        }
        .form-inline-actions button {
            flex: 1;
            min-height: 42px;
            padding: 10px 12px;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            font-size: 14px;
            font-weight: 700;
            box-shadow: 0 6px 16px rgba(15,35,60,0.08);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .form-inline-actions button:hover {
            filter: brightness(0.995);
            box-shadow: 0 10px 20px rgba(15,35,60,0.1);
        }
        .form-inline-actions button:active {
            transform: translateY(1px);
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .overlay {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            background: rgba(15,23,42,0.42);
            backdrop-filter: blur(2px);
            z-index: 1011; display: none;
        }
        .overlay.modal-top {
            z-index: 2015;
        }
        .overlay.show { display: block; }

        .app-back-guard {
            overscroll-behavior-x: contain;
            overscroll-behavior-y: contain;
            touch-action: pan-y;
        }

        @media (max-width: 640px) {
            .auth-box {
                width: min(92vw, 360px);
                padding: 28px 18px 22px;
                border-radius: 18px;
            }
            .auth-box h2 {
                font-size: 20px;
            }
            .auth-box input,
            .auth-box button {
                min-height: 50px;
                font-size: 17px;
            }
            .quick-entry-stack {
                right: 10px;
                top: 78px;
                gap: 6px;
                width: min(144px, calc(100vw - 20px));
            }
            .quick-entry-btn {
                border-radius: 12px;
                padding: 8px 10px;
                font-size: 11px;
                line-height: 1.35;
            }
            .locate-me-btn {
                width: 40px;
                height: 40px;
                right: 14px;
                bottom: 78px;
                font-size: 16px;
            }
            .add-current-btn,
            .temp-workorder-btn {
                left: 12px;
                padding: 8px 12px;
                font-size: 12px;
                max-width: calc(100vw - 92px);
            }
            .add-current-btn {
                bottom: 78px;
            }
            .temp-workorder-btn {
                bottom: 126px;
            }
            .map-home-topbar {
                left: 6px;
                right: 6px;
                width: auto;
                max-width: none;
                gap: 6px;
                padding: 7px;
            }
            .map-home-topbar .locate-me-btn {
                position: static;
                width: 40px;
                height: 38px;
                min-width: 40px;
                right: auto;
                bottom: auto;
                font-size: 15px;
            }
            .map-home-select.village {
                max-width: 128px;
            }
            .map-layer-compact {
                padding: 0 10px;
            }
            .camera-mode-option {
                min-width: 40px;
                padding: 0 10px;
            }
            .home-bottom-dock {
                left: 50%;
                right: auto;
                width: calc(100vw - 12px);
                gap: 4px;
                padding: 8px;
            }
            #homeMoreSheet, #homeCreateSheet {
                left: auto;
                right: 6px;
                bottom: calc(74px + env(safe-area-inset-bottom));
                width: min(320px, calc(100vw - 12px));
                border-radius: 18px;
                transform: translateY(12px);
                opacity: 0;
            }
            #homeMoreSheet.show, #homeCreateSheet.show {
                transform: translateY(0);
                opacity: 1;
            }
            .bottom-dock-btn {
                font-size: 11px;
            }
            .bottom-dock-main {
                flex-basis: 50px;
            }
            .point-modal {
                padding: 16px 14px calc(16px + env(safe-area-inset-bottom));
                max-height: min(82vh, calc(100vh - 72px));
            }
            .point-detail-modal {
                padding: 16px 14px calc(14px + env(safe-area-inset-bottom));
            }
            .point-modal .header {
                top: -16px;
                margin-left: -14px;
                margin-right: -14px;
                padding: 14px 14px 12px;
            }
            .point-detail-modal .status-section,
            .point-detail-modal .current-status {
                padding: 10px;
            }
            .point-action-grid {
                grid-template-columns: 1fr;
                gap: 8px;
            }
            .industry-detail-modal {
                width: min(94vw, 620px);
                max-height: min(86vh, calc(100vh - 20px));
                padding: 16px 14px calc(16px + env(safe-area-inset-bottom));
            }
            .industry-detail-summary-card,
            .industry-detail-card {
                padding: 12px;
                font-size: 13px;
            }
            .industry-detail-summary-location {
                font-size: 16px;
            }
            .industry-detail-label {
                flex-basis: 78px;
            }
            .industry-detail-primary-actions,
            .industry-detail-admin-actions,
            .industry-detail-actions {
                grid-template-columns: 1fr;
                gap: 8px;
            }
            .industry-photo-section .industry-photo-thumb,
            .industry-photo-section .industry-photo-missing {
                border-radius: 10px;
            }
            .industry-project-card-actions {
                gap: 6px;
            }
            .industry-card-btn {
                flex: 1 1 0;
                padding: 7px 10px;
            }
            .industry-status-bar {
                padding: 10px 10px 2px;
                gap: 6px;
            }
            .industry-status-chip {
                min-width: 72px;
                min-height: 50px;
                padding: 8px 10px;
            }
            .industry-status-chip .count {
                font-size: 15px;
            }
            .point-modal h3 {
                font-size: 18px;
            }
            .point-modal .close {
                width: 38px;
                height: 38px;
            }
            .workorder-form-modal {
                max-height: min(82vh, calc(100vh - 28px));
            }
            .point-modal .info,
            .current-status,
            .status-btn,
            .submit-btn {
                font-size: 13px;
            }
            .pm-filter-field select {
                display: none;
            }
            .pm-filter-field .mobile-filter-trigger {
                display: block;
            }
            .industry-project-card-body {
                gap: 10px;
            }
            .industry-project-card-cover {
                flex-basis: 76px;
                width: 76px;
                height: 76px;
                border-radius: 14px;
            }
            .industry-project-card-title {
                font-size: 15px;
            }
            .status-btn {
                padding: 10px 14px;
            }
            .submit-btn {
                padding: 14px 12px;
                font-size: 15px;
            }
            .photo-grid {
                gap: 8px;
            }
            .photo-add-card {
                font-size: 12px;
            }
            .wo-detail-header {
                top: -18px;
            }
            .wo-detail-title {
                font-size: 17px;
            }
            .modal-action-row,
            .wo-detail-actions {
                grid-template-columns: 1fr;
            }
            .wo-photo-preview-row {
                align-items: flex-start;
            }
            .wo-photo-cover,
            .wo-photo-missing {
                width: 72px;
                height: 72px;
            }
            .wo-photo-thumb,
            .wo-photo-thumb-missing {
                width: 58px;
                height: 58px;
            }
        }

        @media (max-height: 760px) and (min-width: 641px) {
            .map-home-topbar {
                top: calc(6px + env(safe-area-inset-top));
            }
            .home-bottom-dock {
                bottom: calc(6px + env(safe-area-inset-bottom));
            }
        }

        @media (min-width: 641px) {
            .map-home-topbar {
                left: 12px;
                right: auto;
                width: max-content;
                max-width: calc(100vw - 24px);
            }
            .map-home-topbar .locate-me-btn {
                position: static;
                width: 36px;
                height: 32px;
                min-width: 36px;
                right: auto;
                bottom: auto;
            }
            .home-bottom-dock {
                left: 50%;
                right: auto;
                width: min(420px, calc(100vw - 24px));
            }
            .home-action-sheet {
                left: 50%;
                right: auto;
                bottom: calc(92px + env(safe-area-inset-bottom));
                width: min(320px, calc(100vw - 32px));
                border-radius: 24px;
                transform: translate(-50%, 12px);
                opacity: 0;
                padding: 14px;
            }
            .home-action-sheet.show {
                transform: translate(-50%, 0);
                opacity: 1;
            }
        }

        .wo-marker {
            position: relative;
            display: inline-block;
            line-height: 0;
        }

        .wo-cross-pill {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 24px;
            height: 24px;
            margin-left: 6px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2f54eb, #13c2c2);
            color: #fff;
            font-size: 15px;
            line-height: 1;
            font-weight: 900;
            box-shadow: 0 3px 8px rgba(47,84,235,0.28);
            vertical-align: middle;
        }
        .wo-source-tag {
            display: inline-block;
            margin-top: 4px;
            padding: 2px 8px;
            border-radius: 999px;
            background: #fff7e6;
            color: #d46b08;
            font-size: 12px;
        }
        .wo-type-tag {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 700;
        }
        .wo-type-tag.normal {
            background: #fff7e6;
            color: #d46b08;
        }
        .wo-type-tag.project {
            background: #e6fffb;
            color: #08979c;
        }
        .wo-mode-tag {
            display: inline-block;
            margin-top: 4px;
            margin-left: 6px;
            padding: 2px 8px;
            border-radius: 999px;
            background: #f0f5ff;
            color: #1d39c4;
            font-size: 12px;
        }
        .wo-card-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-top: 8px;
        }
        .wo-card-tag-pill {
            display: inline-flex;
            align-items: center;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 12px;
            font-weight: 600;
            line-height: 1.6;
        }
        .wo-card-tag-pill-danger { background: #fff1f0; color: #cf1322; border: 1px solid #ffccc7; }
        .wo-card-tag-pill-warning { background: #fff7e6; color: #d46b08; border: 1px solid #ffd591; }
        .wo-card-tag-pill-success { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
        .wo-card-tag-pill-info { background: #e6f4ff; color: #0958d9; border: 1px solid #91caff; }
        .wo-card-tag-pill-neutral { background: #f5f5f5; color: #595959; border: 1px solid #d9d9d9; }
        .wo-todo-select-row {
            display: grid;
            grid-template-columns: 28px minmax(0, 1fr);
            gap: 8px;
            align-items: start;
            margin-bottom: 10px;
        }
        .wo-todo-select-check {
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding-top: 18px;
            cursor: pointer;
        }
        .wo-todo-select-check input {
            width: 18px;
            height: 18px;
            margin: 0;
            cursor: pointer;
        }
        .wo-todo-select-body {
            min-width: 0;
        }
        .cleaner-option {
            padding: 13px 12px;
            border: 1px solid #dfe7ef;
            border-radius: 12px;
            cursor: pointer;
            margin-bottom: 8px;
            font-size: 15px;
            line-height: 1.55;
            background: #fff;
        }
        .cleaner-option.selected {
            border-color: #1890ff;
            background: #e6f7ff;
            box-shadow: inset 0 0 0 1px rgba(24,144,255,0.14);
        }
        .filter-picker-option {
            padding: 13px 12px;
            border: 1px solid #dfe7ef;
            border-radius: 12px;
            cursor: pointer;
            margin-bottom: 8px;
            font-size: 15px;
            line-height: 1.5;
            color: #1f2d3d;
            background: #fff;
        }
        .filter-picker-option.selected {
            border-color: #1890ff;
            background: #e6f7ff;
            color: #0958d9;
        }
        .action-choice-card {
            padding: 14px 13px;
            border: 1px solid #dfe7ef;
            border-radius: 14px;
            margin-bottom: 10px;
            cursor: pointer;
            transition: all 0.2s;
            background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
            line-height: 1.65;
        }
        .action-choice-card.selected {
            border-color: #07c160;
            background: #f6ffed;
            box-shadow: inset 0 0 0 1px rgba(7,193,96,0.12);
        }
        .todo-summary {
            background: linear-gradient(135deg, #fff8ea 0%, #fff2d9 100%);
            border: 1px solid #ffd591;
            border-radius: 14px;
            margin: 10px 12px 0;
            padding: 12px 14px;
            font-size: 13px;
            color: #8c5a00;
            box-shadow: 0 8px 18px rgba(250,140,22,0.08);
        }
        .todo-chip-row {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 8px;
        }
        .todo-chip {
            border: none;
            border-radius: 999px;
            padding: 7px 11px;
            background: rgba(255,255,255,0.95);
            color: #ad6800;
            font-size: 12px;
            cursor: pointer;
            box-shadow: 0 2px 8px rgba(140,90,0,0.08);
        }
        .quick-entry-btn.has-alert {
            position: relative;
            box-shadow: 0 6px 18px rgba(0,0,0,0.22);
        }
        .quick-entry-btn.has-alert::after {
            content: '';
            position: absolute;
            top: 8px;
            right: 8px;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: #ff4d4f;
            box-shadow: 0 0 0 4px rgba(255, 77, 79, 0.16);
        }
        .menu-badge {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 18px;
            height: 18px;
            padding: 0 5px;
            margin-left: 6px;
            border-radius: 999px;
            background: #ff4d4f;
            color: white;
            font-size: 11px;
            font-weight: bold;
            vertical-align: middle;
        }
        .stats-card {
            background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 14px;
            padding: 12px;
            margin: 10px 12px 0;
            margin-bottom: 0;
            box-shadow: 0 8px 20px rgba(15,35,60,0.05);
        }
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(4, minmax(0, 1fr));
            gap: 6px;
            margin-top: 8px;
        }
        .stats-item {
            background: white;
            border-radius: 10px;
            padding: 9px;
            border: 1px solid rgba(31,45,61,0.06);
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .stats-item .label {
            font-size: 11px;
            color: #666;
            margin-bottom: 2px;
        }
        .stats-item .value {
            font-size: 18px;
            font-weight: bold;
            color: #262626;
        }
        #workOrderTodoDispatchFilters {
            align-items: center;
            gap: 8px;
        }
        #workOrderTodoActionRow {
            align-items: center;
            gap: 8px;
            border-top: 1px solid rgba(31,45,61,0.06);
            border-bottom: none;
            margin-top: auto;
            padding: 8px 12px;
            justify-content: flex-end;
        }
        #workOrderTodoActionRow button {
            min-height: 32px;
            padding: 6px 10px;
            font-size: 12px;
            font-weight: 600;
            border-radius: 10px;
            box-shadow: 0 2px 8px rgba(15,35,60,0.05);
            flex: 0 0 auto;
        }
        #workOrderTodoActionRow #workOrderTodoSelectAllBtn {
            min-width: 60px;
        }
        #workOrderTodoActionRow #workOrderTodoExportBtn {
            min-width: 112px;
        }
        @media (max-width: 960px) {
            #workOrderTodoActionRow {
                padding: 7px 10px;
                justify-content: stretch;
                gap: 6px;
            }
            #workOrderTodoActionRow button {
                min-height: 30px;
                padding: 5px 8px;
                font-size: 12px;
                flex: 1;
            }
            #workOrderTodoActionRow #workOrderTodoSelectAllBtn,
            #workOrderTodoActionRow #workOrderTodoExportBtn {
                min-width: 0;
            }
        }
        #workOrderTodoExportRow {
            align-items: center;
            gap: 8px;
        }
        #workOrderTodoExportRow button {
            min-height: 38px;
        }
        #workOrderTodoDispatchFilters button,
        #workOrderTodoDispatchFilters select {
            min-height: 38px;
        }
        .photo-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 10px;
            margin-top: 10px;
        }
        .photo-cell {
            position: relative;
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 14px;
            overflow: hidden;
            background: linear-gradient(180deg, #fbfcfe 0%, #f1f5f9 100%);
            border: 1px solid #dfe7ef;
            box-shadow: 0 8px 18px rgba(15,35,60,0.06);
        }
        .photo-cell img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            cursor: zoom-in;
            transition: transform 0.18s ease, filter 0.18s ease;
        }
        .photo-cell img:hover {
            transform: scale(1.02);
            filter: brightness(1.01);
        }
        .photo-add-card {
            width: 100%;
            height: 100%;
            border: 1px dashed #bfd0de;
            background: linear-gradient(180deg, #fcfdff 0%, #f5f8fb 100%);
            border-radius: 14px;
            color: #595959;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 6px;
            padding: 10px;
            font-size: 13px;
            line-height: 1.45;
            box-shadow: inset 0 1px 0 rgba(255,255,255,0.9);
            transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease, box-shadow 0.16s ease;
        }
        .photo-add-card:hover {
            border-color: #8fc9a9;
            background: linear-gradient(180deg, #fafffc 0%, #f1fbf5 100%);
            box-shadow: 0 8px 18px rgba(15,35,60,0.06);
            transform: translateY(-1px);
        }
        .photo-add-card.dragover {
            border-color: #1677ff;
            background: #e6f4ff;
            color: #1677ff;
            box-shadow: inset 0 0 0 1px rgba(22,119,255,0.18);
        }
        .photo-add-card .plus {
            font-size: 28px;
            line-height: 1;
            color: #1890ff;
        }
        .photo-remove-btn {
            position: absolute;
            top: 6px;
            right: 6px;
            width: 30px;
            height: 30px;
            border: none;
            border-radius: 50%;
            background: rgba(15,23,42,0.7);
            color: #fff;
            font-size: 18px;
            line-height: 30px;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0,0,0,0.2);
            transition: transform 0.16s ease, background 0.16s ease;
        }
        .photo-remove-btn:hover {
            background: rgba(15,23,42,0.82);
        }
        .photo-remove-btn:active {
            transform: scale(0.94);
        }
        .photo-hint {
            font-size: 13px;
            color: #6b7a88;
            margin-top: 10px;
            line-height: 1.65;
            padding: 10px 12px;
            border-radius: 12px;
            background: linear-gradient(180deg, #f9fbfd 0%, #f3f7fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
        }
        .photo-viewer {
            position: fixed;
            inset: 0;
            background: radial-gradient(circle at top, rgba(34,47,74,0.3) 0%, rgba(0,0,0,0.9) 48%, rgba(0,0,0,0.96) 100%);
            z-index: 2150;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 24px;
            backdrop-filter: blur(6px);
        }
        .photo-viewer.show {
            display: flex;
        }
        .photo-viewer-stage {
            position: relative;
            width: min(100%, 96vw);
            height: min(100%, calc(var(--app-height, 100vh) - 96px));
            overflow: hidden;
            touch-action: none;
            user-select: none;
            -webkit-user-select: none;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 18px;
        }
        .photo-viewer img {
            max-width: 100%;
            max-height: 100%;
            object-fit: contain;
            border-radius: 16px;
            transform-origin: center center;
            will-change: transform;
            cursor: grab;
            user-select: none;
            -webkit-user-select: none;
            -webkit-user-drag: none;
            box-shadow: 0 18px 44px rgba(0,0,0,0.36);
        }
        .photo-viewer img.dragging {
            cursor: grabbing;
        }
        .photo-viewer-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 40px;
            height: 40px;
            border: 1px solid rgba(255,255,255,0.16);
            border-radius: 50%;
            background: rgba(255,255,255,0.16);
            color: white;
            font-size: 24px;
            cursor: pointer;
            z-index: 2;
            box-shadow: 0 8px 20px rgba(0,0,0,0.2);
            transition: transform 0.16s ease, background 0.16s ease;
        }
        .photo-viewer-close:hover {
            background: rgba(255,255,255,0.22);
        }
        .photo-viewer-close:active {
            transform: scale(0.94);
        }
        .photo-viewer-tip {
            position: absolute;
            left: 50%;
            bottom: 16px;
            transform: translateX(-50%);
            padding: 10px 14px;
            border-radius: 999px;
            background: rgba(255,255,255,0.14);
            color: rgba(255,255,255,0.9);
            font-size: 12px;
            line-height: 1.2;
            pointer-events: none;
            backdrop-filter: blur(6px);
            z-index: 1;
            box-shadow: 0 8px 18px rgba(0,0,0,0.16);
        }
        .action-sheet {
            position: fixed;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(180deg, #ffffff 0%, #f8fbfe 100%);
            border-radius: 20px 20px 0 0;
            z-index: 2050;
            transform: translateY(100%);
            transition: transform 0.25s ease;
            padding: 14px;
            border-top: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 -16px 34px rgba(15,35,60,0.18);
        }
        .action-sheet.show {
            transform: translateY(0);
        }
        .action-sheet-title {
            text-align: center;
            font-size: 14px;
            color: #666;
            margin-bottom: 12px;
        }
        .action-sheet-btn {
            width: 100%;
            padding: 14px 16px;
            border: none;
            border-radius: 10px;
            font-size: 15px;
            cursor: pointer;
            margin-bottom: 8px;
        }
        .camera-mode-group {
            display: flex;
            pointer-events: auto;
            gap: 4px;
        }
        .camera-mode-option.active {
            background: #1890ff;
            color: #fff;
            box-shadow: 0 2px 6px rgba(24, 144, 255, 0.28);
        }
        .map-layer-filter {
            position: fixed;
            top: calc(58px + env(safe-area-inset-top));
            left: 8px;
            z-index: 1002;
            width: min(260px, calc(100vw - 16px));
            background: rgba(255,255,255,0.96);
            border: 1px solid rgba(24,144,255,0.16);
            border-radius: 18px;
            padding: 8px 9px;
            box-shadow: 0 4px 14px rgba(0,0,0,0.1);
            backdrop-filter: blur(8px);
        }
        .layer-filter-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
        }
        .layer-filter-title {
            min-width: 0;
            flex: 1;
        }
        .layer-filter-name {
            font-size: 12px;
            color: #28445a;
            font-weight: 700;
            line-height: 1.2;
        }
        .layer-filter-summary {
            margin-top: 2px;
            max-width: 142px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            color: #7a8996;
            font-size: 11px;
            line-height: 1.25;
        }
        .layer-filter-toggle {
            flex: 0 0 auto;
            border: none;
            background: #f0f7ff;
            color: #1677ff;
            border-radius: 999px;
            padding: 5px 9px;
            font-size: 12px;
            cursor: pointer;
        }
        .layer-filter-options {
            display: none;
            flex-direction: column;
            gap: 6px;
            margin-top: 8px;
        }
        .layer-filter-option {
            display: flex;
            align-items: center;
            gap: 7px;
            min-height: 30px;
            border-radius: 12px;
            padding: 6px 8px;
            background: #f7fafc;
            color: #2f3f4f;
            font-size: 13px;
            cursor: pointer;
            user-select: none;
        }
        .layer-filter-option input {
            width: 16px;
            height: 16px;
            accent-color: #1677ff;
        }
        .quick-entry-stack {
            display: none !important;
        }
        .quick-entry-btn {
            border: none;
            border-radius: 14px;
            padding: 10px 12px;
            color: #fff;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0,0,0,0.22);
            font-size: 12px;
            font-weight: bold;
            text-align: left;
        }
        .quick-entry-btn.primary {
            background: linear-gradient(135deg, #ff9c3f, #fa541c);
        }
        .quick-entry-btn.secondary {
            background: linear-gradient(135deg, #2f78ff, #1243b6);
        }
        .quick-entry-btn.ghost {
            background: linear-gradient(135deg, #20b26b, #12804b);
        }
        .records-hint {
            background: linear-gradient(180deg, #f9fbfd 0%, #f3f7fb 100%);
            color: #5f6f80;
            font-size: 13px;
            line-height: 1.65;
            padding: 12px 14px;
            border-bottom: 1px solid rgba(31,45,61,0.06);
            border-top: 1px solid rgba(255,255,255,0.8);
        }
        .records-hint.workorder-hint-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
        }
        .workorder-hint-text {
            min-width: 0;
            flex: 1;
        }
        .overview-tabs {
            display: flex;
            gap: 8px;
            padding: 12px;
            background: rgba(255,255,255,0.9);
            border-bottom: 1px solid rgba(31,45,61,0.06);
        }
        .overview-tab {
            flex: 1;
            border: 1px solid #dbe4ec;
            border-radius: 999px;
            padding: 10px 12px;
            background: linear-gradient(180deg, #f9fbfd 0%, #f2f6fa 100%);
            color: #526579;
            font-size: 13px;
            cursor: pointer;
            font-weight: 700;
            transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
        }
        .overview-tab:hover {
            box-shadow: 0 6px 14px rgba(15,35,60,0.06);
            transform: translateY(-1px);
        }
        .overview-tab.active {
            background: linear-gradient(180deg, #17233d 0%, #24324f 100%);
            border-color: #17233d;
            color: #fff;
            font-weight: 800;
            box-shadow: 0 10px 20px rgba(23,35,61,0.18);
        }
        .inspection-summary-board {
            padding: 12px;
        }
        .inspection-summary-card {
            background: #fff;
            border-radius: 16px;
            padding: 15px;
            margin-bottom: 12px;
            box-shadow: 0 8px 20px rgba(15, 35, 60, 0.06);
            border: 1px solid rgba(31,45,61,0.06);
        }
        .inspection-summary-title {
            display: flex;
            justify-content: space-between;
            gap: 10px;
            align-items: flex-start;
            font-size: 15px;
            font-weight: bold;
            color: #222;
        }
        .inspection-summary-sub {
            margin-top: 4px;
            font-size: 12px;
            color: #888;
            font-weight: normal;
        }
        .inspection-stat-grid {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: 8px;
            margin-top: 12px;
        }
        .inspection-stat {
            border-radius: 10px;
            padding: 9px 8px;
            background: #fafafa;
            text-align: center;
            min-width: 0;
        }
        .inspection-stat .num {
            font-size: 18px;
            font-weight: bold;
            color: #222;
            line-height: 1.2;
        }
        .inspection-stat .label {
            margin-top: 4px;
            font-size: 11px;
            color: #777;
            white-space: nowrap;
        }
        .inspection-stat.clean { background: #f6ffed; }
        .inspection-stat.clean .num { color: #389e0d; }
        .inspection-stat.normal { background: #fffbe6; }
        .inspection-stat.normal .num { color: #d48806; }
        .inspection-stat.dirty { background: #fff1f0; }
        .inspection-stat.dirty .num { color: #cf1322; }
        .inspection-stat.uninspected { background: #f5f5f5; }
        .inspection-compare-row {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-top: 12px;
        }
        .inspection-compare-chip {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            border-radius: 999px;
            padding: 5px 9px;
            font-size: 12px;
            background: #f5f5f5;
            color: #555;
        }
        .inspection-compare-chip.good {
            background: #f6ffed;
            color: #237804;
        }
        .inspection-compare-chip.bad {
            background: #fff1f0;
            color: #a8071a;
        }
        .inspection-compare-chip.neutral {
            background: #f0f5ff;
            color: #1d39c4;
        }
        .wo-detail-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            margin-bottom: 12px;
            position: sticky;
            top: -22px;
            z-index: 2;
            padding: 2px 0 10px;
            background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(255,255,255,0.92) 100%);
            backdrop-filter: blur(10px);
        }
        .wo-detail-title {
            font-size: 18px;
            font-weight: 700;
            color: #262626;
            line-height: 1.3;
        }
        .wo-detail-close {
            border: 1px solid #d9e2ec;
            background: #f7fafc;
            color: #526579;
            border-radius: 999px;
            min-height: 34px;
            padding: 7px 12px;
            cursor: pointer;
            font-size: 13px;
            font-weight: 700;
            transition: background 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
        }
        .wo-detail-close:hover {
            background: #f1f6fb;
            box-shadow: 0 4px 12px rgba(15,35,60,0.06);
        }
        .wo-detail-close:active {
            transform: translateY(1px);
        }
        .wo-detail-section {
            margin-top: 14px;
            padding: 14px;
            background: linear-gradient(180deg, #fbfcfe 0%, #f6f8fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 14px;
            box-shadow: 0 6px 18px rgba(15,35,60,0.05);
        }
        .wo-detail-section:first-child {
            margin-top: 0;
        }
        .wo-detail-section-title {
            font-size: 13px;
            font-weight: 700;
            color: #262626;
            margin-bottom: 10px;
            letter-spacing: 0.02em;
        }
        .wo-detail-summary-line {
            margin-top: 6px;
            color: #595959;
            line-height: 1.6;
        }
        .wo-detail-summary-line:first-child {
            margin-top: 0;
        }
        .wo-detail-desc {
            margin-top: 8px;
            color: #262626;
            line-height: 1.7;
            white-space: pre-wrap;
            word-break: break-word;
        }
        .wo-detail-timeline {
            display: grid;
            gap: 8px;
        }
        .wo-detail-event {
            padding: 11px 12px;
            background: white;
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .wo-detail-event-title {
            font-weight: 600;
            color: #262626;
        }
        .wo-detail-event-meta {
            margin-top: 4px;
            color: #8c8c8c;
            font-size: 12px;
            line-height: 1.5;
        }
        .wo-detail-event-desc {
            margin-top: 4px;
            color: #595959;
            line-height: 1.6;
            white-space: pre-wrap;
            word-break: break-word;
        }
        .wo-photo-section {
            display: grid;
            gap: 10px;
        }
        .wo-detail-inline-submit-section .photo-grid {
            margin-top: 0;
        }
        .wo-detail-inline-submit-actions {
            margin-top: 4px !important;
        }
        .wo-photo-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            flex-wrap: wrap;
        }
        .wo-photo-count {
            display: inline-flex;
            align-items: center;
            padding: 4px 10px;
            border-radius: 999px;
            background: #f4f7fb;
            border: 1px solid #e2eaf2;
            color: #5f6f80;
            font-size: 12px;
            font-weight: 700;
            line-height: 1.4;
        }
        .wo-photo-grid {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
        }
        .wo-photo-item,
        .wo-photo-missing {
            min-height: 92px;
            border-radius: 12px;
            overflow: hidden;
            aspect-ratio: 1 / 1;
        }
        .wo-photo-item {
            position: relative;
            cursor: zoom-in;
            box-shadow: 0 8px 18px rgba(15,35,60,0.12);
            background: #f5f7fa;
        }
        .wo-photo-item img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .wo-photo-badge {
            position: absolute;
            right: 6px;
            bottom: 6px;
            min-width: 20px;
            height: 20px;
            padding: 0 6px;
            border-radius: 999px;
            background: rgba(15,35,60,0.72);
            color: #fff;
            font-size: 10px;
            font-weight: 800;
            display: inline-flex;
            align-items: center;
            justify-content: center;
        }
        .wo-photo-missing {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 10px;
            text-align: center;
            background: #fafafa;
            border: 1px dashed #d9d9d9;
            color: #8c8c8c;
            font-size: 11px;
            line-height: 1.5;
        }
        .wo-photo-preview-meta {
            min-width: 0;
            display: grid;
            gap: 6px;
            color: #5f6f80;
            font-size: 13px;
            line-height: 1.6;
        }
        .wo-photo-thumb,
        .wo-photo-thumb-missing {
            width: 100%;
            height: 100%;
            min-height: 92px;
            border-radius: 12px;
            flex: 0 0 auto;
        }
        .wo-photo-thumb {
            object-fit: cover;
            cursor: zoom-in;
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .wo-photo-thumb-missing {
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 6px;
            text-align: center;
            background: #fafafa;
            border: 1px dashed #d9d9d9;
            color: #8c8c8c;
            font-size: 10px;
            line-height: 1.45;
        }
        .wo-photo-inline-gallery {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
        }
        @media (max-width: 640px) {
            .wo-photo-grid,
            .wo-photo-inline-gallery {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        .wo-detail-action-groups {
            display: grid;
            gap: 10px;
            width: 100%;
            grid-column: 1 / -1;
        }
        .wo-detail-action-group {
            width: 100%;
            padding: 10px;
            background: linear-gradient(180deg, #fafcff 0%, #f5f8fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 14px;
            box-shadow: 0 6px 16px rgba(15,35,60,0.04);
        }
        .wo-detail-action-group-title {
            font-size: 12px;
            font-weight: 700;
            color: #8c8c8c;
            margin-bottom: 8px;
        }
        .wo-detail-action-row {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            align-items: stretch;
            justify-content: flex-start;
        }
        .wo-detail-action-row button {
            flex: 1 1 140px;
            min-height: 42px;
            max-width: 100%;
            border-radius: 12px;
            font-size: 15px;
            font-weight: 700;
        }
        .wo-detail-action-group-danger {
            background: linear-gradient(180deg, #fff8f8 0%, #fff2f0 100%);
            border-color: #ffd6d2;
        }
        #woDetailModal.is-busy #woDetailContent,
        #woDetailModal.is-busy #woDetailActions,
        #woDetailModal.is-busy .wo-detail-header,
        #woDetailModal.is-busy > div:not(#woDetailBusyMask) {
            pointer-events: none;
        }
        #woDetailModal.is-busy #woDetailBottomCloseBtn,
        #woDetailModal.is-busy #woDetailCloseBtn {
            opacity: 0.6;
        }
        @keyframes woDetailBusySpin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }
        .wo-detail-action-secondary {
            background: #f5f5f5 !important;
            color: #595959 !important;
            border: 1px solid #d9d9d9 !important;
            box-shadow: none !important;
        }
        @media (max-width: 520px) {
            .inspection-stat-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
            .inspection-stat:first-child {
                grid-column: span 2;
            }
        }
        .wo-list-card {
            position: relative;
            background: white;
            border-radius: 12px;
            padding: 11px 11px 10px;
            margin-bottom: 9px;
            font-size: 14px;
            border: 1px solid rgba(31,45,61,0.07);
            box-shadow: 0 6px 14px rgba(15, 35, 60, 0.05);
            transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
        }
        .wo-list-card:hover {
            transform: translateY(-1px);
            border-color: rgba(31,45,61,0.1);
            box-shadow: 0 10px 18px rgba(15, 35, 60, 0.08);
        }
        .wo-list-card.normal-order {
            border-left: 4px solid #fa8c16;
        }
        .wo-list-card.project-order {
            border-left: 4px solid #13c2c2;
            background: linear-gradient(180deg, #f6fffe 0%, #ffffff 100%);
        }
        .wo-list-card.unread::before {
            content: '';
            position: absolute;
            top: 12px;
            right: 12px;
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: #ff4d4f;
            box-shadow: 0 0 0 3px rgba(255, 77, 79, 0.12);
        }
        .wo-line {
            margin-top: 8px;
            color: #44505c;
            line-height: 1.7;
        }
        .wo-flow-line {
            margin-top: 8px;
            padding: 10px 11px;
            border-radius: 12px;
            background: linear-gradient(180deg, #fffaf1 0%, #fff3de 100%);
            border: 1px solid rgba(250,140,22,0.18);
            color: #8c5a00;
            font-size: 13px;
            line-height: 1.6;
        }
        .records-action-row {
            background: rgba(255,255,255,0.94);
            padding: 12px 15px;
            display: flex;
            gap: 10px;
            border-bottom: 1px solid rgba(31,45,61,0.06);
        }
        .records-action-row button {
            flex: 1;
            min-height: 42px;
            padding: 10px 12px;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            font-size: 15px;
            font-weight: 700;
            box-shadow: 0 6px 16px rgba(15,35,60,0.08);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .records-action-row button:hover {
            filter: brightness(0.99);
            box-shadow: 0 10px 20px rgba(15,35,60,0.1);
        }
        .records-action-row button:active {
            transform: translateY(1px);
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .maintenance-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 8px;
            margin-top: 8px;
        }
        .maintenance-stat {
            background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
            border: 1px solid rgba(31,45,61,0.06);
            border-radius: 12px;
            padding: 11px;
            box-shadow: 0 4px 12px rgba(15,35,60,0.04);
        }
        .maintenance-stat .label {
            font-size: 12px;
            color: #666;
            margin-bottom: 4px;
        }
        .maintenance-stat .value {
            font-size: 18px;
            font-weight: bold;
            color: #262626;
        }
        .maintenance-stat .sub {
            margin-top: 4px;
            font-size: 11px;
            color: #8c8c8c;
            line-height: 1.5;
        }
        .maintenance-card {
            background: white;
            border-radius: 14px;
            padding: 14px 15px;
            margin-bottom: 10px;
            border: 1px solid rgba(31,45,61,0.06);
            box-shadow: 0 8px 20px rgba(15, 35, 60, 0.06);
        }
        .maintenance-card.warning {
            border: 1px solid #ffd591;
            background: #fff7e6;
        }
        .maintenance-card.danger {
            border: 1px solid #ffccc7;
            background: #fff2f0;
        }
        .maintenance-card h3 {
            font-size: 15px;
            margin-bottom: 8px;
            color: #262626;
        }
        .maintenance-line {
            font-size: 13px;
            color: #595959;
            line-height: 1.7;
            margin-top: 4px;
        }
        .maintenance-card-actions {
            display: flex;
            gap: 10px;
            margin-top: 12px;
        }
        .maintenance-card-actions button {
            flex: 1;
            padding: 10px 12px;
            border: none;
            border-radius: 12px;
            cursor: pointer;
            font-size: 14px;
            font-weight: 700;
            box-shadow: 0 6px 16px rgba(15,35,60,0.08);
            transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
        }
        .maintenance-card-actions button:hover {
            filter: brightness(0.99);
            box-shadow: 0 10px 20px rgba(15,35,60,0.1);
        }
        .maintenance-card-actions button:active {
            transform: translateY(1px);
            box-shadow: 0 4px 12px rgba(15,35,60,0.08);
        }
        .import-status-card {
            display: none;
            margin: 10px 15px 0;
            padding: 12px 14px;
            border-radius: 10px;
            border: 1px solid #d9d9d9;
            background: #fafafa;
        }
        .import-status-card.show {
            display: block;
        }
        .import-status-card.pending {
            border-color: #91caff;
            background: #e6f4ff;
        }
        .import-status-card.success {
            border-color: #b7eb8f;
            background: #f6ffed;
        }
        .import-status-card.error {
            border-color: #ffccc7;
            background: #fff2f0;
        }
        .import-status-title {
            font-size: 14px;
            font-weight: 600;
            color: #262626;
        }
        .import-status-text {
            margin-top: 6px;
            font-size: 13px;
            line-height: 1.7;
            color: #595959;
            white-space: pre-wrap;
            word-break: break-word;
        }
        .import-status-progress {
            margin-top: 10px;
            height: 8px;
            border-radius: 999px;
            background: rgba(0, 0, 0, 0.08);
            overflow: hidden;
        }
        .import-status-bar {
            width: 0%;
            height: 100%;
            border-radius: inherit;
            background: #1677ff;
            transition: width 0.25s ease;
        }
        .import-status-card.success .import-status-bar {
            background: #52c41a;
        }
        .import-status-card.error .import-status-bar {
            background: #ff4d4f;
        }
        .maintenance-mode-banner {
            position: fixed;
            top: calc(54px + env(safe-area-inset-top));
            left: 50%;
            transform: translateX(-50%);
            width: min(560px, calc(100vw - 24px));
            z-index: 1016;
            display: none;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            border-radius: 14px;
            border: 1px solid #ffccc7;
            background: rgba(255, 241, 240, 0.98);
            box-shadow: 0 10px 24px rgba(207, 19, 34, 0.12);
            backdrop-filter: blur(10px);
        }
        .maintenance-mode-banner.show {
            display: flex;
        }
        .maintenance-mode-banner .text {
            min-width: 0;
            flex: 1;
            font-size: 12px;
            line-height: 1.6;
            color: #5c1d1d;
        }
        .maintenance-mode-banner .actions {
            display: flex;
            gap: 8px;
            flex: 0 0 auto;
        }
        .maintenance-mode-banner button {
            border: none;
            border-radius: 999px;
            padding: 7px 12px;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
        }
        .maintenance-mode-banner .open-btn {
            background: #fff;
            color: #cf1322;
            border: 1px solid #ffa39e;
        }
        .maintenance-mode-banner .exit-btn {
            background: #cf1322;
            color: #fff;
        }
        .maintenance-list {
            margin-top: 10px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }
        .maintenance-list-item {
            background: #fafafa;
            border: 1px solid #f0f0f0;
            border-radius: 10px;
            padding: 10px 12px;
            font-size: 13px;
            color: #595959;
            line-height: 1.6;
        }
        .release-banner {
            margin: 12px 12px 0;
            padding: 13px 15px;
            border-radius: 14px;
            background: linear-gradient(135deg, #fff7e6, #fff1b8);
            border: 1px solid #ffd666;
            color: #8c5a00;
            box-shadow: 0 10px 22px rgba(250,140,22,0.12);
        }
        .release-banner .label {
            font-size: 12px;
            opacity: 0.9;
        }
        .release-banner .value {
            font-size: 24px;
            font-weight: bold;
            margin-top: 4px;
        }
        .release-banner .sub {
            font-size: 12px;
            line-height: 1.6;
            margin-top: 4px;
        }
        #workOrderArchivePanel .records-list {
            padding-top: 10px;
        }
        #workOrderArchivePanel .records-hint {
            padding: 10px 12px;
            font-size: 12px;
            line-height: 1.6;
        }
        .archive-filter-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 8px;
            width: 100%;
        }
        .archive-filter-field {
            display: flex;
            flex-direction: column;
            gap: 4px;
            min-width: 0;
        }
        .archive-filter-field label {
            font-size: 11px;
            font-weight: 700;
            color: #6b7a88;
            line-height: 1.2;
        }
        .archive-filter-field input,
        .archive-filter-field select,
        .archive-filter-field button {
            width: 100%;
        }
        #woArchiveStatsHost {
            grid-column: 1 / -1;
        }
        .archive-stat-card {
            padding: 10px 12px;
            border-radius: 12px;
            background: #fafafa;
            border: 1px solid #f0f0f0;
        }
        .archive-stat-card .label {
            font-size: 12px;
            color: #8c8c8c;
        }
        .archive-stat-card .value {
            margin-top: 4px;
            font-size: 18px;
            font-weight: 700;
            color: #262626;
        }
        .archive-action-grid {
            display: grid !important;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 8px;
            align-items: stretch;
        }
        .archive-action-grid button {
            width: 100%;
            min-width: 0;
            min-height: 40px;
            font-size: 14px;
            padding: 10px 12px;
        }
        .archive-preview-card {
            background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
            border: 1px solid rgba(31,45,61,0.07);
            border-radius: 18px;
            padding: 14px 16px;
            margin-bottom: 10px;
            box-shadow: 0 8px 20px rgba(15,35,60,0.06);
        }
        .archive-preview-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
        }
        .archive-preview-main {
            min-width: 0;
            flex: 1;
        }
        .archive-preview-village {
            font-size: 18px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.2;
        }
        .archive-preview-subline {
            margin-top: 4px;
            font-size: 12px;
            color: #6b7a88;
            line-height: 1.5;
        }
        .archive-preview-desc {
            margin-top: 8px;
            font-size: 14px;
            line-height: 1.65;
            color: #2f3d4a;
            word-break: break-word;
        }
        .archive-preview-meta {
            margin-top: 10px;
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
        }
        .archive-preview-metric {
            padding: 8px 10px;
            border-radius: 12px;
            background: linear-gradient(180deg, #f8fbff 0%, #f3f7fb 100%);
            border: 1px solid rgba(31,45,61,0.06);
        }
        .archive-preview-metric .label {
            font-size: 11px;
            color: #7a8794;
            line-height: 1.2;
        }
        .archive-preview-metric .value {
            margin-top: 4px;
            font-size: 14px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.3;
            word-break: break-word;
        }
        .archive-preview-foot {
            margin-top: 10px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            flex-wrap: wrap;
        }
        .archive-preview-status {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 7px 12px;
            border-radius: 999px;
            font-size: 13px;
            font-weight: 800;
            white-space: nowrap;
            background: linear-gradient(180deg, #fff8f0 0%, #fff1dd 100%);
            border: 1px solid #ffd8a8;
            color: #d46b08;
        }
        .archive-preview-status.closed {
            background: linear-gradient(180deg, #f6ffed 0%, #edf9e4 100%);
            border-color: #b7eb8f;
            color: #2f7d32;
        }
        .archive-preview-note {
            min-width: 0;
            flex: 1;
            font-size: 12px;
            color: #5f6f80;
            line-height: 1.6;
            text-align: left;
        }
        @media (max-width: 960px) {
            .archive-preview-meta {
                grid-template-columns: 1fr;
            }
            .archive-preview-foot {
                align-items: flex-start;
            }
            .archive-preview-note {
                text-align: left;
            }
        }
        @media (max-width: 640px) {
            .archive-preview-card {
                padding: 14px 14px;
            }
            .archive-action-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        .todo-notice-banner {
            position: fixed;
            top: 58px;
            left: 12px;
            right: 12px;
            z-index: 2030;
            padding: 10px 14px;
            border-radius: 12px;
            background: linear-gradient(135deg, #e6f4ff, #bae0ff);
            border: 1px solid #91caff;
            color: #003a8c;
            box-shadow: 0 8px 24px rgba(0, 58, 140, 0.12);
            display: none;
        }
        .todo-notice-banner.show {
            display: block;
        }
        .todo-notice-banner .title {
            font-size: 13px;
            font-weight: bold;
        }
        .todo-notice-banner .sub {
            font-size: 12px;
            margin-top: 4px;
            line-height: 1.5;
        }
        .map-flash-marker {
            width: 26px;
            height: 26px;
            border-radius: 50%;
            background: rgba(250, 140, 22, 0.25);
            border: 3px solid #fa8c16;
            box-shadow: 0 0 0 0 rgba(250, 140, 22, 0.55);
            animation: woPulse 1s ease-out 3;
        }
        .map-flash-marker.fixed-point {
            transform: none;
        }
        @keyframes woPulse {
            0% { transform: scale(0.8); box-shadow: 0 0 0 0 rgba(250, 140, 22, 0.55); }
            70% { transform: scale(1.25); box-shadow: 0 0 0 16px rgba(250, 140, 22, 0); }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(250, 140, 22, 0); }
        }
