        :root {
            --ui-ink: #263748;
            --ui-muted: #748291;
            --ui-line: #e5eaf0;
            --ui-surface: #fff;
            --ui-canvas: #f4f6f8;
            --ui-accent: #278653;
            --ui-accent-soft: #eef6f1;
            --ui-radius: 12px;
        }
        * { 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:
                radial-gradient(circle at 18% 18%, rgba(7,193,96,0.22), transparent 30%),
                radial-gradient(circle at 84% 14%, rgba(22,119,255,0.18), transparent 28%),
                linear-gradient(180deg, rgba(13,24,34,0.76) 0%, rgba(12,20,28,0.82) 100%);
            z-index: 2000;
            display: flex; align-items: center; justify-content: center;
            padding: 18px;
        }
        .auth-box {
            background: linear-gradient(180deg, #ffffff 0%, #f7fbf8 100%);
            padding: 34px 22px 24px;
            border-radius: 24px;
            width: min(92vw, 388px);
            max-width: 388px;
            text-align: center;
            border: 1px solid rgba(31,45,61,0.08);
            box-shadow: 0 22px 56px rgba(15,35,60,0.28);
            position: relative;
            overflow: hidden;
        }
        .auth-box::before {
            content: "";
            position: absolute;
            inset: 0 0 auto 0;
            height: 110px;
            background:
                radial-gradient(circle at left top, rgba(7,193,96,0.18), transparent 62%),
                linear-gradient(135deg, rgba(7,193,96,0.08), rgba(22,119,255,0.05));
            pointer-events: none;
        }
        .auth-brand-block {
            position: relative;
            z-index: 1;
            margin-bottom: 18px;
        }
        .brand-mark {
            width: 48px;
            height: 48px;
            margin: 0 auto 12px;
            border-radius: 16px;
            background: linear-gradient(135deg, #07c160 0%, #159957 100%);
            color: #fff;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 18px;
            font-weight: 800;
            letter-spacing: 0.08em;
            box-shadow: 0 12px 24px rgba(7,193,96,0.24);
        }
        .brand-kicker {
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.22em;
            text-transform: uppercase;
            color: #178a57;
        }
        .auth-box h2 {
            font-size: 24px;
            margin: 10px 0 6px;
            color: #1f2d3d;
            letter-spacing: 0.02em;
            line-height: 1.24;
        }
        .brand-tagline {
            font-size: 14px;
            color: #36556d;
            font-weight: 700;
            line-height: 1.6;
        }
        .brand-tagline-en {
            margin-top: 4px;
            font-size: 12px;
            color: #6f8193;
            letter-spacing: 0.16em;
            text-transform: uppercase;
        }
        .auth-subcopy {
            position: relative;
            z-index: 1;
            color: #5f6f80;
            font-size: 14px;
            margin-bottom: 16px;
            line-height: 1.6;
        }
        .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 20% 16%, rgba(7,193,96,0.22), transparent 30%),
                radial-gradient(circle at 84% 18%, rgba(22,119,255,0.18), transparent 26%),
                linear-gradient(180deg, #f4fbf7 0%, #edf6f0 58%, #e9f0eb 100%);
        }
        .startup-splash.hidden {
            display: none;
        }
        .startup-card {
            width: min(88vw, 360px);
            padding: 28px 24px 24px;
            border-radius: 24px;
            background: rgba(255,255,255,0.96);
            border: 1px solid rgba(7,193,96,0.14);
            box-shadow: 0 18px 48px rgba(31,45,61,0.14);
            text-align: center;
            color: #1f2d3d;
            position: relative;
            overflow: hidden;
        }
        .startup-card::before {
            content: "";
            position: absolute;
            inset: 0 0 auto 0;
            height: 112px;
            background:
                radial-gradient(circle at left top, rgba(7,193,96,0.16), transparent 62%),
                linear-gradient(135deg, rgba(7,193,96,0.08), rgba(22,119,255,0.05));
            pointer-events: none;
        }
        .startup-brand-chip {
            position: relative;
            z-index: 1;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 6px 12px;
            border-radius: 999px;
            background: rgba(7,193,96,0.1);
            color: #178a57;
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.18em;
            text-transform: uppercase;
            margin-bottom: 14px;
        }
        .startup-spinner {
            width: 34px;
            height: 34px;
            margin: 0 auto 16px;
            border-radius: 50%;
            border: 3px solid rgba(7,193,96,0.18);
            border-top-color: #07c160;
            animation: startupSpin 0.85s linear infinite;
            position: relative;
            z-index: 1;
        }
        .startup-title {
            position: relative;
            z-index: 1;
            font-size: 21px;
            font-weight: 700;
            line-height: 1.3;
        }
        .startup-sub {
            position: relative;
            z-index: 1;
            margin-top: 8px;
            font-size: 14px;
            font-weight: 700;
            color: #32566d;
            line-height: 1.6;
        }
        .startup-sub-en {
            position: relative;
            z-index: 1;
            margin-top: 4px;
            font-size: 12px;
            color: #718494;
            letter-spacing: 0.16em;
            text-transform: uppercase;
        }
        .startup-loading-copy {
            position: relative;
            z-index: 1;
            margin-top: 12px;
            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);
            }
        }

        #industryAddOverlay.industry-add-overlay {
            z-index: 2050;
            background: rgba(15, 31, 40, 0.48);
            backdrop-filter: blur(3px);
            pointer-events: auto;
        }
        .industry-add-modal {
            position: fixed;
            inset: 0;
            z-index: 2051;
            display: none;
            flex-direction: column;
            margin: 0 auto;
            width: min(720px, 100vw);
            height: var(--industry-add-layout-height, 100dvh);
            min-height: var(--industry-add-layout-height, 100dvh);
            box-sizing: border-box;
            padding-bottom: var(--industry-add-keyboard-inset, 0px);
            overflow: hidden;
            background: #f5f8f7;
            color: #1e2d34;
            box-shadow: 0 0 44px rgba(13, 35, 44, 0.24);
        }
        .industry-add-modal.show { display: flex; }
        .industry-add-modal.is-saving { pointer-events: none; }
        .industry-add-modal.has-keyboard .industry-add-footer {
            box-shadow: 0 -8px 18px rgba(30, 62, 50, 0.08);
        }
        /* While the shared map picker is open, this form must leave the entire
           interaction stack.  Hiding only the .show class was insufficient on
           some mobile WebViews after returning from an edit flow. */
        .industry-add-overlay.is-map-picking,
        .industry-add-modal.is-map-picking {
            display: none !important;
            visibility: hidden !important;
            pointer-events: none !important;
        }
        #industryProjectsPanel.is-map-picking {
            display: none !important;
            visibility: hidden !important;
            pointer-events: none !important;
        }
        .delete-history-restore-wrap { margin-top: 10px; }
        .delete-history-restore-btn {
            min-height: 34px;
            padding: 6px 12px;
            border: 1px solid #b8ddc5;
            border-radius: 9px;
            background: #edf8f0;
            color: #23744a;
            font-size: 13px;
            font-weight: 800;
            cursor: pointer;
        }
        .delete-history-restore-btn:disabled { opacity: .58; cursor: wait; }
        .industry-add-header {
            display: grid;
            grid-template-columns: 44px minmax(0, 1fr) 64px;
            align-items: center;
            min-height: calc(58px + env(safe-area-inset-top));
            padding: env(safe-area-inset-top) 12px 0;
            border-bottom: 1px solid rgba(27, 62, 57, 0.08);
            background: rgba(255, 255, 255, 0.96);
        }
        .industry-add-close,
        .industry-add-help {
            border: 0;
            background: transparent;
            color: #587068;
            cursor: pointer;
        }
        .industry-add-close {
            width: 42px;
            height: 42px;
            border-radius: 12px;
            font-size: 30px;
            font-weight: 300;
            line-height: 36px;
        }
        .industry-add-close:active { background: #edf3f0; }
        .industry-add-header-title {
            overflow: hidden;
            color: #18342d;
            font-size: 17px;
            font-weight: 800;
            line-height: 1.3;
            text-align: center;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .industry-add-help {
            justify-self: end;
            min-height: 36px;
            padding: 0 6px;
            font-size: 13px;
            font-weight: 700;
        }
        .industry-add-body {
            flex: 1;
            min-height: 0;
            overflow-y: auto;
            padding: 14px 14px 24px;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;
        }
        .industry-add-section,
        .industry-add-advanced-section {
            margin: 0 0 12px;
            padding: 14px;
            border: 1px solid rgba(33, 76, 66, 0.09);
            border-radius: 16px;
            background: #fff;
            box-shadow: 0 4px 14px rgba(19, 53, 45, 0.035);
        }
        .industry-add-section-heading {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 12px;
        }
        .industry-add-label {
            display: block;
            margin-bottom: 7px;
            color: #233c36;
            font-size: 14px;
            font-weight: 800;
            line-height: 1.4;
        }
        .industry-add-label b {
            color: #e34d59;
            font-size: 14px;
        }
        .industry-add-label span,
        .industry-add-advanced-toggle em {
            color: #8a9a94;
            font-size: 12px;
            font-style: normal;
            font-weight: 500;
        }
        .industry-add-helper {
            color: #80908b;
            font-size: 12px;
            line-height: 1.55;
        }
        .industry-add-input {
            display: block;
            width: 100%;
            min-height: 46px;
            padding: 11px 12px;
            border: 1px solid #d9e4df;
            border-radius: 12px;
            outline: none;
            background: #fcfefd;
            color: #20332d;
            font-size: 15px;
            line-height: 1.4;
            transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
        }
        .industry-add-input:focus {
            border-color: #65b98f;
            background: #fff;
            box-shadow: 0 0 0 3px rgba(45, 159, 99, 0.11);
        }
        .industry-add-textarea {
            min-height: 104px;
            resize: vertical;
        }
        .industry-add-photo-section { padding-bottom: 12px; }
        .industry-add-photo-grid {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            margin-top: 11px;
        }
        .industry-add-photo-grid .photo-cell { border-radius: 13px; }
        .industry-add-photo-grid .photo-add-card {
            min-height: 106px;
            padding: 8px;
            color: #53766a;
            background: linear-gradient(145deg, #f6fbf8 0%, #edf7f1 100%);
            border-color: #cde5d7;
        }
        .industry-add-photo-grid .photo-add-card .plus {
            color: #25965f;
            font-size: 26px;
        }
        .industry-add-location-card {
            display: flex;
            width: 100%;
            min-height: 78px;
            align-items: center;
            gap: 11px;
            padding: 12px;
            border: 1px solid #b9dfcb;
            border-radius: 14px;
            background:
                linear-gradient(135deg, rgba(219, 245, 228, 0.85), rgba(247, 252, 249, 0.98)),
                repeating-linear-gradient(0deg, transparent, transparent 14px, rgba(80, 148, 105, 0.05) 15px);
            color: #24513d;
            text-align: left;
            cursor: pointer;
        }
        .industry-add-location-card.is-empty {
            border-style: dashed;
            border-color: #b6d0c0;
            background: #fbfdfc;
        }
        .industry-add-location-pin {
            display: inline-flex;
            width: 34px;
            height: 34px;
            flex: 0 0 auto;
            align-items: center;
            justify-content: center;
            border-radius: 50% 50% 50% 0;
            transform: rotate(-45deg);
            background: #2ba668;
            box-shadow: 0 5px 12px rgba(32, 141, 82, 0.22);
            color: #fff;
            font-size: 15px;
        }
        .industry-add-location-copy {
            display: flex;
            min-width: 0;
            flex: 1;
            flex-direction: column;
            gap: 4px;
        }
        .industry-add-location-copy strong {
            overflow: hidden;
            color: #21503c;
            font-size: 14px;
            font-weight: 800;
            line-height: 1.35;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .industry-add-location-copy small {
            overflow: hidden;
            color: #668177;
            font-size: 12px;
            line-height: 1.4;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .industry-add-location-action {
            flex: 0 0 auto;
            color: #238557;
            font-size: 13px;
            font-weight: 800;
        }
        .industry-add-village-line {
            display: flex;
            min-height: 38px;
            align-items: center;
            gap: 7px;
            padding: 10px 2px 1px;
            color: #71827a;
            font-size: 12px;
        }
        .industry-add-village-line strong {
            flex: 1;
            color: #24513d;
            font-size: 13px;
            font-weight: 800;
        }
        .industry-add-village-line button {
            min-height: 30px;
            padding: 3px 7px;
            border: 0;
            border-radius: 8px;
            background: #edf7f1;
            color: #277952;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
        }
        .industry-add-village-adjust {
            margin-top: 9px;
            padding: 10px;
            border-radius: 11px;
            background: #f6faf8;
        }
        .industry-add-village-adjust label {
            display: block;
            margin-bottom: 6px;
            color: #60756c;
            font-size: 12px;
            font-weight: 700;
        }
        .industry-add-village-adjust select { min-height: 42px; }
        .industry-add-address-section { padding-bottom: 13px; }
        .industry-add-settings-section { padding: 0; overflow: hidden; }
        .industry-add-settings-title {
            padding: 14px 14px 4px;
            color: #233c36;
            font-size: 14px;
            font-weight: 800;
            line-height: 1.4;
        }
        .industry-add-setting-row {
            display: flex;
            min-height: 66px;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 10px 14px 12px;
        }
        .industry-add-setting-copy { min-width: 0; }
        .industry-add-setting-copy .industry-add-label { margin-bottom: 3px; }
        .industry-add-setting-copy .industry-add-helper { line-height: 1.45; }
        .industry-add-setting-divider {
            height: 1px;
            margin: 0 14px;
            background: #edf2ef;
        }
        .industry-add-setting-source,
        .industry-add-setting-map-icon { padding: 12px 14px 14px; }
        .industry-add-setting-source .industry-add-label { margin-bottom: 7px; }
        .industry-add-setting-status { padding-bottom: 16px; }
        .industry-add-setting-status .industry-add-date-row { margin-top: 12px; }
        .industry-add-setting-status .industry-add-field-row { margin-top: 12px; }
        .industry-add-setting-map-icon > .industry-add-label { margin-bottom: 8px; }
        .industry-add-settings-section .industry-visibility-toggle {
            flex: 0 0 auto;
            min-height: 40px;
        }
        .industry-add-advanced-section { padding: 0; overflow: hidden; }
        .industry-add-advanced-toggle {
            display: flex;
            width: 100%;
            min-height: 50px;
            align-items: center;
            justify-content: space-between;
            padding: 0 14px;
            border: 0;
            background: #fff;
            color: #30483f;
            font-size: 14px;
            font-weight: 800;
            cursor: pointer;
        }
        .industry-add-advanced-toggle i {
            color: #879991;
            font-size: 18px;
            font-style: normal;
            transition: transform .18s ease;
        }
        .industry-add-advanced-toggle.is-open i { transform: rotate(180deg); }
        .industry-add-advanced-fields {
            padding: 2px 14px 14px;
            border-top: 1px solid #edf1ef;
        }
        .industry-map-icon-editor {
            display: flex;
            align-items: center;
            gap: 13px;
            margin-top: 10px;
            padding: 11px;
            border: 1px solid #e2ebe6;
            border-radius: 14px;
            background: #f8fbf9;
        }
        .industry-map-icon-preset-grid {
            display: grid;
            grid-template-columns: repeat(5, minmax(0, 1fr));
            gap: 7px;
            margin-top: 8px;
        }
        .industry-map-icon-preset {
            position: relative;
            display: flex;
            min-width: 0;
            min-height: 78px;
            padding: 7px 3px 6px;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 4px;
            overflow: hidden;
            border: 1px solid #e1e8e4;
            border-radius: 12px;
            background: linear-gradient(180deg, #fff 0%, #f8faf9 100%);
            color: #52635a;
            cursor: pointer;
            transition: border-color .16s ease, background .16s ease, box-shadow .16s ease, transform .16s ease;
        }
        .industry-map-icon-preset:active { transform: scale(.97); }
        .industry-map-icon-preset img {
            display: block;
            width: 29px;
            height: 38px;
            object-fit: contain;
            filter: drop-shadow(0 1px 2px rgba(23, 45, 34, .08));
        }
        .industry-map-icon-preset span {
            display: block;
            width: 100%;
            overflow: hidden;
            font-size: 10px;
            font-weight: 700;
            line-height: 1.15;
            text-align: center;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .industry-map-icon-preset.is-selected {
            border-color: rgba(24, 165, 101, .58);
            background: linear-gradient(180deg, #f4fff9 0%, #eaf8f0 100%);
            box-shadow: 0 0 0 2px rgba(24, 165, 101, .10), 0 4px 10px rgba(30, 91, 59, .08);
            color: #17653e;
        }
        .industry-map-icon-preset.is-selected::after {
            position: absolute;
            top: 5px;
            right: 5px;
            width: 14px;
            height: 14px;
            border-radius: 50%;
            background: #18a565;
            color: #fff;
            content: '✓';
            font-size: 9px;
            font-weight: 900;
            line-height: 14px;
            text-align: center;
        }
        .industry-map-icon-preview {
            position: relative;
            display: flex;
            flex: 0 0 84px;
            width: 84px;
            height: 88px;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            border: 1px solid rgba(31,45,61,.08);
            border-radius: 12px;
            background-color: #f7faf8;
            background-image:
                linear-gradient(rgba(70, 107, 89, .055) 1px, transparent 1px),
                linear-gradient(90deg, rgba(70, 107, 89, .055) 1px, transparent 1px),
                linear-gradient(145deg,#edf4f0,#fff);
            background-size: 12px 12px, 12px 12px, 100% 100%;
        }
        .industry-map-icon-preview-stage {
            position: absolute;
            inset: 4px 4px 16px;
        }
        .industry-map-icon-preview-stage img {
            position: absolute;
            z-index: 2;
            left: 50%;
            top: 72%;
            display: block;
            object-fit: contain;
            transform-origin: center center;
            filter: drop-shadow(0 2px 3px rgba(23, 45, 34, .14));
        }
        .industry-map-icon-preview-stage i {
            position: absolute;
            z-index: 3;
            left: 50%;
            top: 72%;
            width: 8px;
            height: 8px;
            border: 2px solid #fff;
            border-radius: 50%;
            background: #1677ff;
            box-shadow: 0 0 0 1px rgba(22,119,255,.34), 0 1px 3px rgba(15,23,42,.18);
            transform: translate(-50%, -50%);
        }
        .industry-map-icon-preview span {
            position: absolute;
            z-index: 4;
            right: 4px;
            bottom: 4px;
            left: 4px;
            color: #708078;
            font-size: 9px;
            font-weight: 750;
            line-height: 1;
            text-align: center;
        }
        .industry-map-icon-actions { display: flex; min-width: 0; flex: 1; flex-wrap: wrap; gap: 7px; }
        .industry-map-icon-actions button {
            min-height: 34px;
            padding: 0 10px;
            border: 1px solid #cadbd2;
            border-radius: 9px;
            background: #fff;
            color: #315f48;
            font-size: 12px;
            font-weight: 750;
        }
        .industry-map-icon-actions button:disabled { opacity: .42; }
        .industry-map-icon-actions small { flex: 1 0 100%; color: #7b8982; font-size: 11px; line-height: 1.45; }
        .industry-map-icon-adjustments {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap: 10px;
            margin-top: 10px;
            padding: 11px;
            border: 1px solid #e2ebe6;
            border-radius: 14px;
            background: #fbfdfc;
        }
        .industry-map-icon-adjustments[hidden] { display: none; }
        .industry-map-icon-size-control label,
        .industry-map-icon-adjustment-label {
            display: flex;
            min-height: 20px;
            align-items: baseline;
            justify-content: space-between;
            gap: 8px;
            color: #344a40;
            font-size: 12px;
            font-weight: 800;
        }
        .industry-map-icon-size-control output {
            color: #1677ff;
            font-size: 12px;
            font-variant-numeric: tabular-nums;
        }
        .industry-map-icon-size-control input[type="range"] {
            width: 100%;
            margin: 8px 0 3px;
            accent-color: #18a565;
        }
        .industry-map-icon-size-scale {
            display: flex;
            justify-content: space-between;
            color: #89978f;
            font-size: 9px;
            line-height: 1;
        }
        .industry-map-icon-adjustment-label {
            display: block;
        }
        .industry-map-icon-adjustment-label small {
            display: block;
            margin-top: 2px;
            color: #89978f;
            font-size: 9px;
            font-weight: 500;
            line-height: 1.3;
        }
        .industry-map-icon-anchor-options {
            display: grid;
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 5px;
            margin-top: 7px;
        }
        .industry-map-icon-anchor-options button {
            min-width: 0;
            min-height: 32px;
            padding: 0 4px;
            border: 1px solid #dce6e1;
            border-radius: 9px;
            background: #fff;
            color: #52635a;
            font-size: 10px;
            font-weight: 750;
            cursor: pointer;
        }
        .industry-map-icon-anchor-options button em {
            display: block;
            color: #85938c;
            font-size: 8px;
            font-style: normal;
            font-weight: 600;
        }
        .industry-map-icon-anchor-options button.is-selected {
            border-color: rgba(24, 165, 101, .58);
            background: #eef9f3;
            color: #17653e;
            box-shadow: 0 0 0 2px rgba(24, 165, 101, .08);
        }
        @media (max-width: 380px) {
            .industry-map-icon-preset-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
            .industry-map-icon-adjustments { grid-template-columns: 1fr; }
        }
        .industry-add-field-row { margin-top: 12px; }
        .industry-add-date-row {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
            gap: 10px;
            margin-top: 12px;
        }
        .industry-add-footer {
            padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
            border-top: 1px solid rgba(27, 62, 57, 0.08);
            background: rgba(255, 255, 255, 0.98);
        }
        .industry-add-submit {
            width: 100%;
            min-height: 48px;
            border: 0;
            border-radius: 13px;
            background: linear-gradient(135deg, #18a565 0%, #0c8d54 100%);
            box-shadow: 0 9px 16px rgba(20, 143, 83, 0.18);
            color: #fff;
            font-size: 16px;
            font-weight: 800;
            cursor: pointer;
        }
        .industry-add-submit:disabled { cursor: wait; opacity: .78; }
        .industry-add-delete-btn {
            display: block;
            width: 100%;
            min-height: 42px;
            margin-top: 10px;
            border: 1px solid #efc9cb;
            border-radius: 12px;
            background: #fff;
            color: #b94850;
            font-size: 14px;
            font-weight: 700;
            cursor: pointer;
        }
        .industry-add-delete-btn:active { background: #fff5f5; }
        .industry-add-delete-btn[hidden] { display: none; }
        @media (min-width: 721px) {
            .industry-add-modal {
                top: 24px;
                bottom: 24px;
                height: auto;
                min-height: 0;
                padding-bottom: 0;
                border-radius: 22px;
                overflow: hidden;
            }
        }
        @media (max-width: 380px) {
            .industry-add-body { padding-left: 10px; padding-right: 10px; }
            .industry-add-section { padding: 12px; }
            .industry-add-date-row { grid-template-columns: 1fr; gap: 0; }
            .industry-add-date-row > div + div { margin-top: 12px; }
        }

        .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 {
            position: absolute;
            z-index: 3;
            top: 30px;
            right: 30px;
            display: flex;
            align-items: flex-start;
            justify-content: flex-end;
            gap: 12px;
            margin: 0;
            padding-bottom: 0;
            border-bottom: none;
        }
        .industry-detail-title-wrap {
            display: none;
        }
        .industry-detail-modal .info {
            display: none;
        }
        .industry-detail-summary-name {
            font-size: 18px;
            font-weight: 700;
            color: #1f2d3d;
            line-height: 1.35;
            word-break: break-word;
            margin-bottom: 4px;
        }
        .industry-detail-summary-head {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 10px;
        }
        .industry-detail-share-btn {
            margin-top: 2px;
        }
        .industry-detail-summary-meta {
            margin-top: 8px;
            font-size: 12px;
            color: #8c9dae;
            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: 12px;
            font-weight: 400;
            color: #8c9dae;
            line-height: 1.45;
            word-break: break-word;
            margin-bottom: 6px;
        }
        .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;
            }
        }
        
        .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: 10px !important;
            font-size: 15px !important;
            font-weight: 700 !important;
            line-height: 1.4;
            cursor: pointer;
            box-shadow: none !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: none !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: var(--ui-accent) !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: 38px;
            padding: 0;
            border-radius: 0;
            background: transparent;
            border: 0;
            box-shadow: none;
            backdrop-filter: none;
        }
        .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 11px;
            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-layer-compact.active {
            background: linear-gradient(180deg, #1677ff 0%, #0958d9 100%);
            color: #fff;
            border-color: #0958d9;
            box-shadow: 0 4px 12px rgba(22,119,255,0.32);
        }
        .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;
        }
        .map-floating-controls {
            position: fixed;
            right: 14px;
            bottom: calc(90px + env(safe-area-inset-bottom));
            z-index: 1002;
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 8px;
            pointer-events: auto;
            transition: bottom 180ms cubic-bezier(0.2, 0.7, 0.3, 1);
            will-change: bottom;
        }
        .map-floating-controls.is-card-avoiding {
            bottom: var(--map-selection-card-clearance, calc(90px + env(safe-area-inset-bottom)));
        }
        .map-floating-controls .locate-me-btn {
            width: 42px;
            height: 42px;
            min-width: 42px;
            border-radius: 50%;
        }
        .map-floating-controls .camera-mode-option {
            min-width: 82px;
            padding: 0 12px;
            border-radius: 999px;
            background: rgba(255,255,255,0.96);
            transition: min-width 180ms ease, padding 180ms ease, opacity 180ms ease;
        }
        .map-floating-controls.is-card-avoiding .camera-mode-option {
            min-width: 58px;
            padding: 0 10px;
            opacity: 0.94;
        }
        .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;
        }
        #homeMoreSheet {
            max-height: min(76vh, 620px);
            overflow: auto;
        }
        .home-more-root-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 8px;
            margin-top: 8px;
        }
        .home-more-category {
            min-width: 0;
            min-height: 92px;
            padding: 11px 10px;
            border: 1px solid #dce6ee;
            border-radius: 14px;
            background: linear-gradient(145deg, #ffffff, #f6f9fc);
            color: #26394c;
            box-shadow: 0 5px 14px rgba(15, 35, 60, 0.06);
            text-align: left;
        }
        .home-more-category > span:not(.home-more-category-icon) {
            display: block;
            min-width: 0;
            padding-right: 12px;
        }
        .home-more-category strong,
        .home-more-category small {
            display: block;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .home-more-category strong {
            color: #26394c;
            font-size: 14px;
            font-weight: 800;
        }
        .home-more-category small {
            margin-top: 5px;
            color: #718096;
            font-size: 11px;
            font-weight: 500;
        }
        .home-more-category-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 28px;
            height: 28px;
            margin-bottom: 8px;
            border-radius: 9px;
            background: #eaf4ff;
            color: #1677ff;
            font-size: 17px;
            font-weight: 800;
        }
        .home-more-category em {
            float: right;
            margin-top: -43px;
            color: #8a9aab;
            font-size: 20px;
            font-style: normal;
            line-height: 1;
        }

        .home-more-category.smart-report-entry {
            grid-column: 1 / -1;
            border-color: rgba(47, 125, 80, 0.28);
            background: linear-gradient(135deg, #eef8f2 0%, #f8fbf9 55%, #eef5ff 100%);
        }
        .home-more-category.smart-report-entry .home-more-category-icon {
            color: #fff;
            background: linear-gradient(145deg, #153f34, #2f7d50);
            font-size: 12px;
            letter-spacing: .04em;
            box-shadow: 0 6px 16px rgba(21, 63, 52, .2);
        }
        .home-more-category.smart-report-entry strong b {
            display: inline-flex;
            margin-left: 5px;
            padding: 1px 5px;
            border-radius: 999px;
            background: #ff7a45;
            color: #fff;
            font-size: 10px;
            font-weight: 700;
            vertical-align: 1px;
        }
        .smart-report-menu-intro {
            margin-bottom: 10px;
            padding: 12px 13px;
            border: 1px solid #dcebe2;
            border-radius: 12px;
            background: #f6fbf8;
        }
        .smart-report-menu-intro span {
            color: #236243;
            font-size: 12px;
            font-weight: 700;
        }
        .smart-report-menu-intro p {
            margin: 5px 0 0;
            color: #53665b;
            font-size: 13px;
            line-height: 1.55;
        }

        .smart-report-overlay {
            position: fixed;
            inset: 0;
            z-index: 2180;
            display: none;
            background: rgba(8, 22, 17, .54);
            backdrop-filter: blur(3px);
        }
        .smart-report-overlay.show { display: block; }
        .smart-report-modal {
            position: fixed;
            left: 50%;
            bottom: 0;
            z-index: 2181;
            display: flex;
            width: min(760px, 100%);
            max-height: min(92vh, 960px);
            flex-direction: column;
            overflow: hidden;
            border-radius: 24px 24px 0 0;
            background: #f4f7f5;
            box-shadow: 0 -18px 50px rgba(8, 35, 23, .24);
            transform: translate(-50%, 105%);
            transition: transform .24s ease;
        }
        .smart-report-modal.show { transform: translate(-50%, 0); }
        .smart-report-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            padding: 18px 18px 15px;
            color: #fff;
            background:
                radial-gradient(circle at 88% 10%, rgba(116, 214, 162, .28), transparent 32%),
                linear-gradient(135deg, #112f28 0%, #1d5b42 62%, #2f7d50 100%);
        }
        .smart-report-kicker {
            display: flex;
            align-items: center;
            gap: 7px;
            margin-bottom: 6px;
            color: #d9f4e5;
            font-size: 11px;
            letter-spacing: .08em;
        }
        .smart-report-kicker b {
            padding: 2px 6px;
            border-radius: 999px;
            background: #ff7a45;
            color: #fff;
            font-size: 10px;
            letter-spacing: 0;
        }
        .smart-report-header h2 { margin: 0; font-size: 21px; line-height: 1.3; }
        .smart-report-header p { margin: 5px 0 0; color: rgba(255,255,255,.74); font-size: 12px; }
        .smart-report-close {
            width: 34px;
            height: 34px;
            flex: 0 0 34px;
            border: 0;
            border-radius: 50%;
            background: rgba(255,255,255,.12);
            color: #fff;
            font-size: 25px;
            line-height: 30px;
        }
        .smart-report-body {
            min-height: 330px;
            overflow-y: auto;
            padding: 16px;
            overscroll-behavior: contain;
        }
        .smart-report-start {
            padding: 22px 17px 18px;
            border: 1px solid #e0eae4;
            border-radius: 18px;
            background: #fff;
            text-align: center;
            box-shadow: 0 8px 28px rgba(32, 73, 53, .07);
        }
        .smart-report-start-mark {
            display: grid;
            width: 58px;
            height: 58px;
            margin: 0 auto 13px;
            place-items: center;
            border-radius: 18px;
            background: linear-gradient(145deg, #153f34, #42a06d);
            color: #fff;
            font-size: 18px;
            font-weight: 800;
            box-shadow: 0 10px 24px rgba(21, 63, 52, .2);
        }
        .smart-report-start h3 { margin: 0; color: #173d2e; font-size: 18px; }
        .smart-report-start > p { margin: 9px auto; max-width: 500px; color: #5d6e64; font-size: 13px; line-height: 1.65; }
        .smart-report-boundary {
            margin: 14px 0;
            padding: 10px 12px;
            border-radius: 10px;
            background: #f2f7f4;
            color: #466052;
            font-size: 12px;
            line-height: 1.55;
            text-align: left;
        }
        .smart-report-trial-rule {
            display: grid;
            gap: 6px;
            margin: 12px 0;
            padding: 11px 12px;
            border: 1px solid #d8e7dd;
            border-radius: 10px;
            background: #f6fbf7;
            color: #516259;
            text-align: left;
            font-size: 12px;
            line-height: 1.55;
        }
        .smart-report-trial-rule strong { color: #245b42; font-size: 13px; }
        .smart-report-trial-rule span { display: block; }
        .smart-report-start-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 9px;
        }
        .smart-report-view-current,
        .smart-report-generate {
            width: 100%;
            min-height: 45px;
            border-radius: 12px;
            font-size: 14px;
            font-weight: 700;
            line-height: 1.3;
        }
        .smart-report-view-current {
            border: 1px solid #d7dfda;
            background: #eef1ef;
            color: #9aa39e;
            box-shadow: none;
        }
        .smart-report-view-current:not(:disabled) {
            border-color: #8db9a0;
            background: #eff8f2;
            color: #245f43;
            cursor: pointer;
        }
        .smart-report-view-current:disabled {
            cursor: not-allowed;
        }
        .smart-report-generate {
            border: 0;
            background: linear-gradient(135deg, #1d5b42, #2f8a58);
            color: #fff;
            box-shadow: 0 8px 18px rgba(47, 125, 80, .18);
        }
        .smart-report-generate:disabled {
            background: #b8c1bc;
            color: #f6f8f7;
            box-shadow: none;
            cursor: not-allowed;
        }
        .smart-report-current-status {
            margin-top: 9px;
            color: #87918b;
            font-size: 11px;
            line-height: 1.5;
        }
        .smart-report-current-status.available { color: #2f7651; }
        .smart-report-current-status.unavailable { color: #a56a2c; }
        .smart-report-start small { display: block; margin-top: 10px; color: #8a9690; font-size: 11px; }
        .smart-report-loading {
            min-height: 300px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-direction: column;
            gap: 9px;
            color: #244c38;
            text-align: center;
        }
        .smart-report-loading[hidden] { display: none; }
        .smart-report-loading span { color: #718078; font-size: 12px; }
        .smart-report-spinner {
            width: 38px;
            height: 38px;
            margin-bottom: 6px;
            border: 4px solid #dcebe2;
            border-top-color: #2f7d50;
            border-radius: 50%;
            animation: smartReportSpin .8s linear infinite;
        }
        @keyframes smartReportSpin { to { transform: rotate(360deg); } }
        .smart-report-error {
            margin-bottom: 12px;
            padding: 11px 13px;
            border: 1px solid #ffd1c7;
            border-radius: 10px;
            background: #fff4f0;
            color: #a63d25;
            font-size: 13px;
        }
        .smart-report-meta {
            display: flex;
            justify-content: space-between;
            gap: 8px;
            margin-bottom: 10px;
            color: #718078;
            font-size: 11px;
        }
        .smart-report-quota {
            margin: 0 0 10px;
            padding: 8px 10px;
            border-radius: 8px;
            background: #eef7f1;
            color: #2f684a;
            font-size: 12px;
            line-height: 1.5;
        }
        .smart-report-quota:empty { display: none; }
        .smart-report-stat-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 8px;
            margin-bottom: 12px;
        }
        .smart-report-stat {
            padding: 11px 7px;
            border: 1px solid #e2ebe5;
            border-radius: 12px;
            background: #fff;
            text-align: center;
        }
        .smart-report-stat strong { display: block; color: #1d5b42; font-size: 20px; line-height: 1.2; }
        .smart-report-stat span { display: block; margin-top: 4px; color: #738078; font-size: 11px; }
        .smart-report-summary,
        .smart-report-section {
            margin-bottom: 11px;
            padding: 14px;
            border: 1px solid #e0e9e3;
            border-radius: 14px;
            background: #fff;
            box-shadow: 0 4px 15px rgba(26, 67, 45, .04);
        }
        .smart-report-summary { border-left: 4px solid #2f7d50; }
        .smart-report-summary h3,
        .smart-report-section h3 { margin: 0 0 7px; color: #173d2e; font-size: 15px; }
        .smart-report-summary p,
        .smart-report-section p { margin: 0; color: #3e4f46; font-size: 13px; line-height: 1.75; white-space: pre-wrap; }
        .smart-report-section ul { margin: 8px 0 0; padding-left: 20px; color: #3e4f46; }
        .smart-report-section li { margin: 5px 0; font-size: 13px; line-height: 1.65; }
        .smart-report-notice {
            padding: 11px 12px;
            border-radius: 10px;
            background: #fff8e8;
            color: #7a5b16;
            font-size: 11px;
            line-height: 1.6;
        }
        .smart-report-actions {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 10px;
            padding: 11px 16px calc(11px + env(safe-area-inset-bottom));
            border-top: 1px solid #dfe7e2;
            background: #fff;
        }
        .smart-report-actions[hidden] { display: none; }
        .smart-report-actions button {
            min-height: 42px;
            border-radius: 11px;
            font-size: 14px;
            font-weight: 700;
        }
        .smart-report-actions .secondary { border: 1px solid #c9d8cf; background: #fff; color: #315744; }
        .smart-report-actions .primary { border: 0; background: #2f7d50; color: #fff; }

        @media (max-width: 520px) {
            .smart-report-modal { max-height: calc(var(--app-height, 100vh) - 18px); }
            .smart-report-header { padding: 16px 15px 13px; }
            .smart-report-header h2 { font-size: 18px; }
            .smart-report-body { padding: 12px; }
            .smart-report-stat-grid { grid-template-columns: repeat(2, 1fr); }
        }
        .home-more-root-footer {
            display: flex;
            gap: 8px;
            margin-top: 10px;
        }
        .home-more-footer-btn {
            flex: 1;
            min-width: 0;
            min-height: 38px;
            padding: 0 8px;
            border: 1px solid #dce5ed;
            border-radius: 10px;
            background: #f7f9fb;
            color: #526579;
            font-size: 12px;
            font-weight: 750;
        }
        .home-more-footer-btn.danger {
            border-color: #ffd1cc;
            background: #fff7f6;
            color: #c53c2f;
        }
        .home-more-footer-btn.reminder {
            border-color: #b9dfc3;
            background: #f1fbf3;
            color: #237a4b;
        }
        .home-more-group-head {
            display: flex;
            align-items: center;
            gap: 10px;
            margin: 2px 0 10px;
        }
        .home-more-group-head button {
            flex: 0 0 auto;
            min-height: 32px;
            padding: 0 8px;
            border: 0;
            border-radius: 8px;
            background: #eef4f8;
            color: #426179;
            font-size: 12px;
            font-weight: 750;
        }
        .home-more-group-head strong {
            min-width: 0;
            overflow: hidden;
            color: #26394c;
            font-size: 15px;
            font-weight: 800;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .home-more-group .action-sheet-btn {
            margin-top: 8px;
        }
        .home-more-group .action-sheet-btn:first-child {
            margin-top: 0;
        }
        .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; }

        .rr-editor-actions button,
        .rr-editor-head button {
            min-height: 42px;
            padding: 9px 14px;
            border: 1px solid #d9e2ec;
            border-radius: 10px;
            background: #fff;
            color: #334e68;
            font-weight: 700;
            cursor: pointer;
        }
        .rr-editor-actions .primary {
            border-color: #237804;
            background: #237804;
            color: #fff;
        }
        .rr-editor {
            border: 1px solid #dfe7ef;
            border-radius: 16px;
            background: #fff;
            box-shadow: 0 6px 18px rgba(31, 45, 61, 0.06);
        }
        .rr-empty,
        .rr-loading {
            grid-column: 1 / -1;
            display: grid;
            gap: 7px;
            justify-items: center;
            padding: 48px 16px;
            border: 1px dashed #cbd5e1;
            border-radius: 14px;
            color: #829ab1;
            text-align: center;
            background: rgba(255,255,255,0.7);
        }
        .rr-editor {
            position: fixed;
            z-index: 1115;
            top: 50%;
            left: 50%;
            width: min(720px, calc(100vw - 28px));
            max-height: calc(100vh - 28px);
            overflow-y: auto;
            transform: translate(-50%, -50%);
            padding: 18px;
        }
        .rr-editor-head {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            gap: 12px;
            padding-bottom: 14px;
            border-bottom: 1px solid #e5ebf1;
        }
        .rr-editor-head div { display: grid; gap: 5px; }
        .rr-editor-head strong { font-size: 18px; }
        .rr-editor-head span { color: #627d98; font-size: 13px; }
        .rr-form-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px;
            margin-top: 16px;
        }
        .rr-form-grid > label { display: grid; gap: 7px; color: #334e68; font-size: 13px; font-weight: 700; }
        .rr-form-grid select,
        .rr-form-grid input[type="text"],
        .rr-form-grid input:not([type]) {
            width: 100%;
            min-height: 44px;
            padding: 9px 10px;
            border: 1px solid #cbd5e1;
            border-radius: 10px;
            background: #fff;
            font: inherit;
        }
        .rr-business {
            grid-column: 1 / -1;
            display: flex;
            flex-wrap: wrap;
            gap: 18px;
            padding: 12px;
            border: 1px solid #dfe7ef;
            border-radius: 10px;
        }
        .rr-business legend { padding: 0 5px; color: #334e68; font-size: 13px; font-weight: 700; }
        .rr-overdue-box {
            display: grid;
            gap: 6px;
            margin-top: 16px;
            padding: 12px;
            border-radius: 12px;
            background: #fff7e6;
            color: #874d00;
            font-size: 13px;
            line-height: 1.6;
        }
        .rr-editor-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
        @media (max-width: 680px) {
            .rr-editor {
                top: auto;
                bottom: 0;
                left: 0;
                width: 100%;
                max-height: 90vh;
                transform: none;
                border-radius: 18px 18px 0 0;
                padding: 16px 14px calc(14px + env(safe-area-inset-bottom));
            }
            .rr-form-grid { grid-template-columns: 1fr; }
            .rr-business { grid-column: auto; }
            .rr-editor-actions {
                position: sticky;
                bottom: 0;
                padding-top: 10px;
                background: #fff;
            }
            .rr-editor-actions button { flex: 1; min-height: 46px; }
        }

        /* 动态提醒管理 */
        .rr-content {
            flex: 1;
            overflow-y: auto;
            padding: 18px 18px 34px;
        }
        .rr-management-root {
            width: min(1160px, 100%);
            margin: 0 auto;
            color: #243b53;
        }
        .rr-hero,
        .rr-module-hero {
            display: grid;
            grid-template-columns: 1fr auto;
            gap: 24px;
            align-items: center;
            padding: 24px;
            border: 1px solid #dce9e1;
            border-radius: 20px;
            background: linear-gradient(135deg, #f3fbf5 0%, #ffffff 62%, #edf7f0 100%);
            box-shadow: 0 10px 26px rgba(35, 120, 4, 0.07);
        }
        .rr-eyebrow {
            display: block;
            margin-bottom: 5px;
            color: #237804;
            font-size: 12px;
            font-weight: 800;
            letter-spacing: 0.08em;
        }
        .rr-hero h3,
        .rr-module-hero h3 {
            margin: 0;
            color: #102a43;
            font-size: clamp(20px, 2.5vw, 28px);
            line-height: 1.25;
        }
        .rr-hero p,
        .rr-module-hero p {
            max-width: 720px;
            margin: 9px 0 0;
            color: #526d82;
            font-size: 14px;
            line-height: 1.7;
        }
        .rr-hero-status {
            display: grid;
            gap: 8px;
            min-width: 210px;
            padding: 14px 16px;
            border-radius: 14px;
            background: rgba(255,255,255,0.82);
            box-shadow: inset 0 0 0 1px rgba(35,120,4,0.12);
        }
        .rr-hero-status b { color: #237804; font-size: 13px; }
        .rr-hero-status span { color: #486581; font-size: 13px; }
        .rr-hero-status span::before { content: '✓'; margin-right: 7px; color: #52c41a; font-weight: 900; }
        .rr-system-axis {
            display: grid;
            grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
            gap: 9px;
            align-items: center;
            margin: 16px 0 24px;
            padding: 13px;
            border: 1px solid #e2e8f0;
            border-radius: 16px;
            background: #fff;
        }
        .rr-system-axis > div {
            display: flex;
            gap: 10px;
            align-items: center;
            min-width: 0;
        }
        .rr-system-axis > div > b {
            display: grid;
            place-items: center;
            flex: 0 0 30px;
            width: 30px;
            height: 30px;
            border-radius: 10px;
            background: #edf7f0;
            color: #237804;
            font-size: 13px;
        }
        .rr-system-axis span { display: grid; gap: 2px; min-width: 0; }
        .rr-system-axis strong { color: #334e68; font-size: 13px; }
        .rr-system-axis small { overflow: hidden; color: #829ab1; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-system-axis i { color: #bcccdc; font-size: 22px; font-style: normal; }
        .rr-section-title {
            display: flex;
            justify-content: space-between;
            align-items: end;
            margin: 22px 2px 12px;
        }
        .rr-section-title div { display: grid; gap: 3px; }
        .rr-section-title strong { color: #102a43; font-size: 17px; }
        .rr-section-title span { color: #829ab1; font-size: 12px; }
        .rr-module-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 13px;
        }
        .rr-module-card {
            display: grid;
            grid-template-columns: auto 1fr auto;
            gap: 14px;
            align-items: center;
            min-height: 126px;
            padding: 18px;
            border: 1px solid #dfe7ef;
            border-radius: 17px;
            background: #fff;
            color: inherit;
            text-align: left;
            box-shadow: 0 6px 18px rgba(31,45,61,0.05);
            cursor: pointer;
            transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
        }
        .rr-module-card:hover { transform: translateY(-2px); border-color: #a8cdb5; box-shadow: 0 10px 26px rgba(31,45,61,0.09); }
        .rr-module-icon {
            display: grid;
            place-items: center;
            width: 52px;
            height: 52px;
            border-radius: 16px;
            background: #edf7f0;
            color: #237804;
            font-size: 21px;
            font-weight: 900;
        }
        .rr-tone-blue .rr-module-icon { background: #eaf3ff; color: #1769aa; }
        .rr-tone-amber .rr-module-icon { background: #fff6e5; color: #ad6800; }
        .rr-tone-purple .rr-module-icon { background: #f4edff; color: #531dab; }
        .rr-module-copy { display: grid; gap: 6px; min-width: 0; }
        .rr-module-copy strong { color: #102a43; font-size: 17px; }
        .rr-module-copy small { color: #627d98; font-size: 13px; line-height: 1.5; }
        .rr-module-copy em {
            width: fit-content;
            padding: 4px 8px;
            border-radius: 999px;
            background: #f0f2f5;
            color: #829ab1;
            font-size: 11px;
            font-style: normal;
            font-weight: 800;
        }
        .rr-module-copy em.is-live { background: #edf7f0; color: #237804; }
        .rr-module-arrow { color: #9fb3c8; font-size: 28px; }
        .rr-future-note,
        .rr-preview-banner {
            display: grid;
            gap: 5px;
            margin-top: 15px;
            padding: 14px 16px;
            border: 1px dashed #bcccdc;
            border-radius: 14px;
            background: rgba(255,255,255,0.72);
        }
        .rr-future-note strong,
        .rr-preview-banner strong { color: #486581; font-size: 13px; }
        .rr-future-note span,
        .rr-preview-banner span { color: #829ab1; font-size: 12px; line-height: 1.6; }
        .rr-module-hero {
            grid-template-columns: auto 1fr auto;
            padding: 19px 21px;
        }
        .rr-module-hero > button,
        .rr-rule-actions button,
        .rr-responsibility-head > button,
        .rr-responsibility-card button {
            min-height: 40px;
            padding: 8px 13px;
            border: 1px solid #d9e2ec;
            border-radius: 10px;
            background: #fff;
            color: #486581;
            font-weight: 800;
            cursor: pointer;
        }
        .rr-event-list {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
        .rr-event-card {
            padding: 17px;
            border: 1px solid #dfe7ef;
            border-radius: 16px;
            background: #fff;
            box-shadow: 0 5px 16px rgba(31,45,61,0.045);
        }
        .rr-event-card.is-live { grid-column: 1 / -1; border-color: #b7d9c2; }
        .rr-event-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
        .rr-event-head > div { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
        .rr-event-head strong { color: #102a43; font-size: 15px; }
        .rr-event-head > em {
            padding: 4px 8px;
            border-radius: 999px;
            background: #f0f2f5;
            color: #829ab1;
            font-size: 11px;
            font-style: normal;
            font-weight: 800;
        }
        .rr-event-type {
            padding: 4px 8px;
            border-radius: 7px;
            background: #eef2f6;
            color: #627d98;
            font-size: 11px;
            font-weight: 800;
        }
        .rr-event-type.is-overdue { background: #fff1f0; color: #cf1322; }
        .rr-event-card > p { margin: 9px 0 0; color: #627d98; font-size: 13px; line-height: 1.65; }
        .rr-event-plan { margin-top: 12px; padding: 10px; border-radius: 10px; background: #f7f9fb; color: #829ab1; font-size: 11px; line-height: 1.6; }
        .rr-switch { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
        .rr-switch input { position: absolute; opacity: 0; pointer-events: none; }
        .rr-switch > span { position: relative; width: 42px; height: 24px; border-radius: 999px; background: #cbd5e1; transition: background .18s; }
        .rr-switch > span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.22); transition: transform .18s; }
        .rr-switch input:checked + span { background: #237804; }
        .rr-switch input:checked + span::after { transform: translateX(18px); }
        .rr-switch em { color: #627d98; font-size: 12px; font-style: normal; font-weight: 800; }
        .rr-rule-flow { display: grid; grid-template-columns: .88fr 1.12fr; gap: 12px; margin-top: 15px; }
        .rr-rule-block { display: grid; align-content: start; gap: 6px; padding: 14px; border: 1px solid #e1e8ef; border-radius: 13px; background: #fbfcfd; }
        .rr-rule-block > span { color: #829ab1; font-size: 11px; font-weight: 800; }
        .rr-rule-block > strong { color: #334e68; font-size: 14px; }
        .rr-rule-block > small { color: #627d98; font-size: 12px; line-height: 1.6; }
        .rr-scope-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 5px; }
        .rr-scope-tags em,
        .rr-scope-badge { padding: 4px 7px; border-radius: 7px; background: #edf7f0; color: #237804; font-size: 11px; font-style: normal; font-weight: 800; }
        .rr-recipient-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 6px; }
        .rr-recipient-grid label { display: flex; gap: 9px; align-items: flex-start; min-height: 61px; padding: 10px; border: 1px solid #dfe7ef; border-radius: 10px; background: #fff; cursor: pointer; }
        .rr-recipient-grid label.is-disabled { opacity: .55; cursor: not-allowed; }
        .rr-recipient-grid input { margin-top: 3px; accent-color: #237804; }
        .rr-recipient-grid span { display: grid; gap: 3px; }
        .rr-recipient-grid b { color: #334e68; font-size: 12px; }
        .rr-recipient-grid small { color: #829ab1; font-size: 11px; line-height: 1.4; }
        .rr-rule-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 13px; }
        .rr-rule-actions .primary { border-color: #237804; background: #237804; color: #fff; }
        .rr-responsibility-section { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e5ebf1; }
        .rr-responsibility-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
        .rr-responsibility-head > div { display: grid; gap: 4px; }
        .rr-responsibility-head strong { color: #102a43; font-size: 14px; }
        .rr-responsibility-head span { color: #829ab1; font-size: 11px; }
        .rr-responsibility-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
        .rr-responsibility-card { padding: 12px; border: 1px solid #dfe7ef; border-radius: 12px; background: #fbfcfd; }
        .rr-responsibility-card > div:first-child { display: flex; gap: 7px; align-items: center; }
        .rr-responsibility-card > div:first-child strong { color: #334e68; font-size: 13px; }
        .rr-responsibility-card p { margin: 7px 0 0; color: #627d98; font-size: 11px; }
        .rr-responsibility-card > div:last-child { display: flex; justify-content: flex-end; gap: 7px; margin-top: 9px; }
        .rr-responsibility-card button { min-height: 34px; padding: 6px 10px; font-size: 11px; }
        .rr-responsibility-card button.danger { color: #cf1322; }
        .rr-responsibility-empty { display: grid; gap: 4px; margin-top: 11px; padding: 16px; border: 1px dashed #cbd5e1; border-radius: 12px; background: #fbfcfd; text-align: center; }
        .rr-responsibility-empty strong { color: #486581; font-size: 13px; }
        .rr-responsibility-empty span { color: #829ab1; font-size: 11px; line-height: 1.6; }
        .rr-center-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 22px; align-items: center; padding: 24px; border: 1px solid #cfe5d5; border-radius: 18px; background: linear-gradient(135deg, #f0faf3 0%, #fff 62%, #f4f8ff 100%); }
        .rr-center-hero > div:first-child { display: grid; gap: 8px; }
        .rr-center-hero > div:first-child > span { color: #237804; font-size: 12px; font-weight: 900; letter-spacing: .12em; }
        .rr-center-hero h3 { margin: 0; color: #102a43; font-size: 24px; }
        .rr-center-hero p { max-width: 680px; margin: 0; color: #627d98; font-size: 13px; line-height: 1.75; }
        .rr-center-principles { display: grid; gap: 7px; min-width: 210px; padding: 14px 16px; border: 1px solid #d9eadf; border-radius: 14px; background: rgba(255,255,255,.88); }
        .rr-center-principles b { color: #237804; font-size: 13px; }
        .rr-center-principles span { color: #486581; font-size: 12px; }
        .rr-center-principles span::before { content: '✓'; margin-right: 7px; color: #52c41a; font-weight: 900; }
        .rr-live-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
        .rr-live-card { display: grid; align-content: start; gap: 14px; padding: 18px; border: 1px solid #dfe7ef; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgba(31,45,61,.05); }
        .rr-live-card.rr-tone-green { border-top: 4px solid #52a66d; }
        .rr-live-card.rr-tone-blue { border-top: 4px solid #4b8fd8; }
        .rr-live-card-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: start; }
        .rr-live-card-head > div { display: grid; gap: 6px; min-width: 0; }
        .rr-live-card-head strong { color: #102a43; font-size: 17px; }
        .rr-live-card-head small { color: #627d98; font-size: 12px; line-height: 1.6; }
        .rr-live-card-head > em { padding: 5px 9px; border-radius: 999px; background: #f1f5f9; color: #829ab1; font-size: 11px; font-style: normal; font-weight: 900; white-space: nowrap; }
        .rr-live-card-head > em.is-on { background: #edf7f0; color: #237804; }
        .rr-live-details { display: grid; gap: 1px; overflow: hidden; border: 1px solid #e5ebf1; border-radius: 12px; background: #e5ebf1; }
        .rr-live-meta { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 10px; padding: 10px 12px; background: #fbfcfd; }
        .rr-live-meta span { color: #829ab1; font-size: 11px; font-weight: 800; }
        .rr-live-meta strong { color: #334e68; font-size: 12px; font-weight: 700; line-height: 1.55; }
        .rr-person-chips { display: flex; flex-wrap: wrap; gap: 6px; }
        .rr-person-chips span { padding: 5px 8px; border-radius: 8px; background: #f0f7f2; color: #35684a; font-size: 11px; font-weight: 700; }
        .rr-no-audience { padding: 11px 12px; border-radius: 10px; background: #fff7e6; color: #874d00; font-size: 12px; line-height: 1.55; }
        .rr-live-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: auto; }
        .rr-live-actions button, .rr-section-title > button, .rr-audience-summary button { min-height: 38px; padding: 7px 12px; border: 1px solid #cbd5e1; border-radius: 9px; background: #fff; color: #334e68; font-weight: 800; cursor: pointer; }
        .rr-section-title > button:disabled { opacity: .58; cursor: wait; }
        .rr-live-actions button:first-child { border-color: #6faf82; background: #edf7f0; color: #237804; }
        .rr-log-section { margin-top: 24px; }
        .rr-log-section .rr-section-title { margin-top: 0; }
        .rr-log-list { display: grid; overflow: hidden; border: 1px solid #e1e8ef; border-radius: 14px; background: #fff; }
        .rr-log-row { display: flex; justify-content: space-between; gap: 14px; padding: 13px 15px; border-bottom: 1px solid #edf1f5; }
        .rr-log-row:last-child { border-bottom: 0; }
        .rr-log-row > div { display: grid; gap: 4px; min-width: 0; }
        .rr-log-row > div:last-child { justify-items: end; flex: 0 0 auto; }
        .rr-log-row strong { color: #334e68; font-size: 13px; }
        .rr-log-row span, .rr-log-row small { overflow: hidden; color: #829ab1; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-log-status { color: #627d98; font-size: 11px; font-style: normal; font-weight: 900; }
        .rr-log-status.is-sent { color: #237804; }
        .rr-log-status.is-permission_missing, .rr-log-status.is-wechat_error, .rr-log-status.is-internal_error { color: #cf1322; }
        .rr-log-empty { padding: 28px 16px; }
        .rr-rule-master { display: flex; justify-content: space-between; gap: 14px; align-items: center; margin-top: 15px; padding: 13px 14px; border-radius: 12px; background: #f7faf8; }
        .rr-rule-master p { margin: 0; color: #829ab1; font-size: 11px; text-align: right; }
        .rr-time-settings { display: flex; flex-wrap: wrap; gap: 16px; margin: 14px 0 0; padding: 13px 14px; border: 1px solid #dfe7ef; border-radius: 12px; }
        .rr-time-settings legend { padding: 0 5px; color: #334e68; font-size: 13px; font-weight: 900; }
        .rr-time-settings label { color: #334e68; font-size: 13px; font-weight: 700; }
        .rr-time-settings input, .rr-account-option input { accent-color: #237804; }
        .rr-time-settings small { flex-basis: 100%; color: #829ab1; font-size: 11px; }
        .rr-audience-toolbar { display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 10px; margin-top: 14px; }
        .rr-audience-toolbar input, .rr-audience-toolbar select { width: 100%; min-height: 42px; padding: 8px 10px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; font: inherit; }
        .rr-audience-summary { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
        .rr-audience-summary strong { color: #237804; font-size: 13px; }
        .rr-audience-summary > span { color: #829ab1; font-size: 11px; }
        .rr-audience-summary > div { display: flex; gap: 7px; margin-left: auto; }
        .rr-audience-summary button { min-height: 34px; padding: 5px 9px; font-size: 11px; }
        .rr-account-list { display: grid; gap: 8px; max-height: 46vh; overflow-y: auto; margin-top: 11px; padding-right: 3px; }
        .rr-account-option { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 12px; border: 1px solid #dfe7ef; border-radius: 11px; background: #fff; cursor: pointer; }
        .rr-account-option:has(input:checked) { border-color: #86bc95; background: #f3faf5; }
        .rr-account-option > span { display: grid; gap: 3px; min-width: 0; }
        .rr-account-option b { color: #334e68; font-size: 13px; }
        .rr-account-option small { overflow: hidden; color: #829ab1; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-account-option em { color: #cf1322; font-size: 10px; font-style: normal; font-weight: 800; white-space: nowrap; }
        .rr-account-option em.is-bound { color: #237804; }
        .rr-account-option em.is-warning { color: #ad6800; }
        .rr-readiness-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
        .rr-readiness-card { display: grid; gap: 6px; padding: 15px 16px; border: 1px solid #dfe7ef; border-radius: 14px; background: #fff; }
        .rr-readiness-card > span { color: #829ab1; font-size: 11px; font-weight: 800; }
        .rr-readiness-card > strong { font-size: 17px; }
        .rr-readiness-card > strong.is-ready { color: #237804; }
        .rr-readiness-card > strong.is-warning { color: #ad6800; }
        .rr-readiness-card > strong.is-off { color: #627d98; }
        .rr-readiness-card p { margin: 0; color: #334e68; font-size: 12px; line-height: 1.5; }
        .rr-readiness-card small { color: #829ab1; font-size: 10px; line-height: 1.5; }
        .rr-roster-section, .rr-diagnostics-section { margin-top: 24px; padding-top: 20px; border-top: 1px solid #e5ebf1; }
        .rr-capacity-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; margin-top: 12px; }
        .rr-capacity-grid > div { display: grid; gap: 4px; padding: 12px; border: 1px solid #dfe7ef; border-radius: 12px; background: #fbfcfd; }
        .rr-capacity-grid span { color: #829ab1; font-size: 10px; font-weight: 800; }
        .rr-capacity-grid strong { color: #102a43; font-size: 18px; }
        .rr-setup-banner, .rr-roster-message { display: grid; gap: 4px; margin-top: 12px; padding: 12px 14px; border: 1px solid #ffd591; border-radius: 11px; background: #fff7e6; }
        .rr-setup-banner strong { color: #874d00; font-size: 13px; }
        .rr-setup-banner span, .rr-roster-message { color: #874d00; font-size: 11px; line-height: 1.6; }
        .rr-roster-message.success { border-color: #b7eb8f; background: #f6ffed; color: #237804; }
        .rr-roster-message.error { border-color: #ffa39e; background: #fff1f0; color: #a8071a; }
        .rr-roster-message.info { border-color: #91caff; background: #e6f4ff; color: #0958d9; }
        .rr-roster-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; align-items: start; }
        .rr-roster-group { overflow: hidden; border: 1px solid #dfe7ef; border-radius: 14px; background: #fff; }
        .rr-roster-group-head { display: grid; gap: 3px; padding: 13px 14px; border-bottom: 1px solid #e5ebf1; background: #f7f9fb; }
        .rr-roster-group-head strong { color: #102a43; font-size: 14px; }
        .rr-roster-group-head span { color: #829ab1; font-size: 10px; }
        .rr-roster-list { display: grid; max-height: 58vh; overflow-y: auto; }
        .rr-roster-row { display: grid; grid-template-columns: minmax(125px, .8fr) minmax(160px, 1fr) minmax(145px, .9fr); gap: 9px; align-items: center; padding: 11px 12px; border-bottom: 1px solid #edf1f5; }
        .rr-roster-row:last-child { border-bottom: 0; }
        .rr-roster-row.is-invalid { background: #fff1f0; }
        .rr-roster-org { display: grid; gap: 3px; min-width: 0; }
        .rr-roster-org strong { overflow: hidden; color: #334e68; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-roster-org small { overflow: hidden; color: #829ab1; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-roster-row select { width: 100%; min-width: 0; min-height: 38px; padding: 7px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334e68; font: inherit; font-size: 11px; }
        .rr-roster-row select:focus, .rr-diagnostic-filters input:focus, .rr-diagnostic-filters select:focus { border-color: #52a66d; outline: 2px solid rgba(82,166,109,.16); }
        .rr-roster-placeholder { color: #9fb3c8; font-size: 10px; line-height: 1.4; }
        .rr-diagnostic-summary { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
        .rr-diagnostic-summary span { padding: 7px 10px; border-radius: 999px; background: #f1f5f9; color: #627d98; font-size: 11px; }
        .rr-diagnostic-summary b { color: #102a43; }
        .rr-subtitle { margin-top: 18px; }
        .rr-episode-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
        .rr-episode-card { display: grid; gap: 7px; padding: 13px 14px; border: 1px solid #d9eadf; border-radius: 12px; background: #fbfffc; }
        .rr-episode-card > div:first-child { display: flex; justify-content: space-between; gap: 8px; }
        .rr-episode-card strong { color: #102a43; font-size: 13px; }
        .rr-episode-card > div:first-child span { color: #237804; font-size: 10px; font-weight: 800; }
        .rr-episode-card > b { color: #cf1322; font-size: 17px; }
        .rr-episode-card > small { color: #829ab1; font-size: 10px; }
        .rr-slot-chips { display: flex; flex-wrap: wrap; gap: 5px; }
        .rr-slot-chips em { padding: 4px 7px; border-radius: 7px; background: #edf7f0; color: #35684a; font-size: 9px; font-style: normal; }
        .rr-diagnostic-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin: 15px 0 11px; padding: 12px; border: 1px solid #dfe7ef; border-radius: 13px; background: #f7f9fb; }
        .rr-diagnostic-filters label { display: grid; gap: 4px; color: #627d98; font-size: 10px; font-weight: 800; }
        .rr-diagnostic-filters input, .rr-diagnostic-filters select { width: 100%; min-width: 0; min-height: 38px; padding: 7px 8px; border: 1px solid #cbd5e1; border-radius: 8px; background: #fff; color: #334e68; font: inherit; font-size: 11px; }
        .rr-diagnostic-list { display: grid; overflow: hidden; border: 1px solid #e1e8ef; border-radius: 13px; background: #fff; }
        .rr-diagnostic-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .75fr); gap: 14px; padding: 12px 14px; border-bottom: 1px solid #edf1f5; }
        .rr-diagnostic-row:last-child { border-bottom: 0; }
        .rr-diagnostic-row > div { display: grid; gap: 3px; min-width: 0; }
        .rr-diagnostic-row > div:last-child { justify-items: end; text-align: right; }
        .rr-diagnostic-row strong { color: #334e68; font-size: 12px; }
        .rr-diagnostic-row span, .rr-diagnostic-row small { overflow: hidden; max-width: 100%; color: #829ab1; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
        .rr-diagnostic-row em { color: #627d98; font-size: 10px; font-style: normal; font-weight: 900; }
        .rr-diagnostic-row em.is-delivered, .rr-diagnostic-row em.is-sent, .rr-diagnostic-row em.is-accepted { color: #237804; }
        .rr-diagnostic-row em.is-suppressed, .rr-diagnostic-row em.is-cancelled_state_changed { color: #ad6800; }
        .rr-diagnostic-row em.is-failed_definitive, .rr-diagnostic-row em.is-network_unknown, .rr-diagnostic-row em.is-delivery_failed_user_block, .rr-diagnostic-row em.is-delivery_failed_system { color: #cf1322; }

        @media (max-width: 680px) {
            .rr-content { padding: 12px 12px calc(24px + env(safe-area-inset-bottom)); }
            .rr-center-hero { grid-template-columns: 1fr; gap: 14px; padding: 18px; }
            .rr-center-hero h3 { font-size: 21px; }
            .rr-center-principles { min-width: 0; }
            .rr-live-grid { grid-template-columns: 1fr; }
            .rr-live-card { padding: 15px; }
            .rr-live-card-head { grid-template-columns: auto minmax(0, 1fr); }
            .rr-live-card-head > em { grid-column: 2; justify-self: start; }
            .rr-live-meta { grid-template-columns: 72px minmax(0, 1fr); }
            .rr-live-actions { display: grid; grid-template-columns: 1fr; }
            .rr-live-actions button { width: 100%; min-height: 44px; }
            .rr-log-row { align-items: flex-start; }
            .rr-log-row > div:last-child { justify-items: start; }
            .rr-rule-master { display: grid; }
            .rr-rule-master p { text-align: left; }
            .rr-audience-toolbar { grid-template-columns: 1fr; }
            .rr-audience-summary { flex-wrap: wrap; }
            .rr-audience-summary > div { width: 100%; margin-left: 0; }
            .rr-audience-summary button { flex: 1; }
            .rr-account-option { grid-template-columns: auto minmax(0, 1fr); }
            .rr-account-option > em { grid-column: 2; justify-self: start; }
            .rr-readiness-grid, .rr-roster-grid, .rr-episode-list, .rr-diagnostic-filters { grid-template-columns: 1fr; }
            .rr-capacity-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
            .rr-roster-section .rr-section-title, .rr-diagnostics-section .rr-section-title { align-items: flex-start; }
            .rr-roster-section .rr-section-title > button, .rr-diagnostics-section .rr-section-title > button { flex: 0 0 auto; }
            .rr-roster-list { max-height: none; }
            .rr-roster-row { grid-template-columns: 1fr; gap: 7px; }
            .rr-roster-org strong, .rr-roster-org small { white-space: normal; }
            .rr-diagnostic-row { grid-template-columns: 1fr; gap: 8px; }
            .rr-diagnostic-row > div:last-child { justify-items: start; text-align: left; }
            .rr-diagnostic-row span, .rr-diagnostic-row small { white-space: normal; }
            .rr-hero { grid-template-columns: 1fr; gap: 15px; padding: 18px; }
            .rr-hero-status { min-width: 0; }
            .rr-system-axis { grid-template-columns: 1fr 1fr; gap: 10px; }
            .rr-system-axis > i { display: none; }
            .rr-system-axis small { white-space: normal; }
            .rr-module-grid { grid-template-columns: 1fr; }
            .rr-module-card { min-height: 112px; padding: 15px; }
            .rr-module-icon { width: 46px; height: 46px; border-radius: 14px; font-size: 18px; }
            .rr-module-hero { grid-template-columns: auto 1fr; gap: 12px; padding: 16px; }
            .rr-module-hero > button { grid-column: 1 / -1; width: 100%; }
            .rr-event-list { grid-template-columns: 1fr; }
            .rr-event-card.is-live { grid-column: auto; }
            .rr-event-head { align-items: flex-start; }
            .rr-rule-flow { grid-template-columns: 1fr; }
            .rr-recipient-grid { grid-template-columns: 1fr; }
            .rr-rule-actions { display: grid; grid-template-columns: 1fr 1fr; }
            .rr-rule-actions button { padding: 8px 6px; }
            .rr-responsibility-head { align-items: flex-start; }
            .rr-responsibility-head > button { flex: 0 0 auto; }
            .rr-responsibility-list { grid-template-columns: 1fr; }
        }
        .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;
        }
        .industry-keyword-field {
            position: relative;
            flex: 1 0 100%;
            min-width: 0;
            display: flex;
            align-items: center;
            gap: 7px;
            box-sizing: border-box;
            min-height: 40px;
            padding: 0 8px 0 11px;
            border: 1px solid #cfe0d5;
            border-radius: 12px;
            background: #fbfffc;
            box-shadow: inset 0 1px 2px rgba(15, 70, 38, 0.04);
        }
        .industry-keyword-field:focus-within {
            border-color: #45a66d;
            box-shadow: 0 0 0 3px rgba(7, 193, 96, 0.10);
        }
        .industry-keyword-icon {
            flex: 0 0 auto;
            color: #3c7a55;
            font-size: 17px;
            line-height: 1;
        }
        .industry-keyword-field input {
            flex: 1;
            min-width: 0;
            min-height: 38px;
            padding: 0;
            border: 0;
            outline: 0;
            background: transparent;
            color: #1f2d3d;
            font-size: 14px;
        }
        .records-filter .industry-keyword-clear {
            display: none;
            flex: 0 0 auto;
            width: 28px;
            min-height: 28px;
            height: 28px;
            padding: 0;
            border-radius: 50%;
            background: #edf3ef;
            color: #65766b;
            font-size: 18px;
            font-weight: 500;
            line-height: 28px;
            box-shadow: none;
        }
        .records-filter .industry-keyword-clear.show { display: block; }
        .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,
        .workorder-filter-advanced .wo-multiselect-btn {
            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;
        }
        /* 多选筛选按钮（替代 select）— 用属性选择器提升特异性覆盖 .records-filter button */
        .wo-multiselect-btn[type="button"] {
            min-width: 0;
            flex: 1 1 auto;
            padding: 8px 28px 8px 11px;
            border: 1px solid #d7e0e8;
            border-radius: 10px;
            background: #fbfdff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E") no-repeat right 10px center;
            color: #1f2d3d;
            font-size: 14px;
            font-family: inherit;
            font-weight: 400;
            text-align: left;
            cursor: pointer;
            box-shadow: inset 0 1px 2px rgba(15,35,60,0.04);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            -webkit-appearance: none;
            appearance: none;
            min-height: auto;
            transform: none;
        }
        .wo-multiselect-btn[type="button"]:hover { filter: none; box-shadow: inset 0 1px 2px rgba(15,35,60,0.04); }
        .wo-multiselect-btn[type="button"]:active { transform: none; box-shadow: inset 0 1px 2px rgba(15,35,60,0.06); }
        .wo-multiselect-btn--active[type="button"] {
            border-color: #1677ff;
            color: #1677ff;
            background-color: #e8f0fe;
        }
        /* 多选底部弹层 */
        .wo-multi-picker-mask {
            position: fixed; inset: 0; z-index: 3000;
            background: rgba(0,0,0,0.4);
            display: flex; align-items: center; justify-content: center;
            padding: 20px;
        }
        .wo-multi-picker-sheet {
            width: 100%; max-width: 360px;
            background: #fff;
            border-radius: 14px;
            box-shadow: 0 8px 32px rgba(0,0,0,0.18);
            display: flex; flex-direction: column;
            max-height: 65vh;
            overflow: hidden;
        }
        .wo-multi-picker-header {
            display: flex; align-items: center; justify-content: space-between;
            padding: 16px 18px 10px;
            border-bottom: 1px solid #f0f0f0;
        }
        .wo-multi-picker-title {
            font-size: 15px; font-weight: 700; color: #1f2d3d;
        }
        .wo-multi-picker-close {
            width: 28px; height: 28px; border: none; background: #f5f5f5;
            border-radius: 50%; color: #666; font-size: 16px; cursor: pointer;
            display: flex; align-items: center; justify-content: center;
            line-height: 1;
        }
        .wo-multi-picker-options {
            overflow-y: auto; flex: 1;
            padding: 6px 0;
        }
        .wo-multi-picker-option {
            display: flex; align-items: center; gap: 12px;
            padding: 13px 18px;
            cursor: pointer;
            font-size: 15px; color: #1f2d3d;
            border-bottom: 1px solid #f7f7f7;
            -webkit-tap-highlight-color: transparent;
            user-select: none;
        }
        .wo-multi-picker-option:last-child { border-bottom: none; }
        .wo-multi-picker-option input[type="checkbox"] {
            width: 20px; height: 20px; flex-shrink: 0;
            accent-color: #1677ff;
            cursor: pointer;
        }
        .wo-multi-picker-footer {
            display: flex; gap: 10px;
            padding: 12px 18px 14px;
            border-top: 1px solid #f0f0f0;
        }
        .wo-multi-picker-reset {
            flex: 0 0 auto;
            padding: 10px 18px;
            border: 1px solid #d7e0e8; border-radius: 10px;
            background: #f7f9fc; color: #666; font-size: 14px; cursor: pointer;
        }
        .wo-multi-picker-confirm {
            flex: 1;
            padding: 10px 18px;
            border: none; border-radius: 10px;
            background: #1677ff; color: #fff;
            font-size: 14px; font-weight: 700; cursor: pointer;
        }
        .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: 11px;
            line-height: 1.35;
            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: 12px;
            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: 15px;
            letter-spacing: 0;
        }
        .wo-card-desc {
            margin-top: 5px;
            color: #262626;
            font-size: 14px;
            line-height: 1.55;
            padding: 7px 9px;
            border-radius: 9px;
            background: #f7f9fc;
            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: 44px;
            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;
        }
        .wo-card-top-right {
            display: flex;
            align-items: center;
            gap: 5px;
            flex: 0 0 auto;
        }
        .wo-card-share-dot {
            width: 24px;
            height: 24px;
            border-radius: 50%;
            border: 1px solid #91e6b8;
            background: #e8f8ef;
            color: #07c160;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            cursor: pointer;
            flex: 0 0 auto;
        }
        .wo-card-share-dot:active {
            background: #c6f0d8;
        }
        .wo-card-share-dot svg {
            pointer-events: none;
        }
        .wo-card-map-dot {
            min-width: 34px;
            height: 24px;
            padding: 0 7px;
            border: 1px solid #91caff;
            border-radius: 999px;
            background: #f0f8ff;
            color: #1677ff;
            font-size: 10px;
            font-weight: 700;
            cursor: pointer;
            flex: 0 0 auto;
        }
        .wo-card-map-dot:active {
            background: #d6edff;
        }
        #workOrderTodoList {
            padding: 6px 8px 8px;
            scroll-padding-top: 6px;
        }
        #workOrderTodoList.is-refreshing {
            cursor: progress;
        }
        .wo-list-card.wo-card-compact {
            padding: 7px 8px 6px;
            margin-bottom: 6px;
            border-radius: 10px;
            box-shadow: 0 3px 9px rgba(15,35,60,0.045);
        }
        .wo-card-compact:hover {
            transform: none;
            box-shadow: 0 4px 11px rgba(15,35,60,0.06);
        }
        .wo-card-compact .wo-card-layout {
            grid-template-columns: 68px minmax(0, 1fr);
            gap: 7px;
            align-items: start;
        }
        .wo-card-compact .wo-card-photo,
        .wo-card-compact .wo-card-photo-empty {
            border-radius: 9px;
            box-shadow: none;
        }
        .wo-card-compact .wo-card-attachment-preview {
            padding: 4px !important;
            gap: 2px !important;
        }
        .wo-card-compact .wo-card-attachment-preview > div:first-child {
            font-size: 20px !important;
        }
        .wo-card-compact .wo-card-attachment-preview > div:nth-child(2) {
            display: -webkit-box;
            overflow: hidden;
            font-size: 9px !important;
            line-height: 1.2 !important;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }
        .wo-card-compact .wo-card-photo-count {
            right: 4px;
            bottom: 4px;
            min-width: 16px;
            height: 16px;
            padding: 0 4px;
            font-size: 9px;
        }
        .wo-card-compact .wo-card-photo-column .wo-card-photo-caption {
            margin-top: 2px;
            font-size: 10.5px;
            line-height: 1.25;
        }
        .wo-card-compact .wo-card-top {
            gap: 5px;
            min-height: 24px;
        }
        .wo-card-compact .wo-card-title {
            line-height: 1.25;
        }
        .wo-card-compact .wo-card-title b {
            font-size: 14px;
        }
        .wo-card-compact .wo-card-top-right {
            gap: 3px;
        }
        .wo-card-compact .wo-card-share-dot {
            width: 22px;
            height: 22px;
        }
        .wo-card-compact .wo-card-status {
            padding: 2px 6px;
            font-size: 11px;
            box-shadow: none;
        }
        .wo-card-compact .wo-card-tags {
            flex-wrap: nowrap;
            gap: 4px;
            margin-top: 3px;
            overflow: hidden;
        }
        .wo-card-compact .wo-card-tag-pill {
            flex: 0 0 auto;
            padding: 2px 7px;
            font-size: 11px;
            line-height: 1.4;
        }
        .wo-card-compact .wo-card-desc {
            display: block;
            overflow: hidden;
            margin-top: 4px;
            padding: 5px 7px;
            border-radius: 7px;
            font-size: 12.5px;
            line-height: 1.4;
            white-space: nowrap;
            text-overflow: ellipsis;
        }
        .wo-card-compact.unread::before {
            top: 7px;
            right: 7px;
            width: 6px;
            height: 6px;
        }
        #workOrderTodoHint {
            padding-top: 6px;
            padding-bottom: 6px;
            font-size: 11px;
            line-height: 1.35;
        }
        @media (max-width: 640px) {
            .wo-todo-toolbar {
                align-items: center;
                flex-wrap: nowrap;
            }
            .wo-todo-source-filter > span {
                display: none;
            }
            .wo-todo-source-filter select {
                max-width: 92px;
                min-height: 30px;
                padding-top: 4px;
                padding-bottom: 4px;
            }
            .wo-todo-toolbar-actions {
                flex-wrap: nowrap;
                justify-content: flex-end;
                overflow-x: auto;
                scrollbar-width: none;
            }
            .wo-todo-toolbar-actions::-webkit-scrollbar {
                display: none;
            }
            .wo-todo-action-btn {
                flex: 0 0 auto;
                white-space: nowrap;
            }
            .wo-card-compact .wo-card-layout {
                grid-template-columns: 60px minmax(0, 1fr);
                gap: 6px;
            }
            .wo-card-compact .wo-card-map-dot {
                min-width: 30px;
                height: 22px;
                padding: 0 6px;
                font-size: 9px;
            }
            #workOrderTodoHint {
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
            }
        }
        @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,
            #workOrderTodoToolbar,
            #workOrderTodoTopTabs,
            #workOrderTodoDispatchFilters {
                width: min(920px, calc(100% - 20px));
                margin-left: auto;
                margin-right: auto;
                box-sizing: border-box;
                justify-content: center;
            }
            #workOrderTodoToolbar {
                justify-content: space-between;
            }
            #workOrderTodoBusinessTabs {
                justify-content: flex-start;
            }
            #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: 10px;
            margin-bottom: 8px;
        }
        .industry-project-card-body {
            display: flex;
            align-items: stretch;
            gap: 10px;
        }
        .industry-project-card-cover {
            flex: 0 0 82px;
            width: 82px;
            height: 82px;
            border-radius: 13px;
            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: 5px;
        }
        .industry-project-card-title {
            min-width: 0;
            font-size: 15px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.35;
            word-break: break-word;
        }
        .industry-project-status {
            flex: 0 0 auto;
            padding: 4px 7px;
            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: 4px;
        }
        .industry-card-map-btn {
            flex: 0 0 auto;
            min-height: 27px;
            padding: 4px 9px;
            border: 1px solid #d9e7f6;
            border-radius: 9px;
            background: #f5f9ff;
            color: #1769c2;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
        }
        .industry-visibility-toggle {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            min-height: 32px;
            padding: 4px 7px;
            border: 1px solid #d7e2da;
            border-radius: 10px;
            background: #f7faf8;
            color: #58675e;
            font-size: 12px;
            font-weight: 800;
            line-height: 1;
            cursor: pointer;
            transition: border-color .18s ease, background .18s ease, color .18s ease, opacity .18s ease;
        }
        .industry-visibility-toggle:hover {
            border-color: #9cc9ab;
        }
        .industry-visibility-toggle.is-public {
            border-color: #8acaa1;
            background: #effaf2;
            color: #247544;
        }
        .industry-visibility-toggle:disabled {
            cursor: default;
            opacity: .64;
        }
        .industry-visibility-toggle.is-saving {
            opacity: .9;
            cursor: wait;
        }
        .industry-visibility-toggle.is-saving .industry-visibility-toggle-track {
            box-shadow: 0 0 0 2px rgba(54,168,93,.14);
        }
        .industry-detail-modal.is-loading .industry-detail-primary-actions,
        .industry-detail-modal.is-loading .industry-detail-admin-actions {
            display: none;
        }
        .industry-detail-loading {
            min-height: 112px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 18px;
            border: 1px dashed #c9d8e8;
            border-radius: 14px;
            background: #f8fbff;
            color: #6c7b8a;
            font-size: 14px;
        }
        .industry-detail-loading.is-error {
            border-color: #f0c6c1;
            background: #fff8f7;
            color: #a4534b;
        }
        .industry-visibility-toggle-state {
            min-width: 35px;
            text-align: center;
        }
        .industry-visibility-toggle-track {
            position: relative;
            width: 30px;
            height: 17px;
            border-radius: 999px;
            background: #aebcb2;
            transition: background .18s ease;
        }
        .industry-visibility-toggle-thumb {
            position: absolute;
            top: 2px;
            left: 2px;
            width: 13px;
            height: 13px;
            border-radius: 50%;
            background: #fff;
            box-shadow: 0 1px 3px rgba(20,56,33,.22);
            transition: transform .18s ease;
        }
        .industry-visibility-toggle.is-public .industry-visibility-toggle-track {
            background: #36a85d;
        }
        .industry-visibility-toggle.is-public .industry-visibility-toggle-thumb {
            transform: translateX(13px);
        }
        .industry-visibility-toggle.compact {
            min-height: 27px;
            padding: 3px 6px;
            border-radius: 9px;
            font-size: 11px;
        }
        .industry-visibility-toggle.compact .industry-visibility-toggle-track {
            width: 27px;
            height: 16px;
        }
        .industry-visibility-toggle.compact .industry-visibility-toggle-thumb {
            width: 12px;
            height: 12px;
        }
        .industry-visibility-toggle.compact.is-public .industry-visibility-toggle-thumb {
            transform: translateX(11px);
        }
        .industry-visibility-readonly {
            display: inline-flex;
            align-items: center;
            min-height: 27px;
            padding: 3px 8px;
            border-radius: 9px;
            background: #f3f5f4;
            color: #67736b;
            font-size: 11px;
            font-weight: 800;
        }
        .industry-visibility-readonly.is-public {
            background: #effaf2;
            color: #247544;
        }
        .industry-visibility-field {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            margin-bottom: 8px;
            padding: 10px;
            border: 1px solid #d9e8df;
            border-radius: 10px;
            background: #f7fbf8;
        }
        .industry-visibility-field-copy {
            min-width: 0;
        }
        .industry-visibility-field label {
            display: block;
            color: #2d4435;
            font-size: 13px;
            font-weight: 800;
        }
        .industry-visibility-field-hint {
            margin-top: 4px;
            color: #5b6f62;
            font-size: 12px;
            line-height: 1.45;
        }
        .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;
        }
        .map-entity-marker-motion {
            position: relative;
            display: block;
            overflow: visible;
            pointer-events: auto;
        }
        .map-entity-marker-motion.is-displaced {
            animation: map-entity-offset-settle 170ms cubic-bezier(.2,.7,.3,1) both;
            will-change: transform;
        }
        .map-entity-marker-hit::before {
            content: '';
            position: absolute;
            z-index: 5;
            left: 50%;
            top: 50%;
            width: 44px;
            height: 48px;
            border-radius: 16px;
            transform: translate(-50%, -50%);
            pointer-events: auto;
        }
        @keyframes map-entity-offset-settle {
            from {
                transform: translate(var(--map-entity-start-x), var(--map-entity-start-y));
            }
            to {
                transform: translate(0, 0);
            }
        }
        @media (prefers-reduced-motion: reduce) {
            .map-entity-marker-motion.is-displaced {
                animation: none;
            }
        }
        /* Map object card: a complete first-tap view, shared by projects, work orders and fixed points. */
        .map-selection-peek {
            --map-selection-color: #278653;
            --map-selection-tint: #edf8f0;
            position: fixed;
            z-index: 950;
            left: 12px;
            right: 12px;
            bottom: calc(70px + env(safe-area-inset-bottom));
            display: none;
            grid-template-columns: 56px minmax(0, 1fr);
            gap: 10px 12px;
            padding: 12px;
            border: 1px solid rgba(31, 45, 61, 0.11);
            border-radius: 18px;
            background: rgba(255, 255, 255, 0.98);
            color: #243d2d;
            box-shadow: 0 12px 30px rgba(21, 61, 38, 0.18);
            backdrop-filter: blur(14px);
        }
        .map-selection-peek.show { display: grid; }
        .map-selection-peek-visual {
            position: relative;
            grid-row: 1;
            width: 56px;
            height: 56px;
            overflow: hidden;
            border-radius: 14px;
            background: var(--map-selection-tint);
        }
        .map-selection-peek-photo {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .map-selection-peek-photo[hidden] { display: none; }
        .map-selection-peek-icon {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--map-selection-color);
        }
        .map-selection-peek.has-photo .map-selection-peek-icon {
            display: none;
        }
        .map-selection-peek.no-visual {
            grid-template-columns: minmax(0, 1fr);
            gap: 8px;
            padding: 10px 11px;
        }
        .map-selection-peek.no-visual .map-selection-peek-visual {
            display: none;
        }
        .map-selection-peek.no-visual .map-selection-peek-copy {
            grid-column: 1;
            min-height: 0;
            padding: 0 28px 0 2px;
        }
        .map-selection-peek-icon svg {
            display: block;
            width: 34px;
            height: 34px;
        }
        .map-selection-peek-copy {
            display: flex;
            min-width: 0;
            min-height: 56px;
            padding-right: 24px;
            flex-direction: column;
            justify-content: center;
        }
        .map-selection-peek-type,
        .map-selection-peek-kicker {
            display: inline-flex;
            align-items: center;
            min-width: 0;
            min-height: 16px;
            vertical-align: middle;
        }
        .map-selection-peek-type {
            margin-right: 5px;
            color: var(--map-selection-color);
            font-size: 11px;
            font-weight: 800;
            line-height: 1.35;
        }
        .map-selection-peek-status {
            max-width: 120px;
            overflow: hidden;
            padding: 1px 6px;
            border-radius: 999px;
            background: var(--map-selection-tint);
            color: var(--map-selection-color);
            font-size: 10px;
            font-weight: 700;
            line-height: 1.35;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .map-selection-peek-copy strong {
            display: -webkit-box;
            overflow: hidden;
            margin-top: 1px;
            color: #263d2d;
            font-size: 15px;
            font-weight: 750;
            line-height: 1.38;
            text-overflow: ellipsis;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            word-break: break-word;
        }
        .map-selection-peek-meta {
            overflow: hidden;
            margin-top: 2px;
            color: #718176;
            font-size: 11px;
            line-height: 1.35;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .map-selection-peek-actions {
            display: flex;
            grid-column: 1 / -1;
            gap: 8px;
        }
        .map-selection-peek-action {
            position: static;
            display: inline-flex;
            flex: 1 1 0;
            min-width: 0;
            min-height: 40px;
            align-items: center;
            justify-content: center;
            padding: 0 10px;
            border: 1px solid var(--map-selection-color);
            border-radius: 10px;
            background: #fff;
            color: var(--map-selection-color);
            font-size: 13px;
            font-weight: 750;
            line-height: 1;
            cursor: pointer;
        }
        .map-selection-peek-action.primary {
            flex: 1.2 1 0;
            border-color: var(--map-selection-color);
            background: var(--map-selection-color);
            color: #fff;
        }
        .map-selection-peek-action[hidden] { display: none; }
        #mapSelectionPeekReturnBtn {
            flex: 1.3 1 0;
            white-space: nowrap;
            background: var(--map-selection-tint);
        }
        .map-selection-peek-close {
            position: absolute;
            z-index: 1;
            top: 4px;
            right: 5px;
            width: 44px;
            height: 44px;
            padding: 0;
            border: 0;
            border-radius: 50%;
            background: rgba(255,255,255,0.78);
            color: #728075;
            font-size: 22px;
            line-height: 1;
            cursor: pointer;
        }
        @media (max-width: 640px) {
            .map-selection-peek {
                left: 8px;
                right: 8px;
                bottom: calc(66px + env(safe-area-inset-bottom));
                grid-template-columns: 48px minmax(0, 1fr);
                gap: 8px 10px;
                padding: 10px;
                border-radius: 16px;
                box-shadow: 0 9px 24px rgba(21, 61, 38, 0.16);
            }
            .map-selection-peek-visual {
                width: 48px;
                height: 48px;
                border-radius: 12px;
            }
            .map-selection-peek-icon svg {
                width: 30px;
                height: 30px;
            }
            .map-selection-peek-copy {
                min-height: 48px;
                padding-right: 34px;
            }
            .map-selection-peek-copy strong {
                font-size: 14px;
                line-height: 1.32;
            }
            .map-selection-peek-type {
                font-size: 10.5px;
            }
            .map-selection-peek-status {
                font-size: 9.5px;
            }
            .map-selection-peek-meta {
                margin-top: 1px;
                font-size: 10.5px;
            }
            .map-selection-peek-actions {
                gap: 6px;
            }
            .map-selection-peek-action {
                min-height: 44px;
                padding: 0 8px;
                border-radius: 9px;
                font-size: 12.5px;
            }
            .map-selection-peek-close {
                top: 3px;
                right: 3px;
                width: 44px;
                height: 44px;
                font-size: 20px;
            }
            .map-selection-peek.no-visual {
                gap: 7px;
                padding: 9px 10px 10px;
            }
            .map-selection-peek.no-visual .map-selection-peek-copy {
                min-height: 0;
                padding-right: 26px;
            }
        }
        @media (min-width: 641px) {
            .map-selection-peek {
                left: 50%;
                right: auto;
                bottom: calc(82px + env(safe-area-inset-bottom));
                width: min(420px, calc(100vw - 24px));
                transform: translateX(-50%);
            }
        }
        .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.is-current {
            background: #eef8f1;
            box-shadow: inset 3px 0 0 #278653;
        }
        .point-option.is-current:hover {
            background: #e7f5eb;
        }
        .point-option .name {
            display: flex;
            align-items: center;
            gap: 10px;
            font-weight: bold;
        }
        .point-option-title {
            min-width: 0;
            flex: 1 1 auto;
            overflow-wrap: anywhere;
        }
        .point-option-current {
            flex: 0 0 auto;
            padding: 2px 7px;
            border-radius: 999px;
            background: #dff2e5;
            color: #278653;
            font-size: 11px;
            font-weight: 800;
            line-height: 1.35;
        }
        .point-option .dist {
            color: #999;
            font-size: 12px;
            overflow-wrap: anywhere;
        }
        .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; }
        #woPhotoActionOverlay.show { z-index: 2195; }

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

        @media (max-width: 640px) {
            .auth-box {
                width: min(92vw, 372px);
                padding: 28px 18px 22px;
                border-radius: 22px;
            }
            .auth-box h2 {
                font-size: 20px;
            }
            .brand-tagline {
                font-size: 13px;
            }
            .brand-tagline-en {
                letter-spacing: 0.12em;
            }
            .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: auto;
                width: max-content;
                max-width: calc(100vw - 12px);
                gap: 6px;
                padding: 0;
            }
            .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: 12px;
            }
            .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-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: 70px;
                width: 70px;
                height: 70px;
                border-radius: 12px;
            }
            .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: 6px;
        }
        .wo-todo-select-check {
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding-top: 12px;
            cursor: pointer;
        }
        .wo-todo-select-check input {
            width: 18px;
            height: 18px;
            margin: 0;
            cursor: pointer;
        }
        .wo-todo-select-body {
            min-width: 0;
        }
        .wo-todo-select-body .wo-card-compact {
            margin-bottom: 0 !important;
        }
        .wo-todo-select-row.is-disabled {
            opacity: 0.78;
        }
        .wo-todo-select-placeholder {
            display: flex;
            align-items: flex-start;
            justify-content: center;
            padding-top: 12px;
            color: #b7c0ca;
            font-size: 15px;
        }
        .wo-todo-batch-disabled {
            margin: -4px 8px 4px;
            padding: 5px 8px;
            border-radius: 8px;
            background: #f5f6f7;
            color: #7d8792;
            font-size: 11px;
            line-height: 1.45;
        }
        .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;
        }
        .wo-todo-toolbar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 0 12px 7px;
        }
        .wo-todo-business-tabs {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 0 12px 7px;
            overflow-x: auto;
        }
        .wo-todo-business-tab {
            min-height: 30px;
            padding: 5px 10px;
            border: 1px solid #d8e1e8;
            border-radius: 999px;
            background: #fff;
            color: #596b7c;
            font-size: 12px;
            font-weight: 700;
            white-space: nowrap;
            cursor: pointer;
        }
        .wo-todo-business-tab b {
            margin-left: 5px;
            color: #8a99a8;
            font-size: 11px;
        }
        .wo-todo-business-tab.active {
            border-color: #91caff;
            background: #e6f4ff;
            color: #0958d9;
        }
        .wo-todo-business-tab.active b {
            color: #1677ff;
        }
        .wo-todo-source-filter {
            display: inline-flex;
            align-items: center;
            gap: 7px;
            min-width: 0;
            color: #667482;
            font-size: 12px;
            font-weight: 600;
        }
        .wo-todo-source-filter select {
            min-height: 34px;
            padding: 5px 28px 5px 10px;
            border: 1px solid #d8e1e8;
            border-radius: 10px;
            background: #fff;
            color: #34495e;
            font-size: 12px;
        }
        .wo-todo-toolbar-actions {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 6px;
            min-width: 0;
        }
        .wo-todo-action-btn {
            min-height: 32px;
            padding: 5px 10px;
            border: 1px solid #9dc4e4;
            border-radius: 10px;
            background: #f2f8fd;
            color: #17679e;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
        }
        .wo-todo-action-btn.export {
            border-color: #d8e1e8;
            background: #fff;
            color: #526579;
        }
        .wo-todo-action-btn.secondary {
            border-color: #f0c98f;
            background: #fffaf0;
            color: #9a6700;
        }
        .wo-todo-action-btn.active {
            border-color: #d4a34a;
            background: #fff8e8;
            color: #946200;
        }
        .wo-todo-action-btn:disabled {
            cursor: not-allowed;
            opacity: 0.48;
        }
        #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;
        }
        .wo-todo-selected-count {
            margin-right: auto;
            color: #526579;
            font-size: 12px;
            font-weight: 700;
        }
        #workOrderTodoActionRow #workOrderTodoSelectAllBtn {
            min-width: 60px;
        }
        #workOrderTodoActionRow #workOrderTodoExportBtn {
            min-width: 112px;
        }
        @media (max-width: 960px) {
            .wo-todo-toolbar {
                align-items: flex-start;
                flex-wrap: wrap;
                gap: 6px;
            }
            .wo-todo-toolbar-actions {
                flex: 1 1 auto;
                flex-wrap: wrap;
            }
            .wo-todo-action-btn {
                min-height: 30px;
                padding: 4px 8px;
                font-size: 11px;
            }
            #workOrderTodoActionRow {
                padding: 7px 10px;
                justify-content: stretch;
                flex-wrap: wrap;
                gap: 6px;
            }
            .wo-todo-selected-count {
                width: 100%;
                margin-right: 0;
            }
            #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);
        }
        .wo-attachment-grid {
            display: grid;
            grid-template-columns: minmax(0, 1fr);
            gap: 6px;
            margin-top: 6px;
        }
        .wo-attachment-card {
            display: grid;
            grid-template-columns: 58px minmax(0, 1fr) auto;
            align-items: center;
            column-gap: 10px;
            min-width: 0;
            padding: 8px;
            border: 1px solid #e1e8ef;
            border-radius: 11px;
            background: #fbfcfe;
        }
        .wo-attachment-card-label {
            grid-column: 2;
            color: #6b7a88;
            font-size: 11px;
            font-weight: 700;
        }
        .wo-attachment-preview {
            grid-column: 1;
            grid-row: 1 / span 2;
            display: flex;
            width: 58px;
            height: 58px;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            border-radius: 9px;
            border: 1px solid #e5ebf1;
            background: #f6f8fb;
            text-decoration: none;
        }
        .wo-attachment-preview img {
            width: 100%;
            height: 100%;
            display: block;
            object-fit: cover;
        }
        .wo-attachment-preview.is-missing {
            opacity: 0.7;
        }
        .wo-attachment-file-type {
            display: flex;
            width: 42px;
            height: 42px;
            align-items: center;
            justify-content: center;
            border-radius: 9px;
            background: #eaf2fb;
            color: #3c5f7f;
            font-size: 11px;
            font-weight: 800;
            letter-spacing: 0.04em;
        }
        .wo-attachment-name {
            grid-column: 2;
            min-width: 0;
            color: #1f4f78;
            font-size: 13px;
            font-weight: 600;
            line-height: 1.4;
            text-decoration: none;
            word-break: break-all;
        }
        #woAttachmentPreview,
        #submitWOAttachmentPreview {
            grid-template-columns: minmax(0, 1fr);
            gap: 6px;
            margin-top: 6px;
        }
        .wo-attachment-upload-row {
            aspect-ratio: auto;
            overflow: visible;
            box-shadow: none;
        }
        .wo-attachment-upload-info {
            min-width: 0;
            display: flex;
            flex-direction: column;
            gap: 2px;
        }
        .wo-attachment-upload-info .wo-attachment-name {
            display: block;
        }
        .wo-attachment-upload-size {
            color: #8b96a1;
            font-size: 11px;
            line-height: 1.35;
        }
        .photo-remove-btn.wo-attachment-upload-remove {
            position: static;
            grid-column: 3;
            grid-row: 1;
            flex: 0 0 auto;
        }
        .wo-attachment-upload-add {
            display: flex;
            min-height: 48px;
            align-items: center;
            gap: 9px;
            padding: 8px 11px;
            border: 1px dashed #b9cad9;
            border-radius: 11px;
            background: #f8fbfd;
            color: #315b7c;
            cursor: pointer;
        }
        .wo-attachment-upload-add .plus {
            font-size: 22px;
            line-height: 1;
        }
        .wo-attachment-upload-add-copy {
            display: flex;
            min-width: 0;
            flex-direction: column;
            gap: 1px;
            font-size: 12px;
        }
        .wo-attachment-upload-add-copy strong {
            font-size: 13px;
        }
        .wo-attachment-upload-add-copy span {
            color: #7d8995;
            font-size: 11px;
        }
        .wo-attachment-upload-add:hover {
            border-color: #7fa8c7;
            background: #f2f8fc;
        }
        .wo-attachment-missing-text {
            grid-column: 2;
            color: #b0b8c1;
            font-size: 12px;
        }
        .wo-attachment-delete {
            grid-column: 3;
            grid-row: 1 / span 2;
            width: auto;
            margin: 0;
            padding: 6px 8px !important;
            font-size: 12px !important;
        }
        #woDetailModal.attachment-detail-mode {
            max-width: 460px !important;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-section {
            margin-top: 9px;
            padding: 11px 12px;
            border-radius: 12px;
            box-shadow: 0 3px 10px rgba(15,35,60,0.04);
        }
        #woDetailModal.attachment-detail-mode .wo-detail-section-title {
            margin-bottom: 0;
            font-size: 14px;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-summary-line {
            margin-top: 4px;
            line-height: 1.5;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-timeline {
            gap: 6px;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-event {
            padding: 8px 10px;
            border-radius: 10px;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-actions {
            margin-top: 9px !important;
            gap: 7px !important;
        }
        #woDetailModal.attachment-detail-mode .wo-detail-action-btn {
            min-height: 40px;
            padding: 8px 10px !important;
            border-radius: 11px !important;
            font-size: 13px !important;
        }
        #woDetailModal.attachment-detail-mode #woDetailBottomCloseBtn {
            display: none !important;
        }
        .wo-attachment-section-head {
            display: flex;
            align-items: baseline;
            justify-content: space-between;
            gap: 8px;
            margin-bottom: 7px;
        }
        .wo-attachment-section-subtitle {
            color: #7d8b99;
            font-size: 11px;
            line-height: 1.35;
            text-align: right;
        }
        .wo-attachment-permission-note {
            padding: 8px 10px;
            border-radius: 9px;
            background: #f4f6f8;
            color: #7d8792;
            font-size: 12px;
            line-height: 1.5;
        }
        .wo-attachment-editor-shell {
            margin-top: 8px;
            padding-top: 8px;
            border-top: 1px solid #e8edf2;
        }
        .wo-attachment-editor-hint {
            margin-bottom: 7px;
            color: #526579;
            font-size: 12px;
            line-height: 1.5;
        }
        .wo-attachment-editor-label {
            display: block;
            margin-bottom: 3px;
            color: #5d6b78;
            font-size: 12px;
            font-weight: 600;
        }
        .wo-attachment-editor-remark {
            width: 100%;
            height: 52px;
            box-sizing: border-box;
            padding: 7px 8px;
            resize: vertical;
            border: 1px solid #dce4eb;
            border-radius: 9px;
            background: #fff;
            font-size: 13px;
            line-height: 1.45;
        }
        .wo-attachment-editor-file-list {
            margin-top: 6px;
            color: #667482;
            font-size: 12px;
            line-height: 1.55;
        }
        .wo-attachment-add-btn {
            min-height: 34px;
            margin-top: 5px;
            padding: 6px 10px !important;
            font-size: 12px !important;
        }
        .wo-attachment-editor-help {
            margin-top: 4px;
            color: #8b96a1;
            font-size: 11px;
            line-height: 1.45;
        }
        .wo-attachment-editor-actions {
            margin-top: 7px !important;
            gap: 7px !important;
        }
        .wo-attachment-editor-actions .modal-action-btn {
            min-height: 40px;
            padding: 8px 10px !important;
            border-radius: 11px !important;
            font-size: 13px !important;
        }
        @media (max-width: 420px) {
            .wo-attachment-section-head {
                align-items: flex-start;
                flex-direction: column;
                gap: 2px;
            }
            .wo-attachment-section-subtitle {
                text-align: left;
            }
        }
        .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: 2300;
            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-prev,
        .photo-viewer-next {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            height: 25vh;
            width: 36px;
            border-radius: 4px;
            border: none;
            background: rgba(0,0,0,0.28);
            color: #fff;
            font-size: 26px;
            line-height: 1;
            cursor: pointer;
            z-index: 2;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            transition: background 0.15s;
            -webkit-tap-highlight-color: transparent;
        }
        .photo-viewer-prev { left: 0; }
        .photo-viewer-next { right: 0; }
        .photo-viewer-prev:hover,
        .photo-viewer-next:hover { background: rgba(0,0,0,0.50); }
        .photo-viewer-prev:disabled,
        .photo-viewer-next:disabled { opacity: 0; pointer-events: none; }
        .photo-viewer-counter {
            position: absolute;
            bottom: 56px;
            left: 50%;
            transform: translateX(-50%);
            background: rgba(0,0,0,0.48);
            color: rgba(255,255,255,0.92);
            font-size: 13px;
            font-weight: 600;
            padding: 3px 12px;
            border-radius: 12px;
            pointer-events: none;
            white-space: nowrap;
            z-index: 2;
        }
        .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: 2200;
            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;
        }
        .layer-filter-option.is-child {
            width: calc(100% - 22px);
            margin-left: 22px;
            min-height: 28px;
            padding: 5px 8px;
            background: #fff;
            color: #526579;
            font-size: 12px;
        }
        .layer-filter-option.is-child.is-industry-source {
            gap: 4px;
        }
        .layer-filter-option.is-child.is-industry-source select {
            width: 100%;
            color: #315a80;
            background: #fff;
        }
        .layer-filter-option.is-disabled {
            opacity: 0.48;
            cursor: not-allowed;
        }
        .layer-filter-divider {
            height: 1px;
            margin: 3px 8px;
            background: rgba(31,45,61,0.09);
        }
        .layer-filter-option.is-map-style {
            background: #f3f8ff;
            color: #315a80;
        }
        .layer-default-actions {
            display: flex;
            flex-direction: column;
            gap: 7px;
            margin: 2px 3px 0;
            padding: 9px 5px 2px;
            border-top: 1px solid rgba(31,45,61,0.09);
        }
        .layer-default-save {
            width: 100%;
            min-height: 34px;
            border: 1px solid #91caff;
            border-radius: 10px;
            background: #e6f4ff;
            color: #0958d9;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
        }
        .layer-default-save:active {
            background: #bae0ff;
        }
        .layer-default-save:disabled {
            opacity: 0.48;
            cursor: not-allowed;
        }
        .layer-default-meta {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 8px;
        }
        .layer-default-meta small {
            flex: 1 1 auto;
            color: #8a98a5;
            font-size: 10px;
            line-height: 1.4;
        }
        .layer-default-reset {
            flex: 0 0 auto;
            border: none;
            background: transparent;
            color: #66788a;
            padding: 0;
            font-size: 10px;
            line-height: 1.4;
            cursor: pointer;
            text-decoration: underline;
            text-underline-offset: 2px;
        }
        .layer-default-reset[hidden] {
            display: none;
        }
        .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 {
            flex: 1;
            min-width: 0;
            font-size: 18px;
            font-weight: 700;
            color: #262626;
            line-height: 1.3;
            word-break: break-word;
        }
        .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: 6px;
        }
        .wo-photo-item,
        .wo-photo-missing {
            min-height: 92px;
            border-radius: 8px;
            overflow: hidden;
            aspect-ratio: 1 / 1;
        }
        .wo-photo-item {
            position: relative;
            cursor: zoom-in;
            box-shadow: 0 3px 10px rgba(15,35,60,0.10);
            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: 6px;
        }
        .wo-detail-action-groups {
            display: grid;
            gap: 10px;
            width: 100%;
            grid-column: 1 / -1;
        }
        .wo-flow-guide {
            margin: 0 0 12px;
            padding: 13px 14px 12px;
            border: 1px solid #dce9f7;
            border-radius: 14px;
            background: linear-gradient(135deg, #f7fbff 0%, #f3f9ff 100%);
            box-shadow: 0 6px 16px rgba(24, 86, 140, 0.05);
        }
        .wo-flow-guide.is-accept {
            border-color: #ffe1a3;
            background: linear-gradient(135deg, #fffaf0 0%, #fff7e6 100%);
        }
        .wo-flow-guide.is-review {
            border-color: #ffd8ab;
            background: linear-gradient(135deg, #fffaf5 0%, #fff5eb 100%);
        }
        .wo-flow-guide.is-ended {
            border-color: #ccebd5;
            background: linear-gradient(135deg, #f6fff8 0%, #f1fff4 100%);
        }
        .wo-flow-guide-head {
            display: flex;
            align-items: center;
            gap: 7px;
            min-width: 0;
            margin-bottom: 9px;
        }
        .wo-flow-guide-status-dot {
            width: 8px;
            height: 8px;
            flex: 0 0 auto;
            border-radius: 50%;
            background: #1890ff;
            box-shadow: 0 0 0 4px rgba(24, 144, 255, 0.11);
        }
        .wo-flow-guide.is-accept .wo-flow-guide-status-dot {
            background: #faad14;
            box-shadow: 0 0 0 4px rgba(250, 173, 20, 0.12);
        }
        .wo-flow-guide.is-review .wo-flow-guide-status-dot {
            background: #fa8c16;
            box-shadow: 0 0 0 4px rgba(250, 140, 22, 0.12);
        }
        .wo-flow-guide.is-ended .wo-flow-guide-status-dot {
            background: #52c41a;
            box-shadow: 0 0 0 4px rgba(82, 196, 26, 0.12);
        }
        .wo-flow-guide-status {
            color: #1f2d3d;
            font-size: 14px;
            font-weight: 800;
            line-height: 1.35;
        }
        .wo-flow-guide-role {
            margin-left: auto;
            max-width: 42%;
            overflow: hidden;
            color: #7a8794;
            font-size: 12px;
            line-height: 1.35;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .wo-flow-guide-row {
            display: grid;
            grid-template-columns: 58px minmax(0, 1fr);
            gap: 8px;
            align-items: start;
            color: #1f2d3d;
            font-size: 14px;
            line-height: 1.6;
        }
        .wo-flow-guide-row + .wo-flow-guide-row {
            margin-top: 5px;
        }
        .wo-flow-guide-label {
            color: #718096;
            font-size: 12px;
            line-height: 1.85;
        }
        .wo-flow-guide-row strong {
            color: #1f2d3d;
            font-weight: 800;
        }
        .wo-flow-guide-row.is-next > span:last-child {
            color: #526579;
        }
        .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.wo-detail-action-group-main {
            padding: 11px;
            border-color: rgba(24, 144, 255, 0.17);
            background: linear-gradient(180deg, #f8fcff 0%, #f2f8ff 100%);
        }
        .wo-detail-action-group-main .wo-detail-action-group-title {
            color: #526579;
        }
        .wo-detail-action-group-main .wo-detail-action-row button:only-child {
            min-height: 46px;
            font-size: 16px;
        }
        .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;
        }
        .wo-detail-action-disclosure {
            overflow: hidden;
            border: 1px solid rgba(31,45,61,0.08);
            border-radius: 12px;
            background: #fff;
        }
        .wo-detail-action-disclosure > summary {
            display: flex;
            align-items: center;
            gap: 8px;
            min-height: 42px;
            padding: 0 12px;
            color: #526579;
            font-size: 13px;
            font-weight: 700;
            line-height: 1.4;
            cursor: pointer;
            list-style: none;
            user-select: none;
        }
        .wo-detail-action-disclosure > summary::-webkit-details-marker {
            display: none;
        }
        .wo-detail-action-disclosure > summary::after {
            width: 7px;
            height: 7px;
            margin-left: auto;
            border-right: 1.5px solid #8da0b2;
            border-bottom: 1.5px solid #8da0b2;
            content: '';
            transform: rotate(45deg) translateY(-2px);
            transition: transform 0.16s ease;
        }
        .wo-detail-action-disclosure[open] > summary::after {
            transform: rotate(225deg) translate(-2px, -1px);
        }
        .wo-detail-action-disclosure > summary small {
            overflow: hidden;
            margin-left: auto;
            color: #9aa8b7;
            font-size: 11px;
            font-weight: 400;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .wo-detail-action-disclosure-body {
            padding: 0 10px 10px;
        }
        .wo-detail-action-disclosure-body .wo-detail-action-row button {
            min-height: 40px;
            font-size: 14px;
        }
        #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); }
        }
        .workorder-blocking-overlay {
            position: fixed;
            inset: 0;
            z-index: 10040;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px;
            background: rgba(20, 32, 45, 0.28);
            backdrop-filter: blur(1px);
            cursor: wait;
        }
        .workorder-blocking-overlay.show {
            display: flex;
        }
        .workorder-blocking-card {
            display: flex;
            align-items: center;
            gap: 10px;
            max-width: min(360px, 88vw);
            padding: 13px 16px;
            border: 1px solid rgba(24, 144, 255, 0.16);
            border-radius: 13px;
            background: rgba(255, 255, 255, 0.98);
            box-shadow: 0 12px 30px rgba(15, 35, 60, 0.18);
            color: #1f2d3d;
            font-size: 13px;
            font-weight: 700;
            line-height: 1.5;
            text-align: left;
        }
        .workorder-blocking-spinner {
            width: 18px;
            height: 18px;
            flex: 0 0 auto;
            border: 2px solid rgba(24, 144, 255, 0.2);
            border-top-color: #1890ff;
            border-radius: 50%;
            animation: woDetailBusySpin 0.85s linear infinite;
        }
        .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;
        }
        .personal-reminder-notice {
            position: fixed;
            top: 58px;
            left: 50%;
            z-index: 2031;
            display: flex;
            align-items: center;
            gap: 12px;
            max-width: calc(100vw - 24px);
            min-height: 36px;
            padding: 7px 12px;
            transform: translateX(-50%);
            border: 1px solid #ffd591;
            border-radius: 999px;
            background: #fffbe6;
            color: #874d00;
            box-shadow: 0 6px 16px rgba(135, 77, 0, 0.12);
            font-size: 12px;
            font-weight: 800;
        }
        .personal-reminder-notice[hidden] { display: none; }
        .personal-reminder-notice em { color: #d46b08; font-style: normal; white-space: nowrap; }
        .home-more-footer-btn.reminder.needs-refill {
            border-color: #ffd591;
            background: #fffbe6;
            color: #ad6800;
        }
        .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); }
        }

        /* 村组地图：名称标签本身即为点击点，不再叠加无意义的“组”图标。 */
        /* 不透明卡片而非裸文字，保证卫星图/普通图任意底色下都能看清。 */
        .village-spatial-group-tag {
            max-width: 142px;
            padding: 4px 8px;
            overflow: hidden;
            border: 1px solid #db2777;
            border-radius: 7px;
            background: rgba(255, 255, 255, 0.96);
            box-shadow: 0 2px 7px rgba(219, 39, 119, 0.2);
            color: #9d174d;
            font-size: 13px;
            font-weight: 750;
            line-height: 1.25;
            text-align: center;
            text-overflow: ellipsis;
            white-space: nowrap;
            transform: translate(-50%, -100%);
            user-select: none;
        }
        .village-spatial-group-tag.is-draft {
            border: 2px dashed #db2777;
            background: #fdf2f8;
            color: #9d174d;
            box-shadow: 0 4px 12px rgba(219, 39, 119, 0.28);
        }
        /* 同一村组的多块区域共用名字，右上角小角标标出“第几块”。 */
        .village-spatial-group-tag-badge {
            display: inline-block;
            min-width: 13px;
            margin-left: 4px;
            padding: 0 3px;
            border-radius: 6px;
            background: #db2777;
            color: #fff;
            font-size: 10px;
            font-weight: 800;
            line-height: 14px;
            vertical-align: 1px;
        }
        /* 点中任一块时整组一起亮起来。 */
        .village-spatial-group-tag.is-active {
            border-color: #ff7a18;
            background: #fff4e8;
            color: #b85300;
            box-shadow: 0 4px 14px rgba(255, 122, 24, 0.45);
        }
        .village-spatial-group-tag.is-active .village-spatial-group-tag-badge {
            background: #ff7a18;
        }

        /* 村组/村委会名字气泡：干净卡片，标题+说明+底部横排按钮，取代裸文字堆叠。 */
        .village-spatial-info-card {
            min-width: 176px;
            max-width: 248px;
            padding: 13px 14px 12px;
            border-radius: 15px;
            background: #fff;
            border: 1px solid rgba(219, 39, 119, 0.16);
            box-shadow: 0 10px 26px rgba(157, 23, 77, 0.18);
        }
        .village-spatial-info-title {
            font-size: 15px;
            font-weight: 800;
            color: #1f2d3d;
            line-height: 1.3;
            word-break: break-word;
        }
        .village-spatial-info-meta {
            margin-top: 4px;
            color: #7a8794;
            font-size: 12px;
            line-height: 1.5;
        }
        .village-spatial-info-actions {
            display: flex;
            gap: 8px;
            margin-top: 11px;
        }
        .village-spatial-info-nav,
        .village-spatial-info-edit {
            flex: 1;
            min-height: 34px;
            padding: 0 10px;
            border-radius: 10px;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
        }
        .village-spatial-info-nav {
            border: 1px solid #db2777;
            background: #fff;
            color: #9d174d;
        }
        .village-spatial-info-edit {
            border: none;
            background: #db2777;
            color: #fff;
        }
        .village-spatial-info-area-tag {
            margin-left: 6px;
            padding: 1px 6px;
            border-radius: 7px;
            background: #fff1e4;
            color: #b85300;
            font-size: 11px;
            font-weight: 800;
            vertical-align: 1px;
        }
        .village-spatial-info-focus {
            width: 100%;
            min-height: 34px;
            margin-top: 8px;
            padding: 0 10px;
            border: 1px solid #ff8c1a;
            border-radius: 10px;
            background: #fff7ef;
            color: #b85300;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
        }

        /* 村域名称标签：金黄描边卡片，与村域边界线同色系呼应。 */
        .village-spatial-boundary-label {
            max-width: 168px;
            padding: 4px 9px;
            overflow: hidden;
            border: 1px solid #ffb300;
            border-radius: 7px;
            background: rgba(255, 255, 255, 0.96);
            box-shadow: 0 2px 7px rgba(255, 179, 0, 0.24);
            color: #7a4a00;
            font-size: 13px;
            font-weight: 750;
            line-height: 1.25;
            text-align: center;
            text-overflow: ellipsis;
            white-space: nowrap;
            user-select: none;
            cursor: pointer;
            transform: translate(-50%, -100%);
        }

        /* 连续录入时仅保留一个贴着地图的轻量输入条，不需往返管理页面。 */
        .vsm-group-batch-composer {
            position: fixed;
            z-index: 1325;
            right: 12px;
            bottom: calc(14px + env(safe-area-inset-bottom));
            left: 12px;
            padding: 11px;
            border: 1px solid rgba(210, 225, 215, 0.96);
            border-radius: 16px;
            background: rgba(255, 255, 255, 0.97);
            box-shadow: 0 10px 28px rgba(18, 52, 35, 0.2);
            backdrop-filter: blur(12px);
        }
        .vsm-batch-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            min-height: 30px;
        }
        .vsm-batch-head > div {
            min-width: 0;
            display: flex;
            align-items: baseline;
            gap: 7px;
        }
        .vsm-batch-head strong {
            overflow: hidden;
            color: #213a2d;
            font-size: 14px;
            font-weight: 800;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .vsm-batch-head span {
            flex: 0 0 auto;
            color: #5c7b68;
            font-size: 12px;
        }
        .vsm-batch-head button {
            flex: 0 0 auto;
            min-height: 30px;
            padding: 0 10px;
            border: 1px solid #d7e5db;
            border-radius: 8px;
            background: #f7fbf8;
            color: #426a53;
            font-size: 12px;
            font-weight: 750;
        }
        .vsm-batch-entry {
            display: flex;
            gap: 8px;
            margin-top: 8px;
        }
        .vsm-batch-entry input {
            min-width: 0;
            flex: 1;
            height: 40px;
            padding: 0 11px;
            border: 1px solid #cfdde5;
            border-radius: 10px;
            background: #fff;
            color: #1f2d3d;
            font-size: 14px;
        }
        .vsm-batch-entry input:focus {
            outline: none;
            border-color: #4a90eb;
            box-shadow: 0 0 0 3px rgba(74, 144, 235, 0.14);
        }
        .vsm-batch-entry button {
            flex: 0 0 auto;
            min-width: 96px;
            height: 40px;
            padding: 0 12px;
            border: 1px solid #278653;
            border-radius: 10px;
            background: #278653;
            color: #fff;
            font-size: 13px;
            font-weight: 800;
        }
        .vsm-batch-entry button:disabled {
            border-color: #c7d9ce;
            background: #c7d9ce;
            color: rgba(255, 255, 255, 0.86);
        }
        .vsm-batch-position {
            margin-top: 7px;
            color: #61766a;
            font-size: 12px;
            line-height: 1.45;
        }
        .vsm-group-batch-composer.is-busy {
            pointer-events: none;
            opacity: 0.72;
        }
        @media (min-width: 700px) {
            .vsm-group-batch-composer {
                right: auto;
                bottom: 24px;
                left: 24px;
                width: 420px;
            }
        }

        /* 发布式工单：高频现场上报使用一条连续的发布流，其他单据保持原有专用表单。 */
        #createWOModal.workorder-publish-modal[data-wo-publish-compose="1"] {
            width: min(94vw, 480px) !important;
            max-width: 480px !important;
            padding: 18px 16px 16px;
            background: #fff;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-modal-title {
            margin: 0 0 12px;
            color: #172b1f;
            font-size: 19px;
            font-weight: 800;
            letter-spacing: 0.01em;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-issue-field {
            margin: 0 0 12px !important;
            padding: 0 0 12px;
            border-bottom: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssueContentTitle {
            position: absolute !important;
            width: 1px !important;
            height: 1px !important;
            overflow: hidden !important;
            clip: rect(0 0 0 0) !important;
            white-space: nowrap !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssue {
            min-height: 102px;
            padding: 4px 1px !important;
            border: none !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: #1f2937;
            font-size: 16px !important;
            line-height: 1.65;
            resize: none;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssue::placeholder {
            color: #98a4ad;
        }
        #createWOModal[data-wo-publish-compose="1"] #woCategoryField {
            margin: 0 0 10px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woCategoryField > label {
            margin-bottom: 7px !important;
            color: #62766a !important;
            font-size: 12px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woCategoryBtns {
            gap: 7px !important;
            overflow-x: auto;
            padding-bottom: 2px;
            scrollbar-width: none;
        }
        #createWOModal[data-wo-publish-compose="1"] #woCategoryBtns::-webkit-scrollbar {
            display: none;
        }
        #createWOModal[data-wo-publish-compose="1"] #woCategoryBtns [data-wo-category] {
            flex: 0 0 auto !important;
            min-width: 76px;
            padding: 7px 11px !important;
            border-radius: 999px !important;
            font-size: 13px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags {
            margin: 0 0 10px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags > div:first-child {
            color: #7b8b82 !important;
            font-size: 12px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags button {
            padding: 6px 10px !important;
            border-radius: 999px !important;
            color: #567062 !important;
            font-size: 12px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-photo-field {
            position: relative;
            margin: 0 0 12px !important;
            padding: 0 0 12px;
            border-bottom: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPhotoLabel {
            display: block;
            margin: 0 0 8px !important;
            color: #243a2b !important;
            font-size: 13px !important;
        }
        #createWOModal[data-wo-publish-compose="1"][data-wo-photo-required="1"] #woPhotoLabel::after {
            content: "必填";
            display: inline-flex;
            margin-left: 6px;
            padding: 1px 6px;
            border-radius: 999px;
            background: #fff1f0;
            color: #cf3f37;
            font-size: 11px;
            font-weight: 700;
            line-height: 1.5;
            vertical-align: 1px;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 8px;
            margin: 0;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-cell,
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-cell img,
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-add-card {
            border-radius: 10px;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-add-card {
            min-height: 0;
            gap: 2px;
            padding: 6px;
            color: #5a6d62;
            font-size: 12px;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-add-card .plus {
            color: #2c8b57;
            font-size: 26px;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-photo-field .photo-hint {
            display: none;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-location-field {
            position: relative;
            margin: 0 0 10px !important;
            padding: 12px;
            border: 1px solid #e4ece6;
            border-radius: 14px;
            background: #fbfdfb;
        }
        #createWOModal[data-wo-publish-compose="1"] #woDispatchFields {
            margin: 0 0 12px !important;
            padding: 12px !important;
            border: 1px solid #e4ece6;
            border-radius: 14px;
            background: #fbfdfb;
        }
        #createWOModal[data-wo-publish-compose="1"] #woDispatchFields > div {
            margin: 0 !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woDispatchFields label {
            display: block;
            margin: 0 0 7px !important;
            color: #344b3d;
            font-size: 13px !important;
            font-weight: 700;
        }
        #createWOModal[data-wo-publish-compose="1"] #woDispatchFields select {
            min-height: 40px;
            padding: 7px 0 !important;
            border: none !important;
            border-radius: 0 !important;
            border-bottom: 1px solid #dce8df !important;
            background: transparent !important;
            color: #243a2b;
            font-size: 15px !important;
            font-weight: 700;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields {
            margin: 0 0 12px !important;
            padding: 12px !important;
            border: 1px solid #e4ece6;
            border-radius: 14px;
            background: #fbfdfb;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields > div {
            margin: 0 !important;
            padding: 10px 0;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields > div + div {
            border-top: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields label {
            display: block;
            margin: 0 0 7px !important;
            color: #344b3d;
            font-size: 13px !important;
            font-weight: 700;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields select,
        #createWOModal[data-wo-publish-compose="1"] #woProjectFields input[type="text"] {
            min-height: 40px;
            padding: 7px 0 !important;
            border: none !important;
            border-radius: 0 !important;
            border-bottom: 1px solid #dce8df !important;
            background: transparent !important;
            color: #243a2b;
            font-size: 15px !important;
            font-weight: 700;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectReviewField label {
            display: flex;
            align-items: center;
            gap: 8px;
            font-weight: 500;
        }
        #createWOModal[data-wo-publish-compose="1"] #woProjectReviewHint {
            margin-top: 6px !important;
            color: #718096 !important;
            font-size: 12px !important;
            line-height: 1.55;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field::before {
            display: inline-block;
            width: 22px;
            margin-right: 4px;
            color: #2d8557;
            font-size: 16px;
            font-weight: 700;
            line-height: 1;
            vertical-align: middle;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field::before { content: "⌂"; }
        #createWOModal[data-wo-publish-compose="1"] #woLocationInfo {
            display: none !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-location-actions {
            margin-top: 10px !important;
            padding-top: 10px;
            border-top: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-location-actions button {
            min-height: 36px;
            padding: 7px 8px !important;
            border-radius: 9px !important;
            font-size: 13px !important;
            font-weight: 700;
        }
        #createWOModal[data-wo-publish-compose="1"] #woPickMapLocationBtn {
            background: #278653 !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woUseCurrentLocationBtn {
            border: 1px solid #cfe2d6 !important;
            background: #f0f8f2 !important;
            color: #28764d !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-address-block {
            margin-top: 10px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] #woLocationAddress {
            min-height: 52px;
            padding: 8px 0 !important;
            border: none !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: #374151;
            font-size: 14px !important;
            line-height: 1.5;
            resize: vertical;
        }
        #createWOModal[data-wo-publish-compose="1"] #woLocationAddressHint {
            display: none !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-row {
            position: relative;
            display: flex;
            align-items: center;
            gap: 8px;
            min-height: 54px;
            margin: 0 !important;
            padding: 0 12px;
            border-top: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-row > label {
            flex: 0 0 auto;
            margin: 0 !important;
            color: #344b3d !important;
            font-size: 14px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field {
            display: grid;
            grid-template-columns: 22px max-content minmax(0, 1fr);
            grid-template-areas:
                "icon label select"
                "hint hint hint";
            column-gap: 8px;
            row-gap: 8px;
            min-height: 56px;
            padding: 10px 12px;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field::before {
            grid-area: icon;
            margin: 0;
            align-self: center;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field > label {
            grid-area: label;
            align-self: center;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field > select {
            grid-area: select;
            width: 100% !important;
            align-self: center;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-row > select,
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-row > input[type="date"] {
            flex: 1;
            min-width: 0;
            min-height: 38px;
            padding: 5px 0 !important;
            border: none !important;
            border-radius: 0 !important;
            background: transparent !important;
            box-shadow: none !important;
            color: #2d8557;
            font-size: 14px !important;
            font-weight: 700;
            text-align: right;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-village-field #woVillageRecognitionHint {
            position: static !important;
            grid-area: hint;
            margin: 0 !important;
            padding: 8px 10px !important;
            border-radius: 10px !important;
            font-size: 12px !important;
            line-height: 1.45 !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-due-field {
            display: block;
            min-height: 0;
            margin: 12px 0 14px !important;
            padding: 0 12px;
            border: 1px solid #e4ece6;
            border-radius: 14px;
            background: #fbfdfb;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-due-field #woDueTimeField {
            display: grid;
            flex: 1;
            gap: 8px;
            min-height: 54px;
            padding: 10px 0;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-due-field #woDueTime {
            flex: 1;
            min-width: 0;
            min-height: 38px;
            padding: 8px !important;
            border: 1px solid #dbe5dd !important;
            border-radius: 8px !important;
            background: transparent !important;
            box-shadow: none !important;
            color: #2d8557;
            font-size: 14px !important;
            font-weight: 700;
            text-align: left;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-action-row {
            margin-top: 6px !important;
            padding-top: 10px;
            border-top: 1px solid #edf1ee;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-action-row .modal-action-btn {
            min-height: 46px;
            border-radius: 12px !important;
        }
        #createWOModal[data-wo-publish-compose="1"] .wo-publish-action-row .modal-action-btn.primary {
            background: #278653 !important;
        }
        @media (max-width: 360px) {
            #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
            #createWOModal[data-wo-publish-compose="1"] .wo-publish-location-actions {
                gap: 6px !important;
            }
            #createWOModal[data-wo-publish-compose="1"] .wo-publish-location-actions button {
                font-size: 12px !important;
            }
        }

        /* 产业详情：借鉴本地生活详情页的信息层级，首图、名称、地址优先，台账资料后置。 */
        .industry-display-media {
            position: relative;
            overflow: hidden;
            border-radius: 18px;
            background: #edf3ef;
            box-shadow: 0 8px 20px rgba(17, 57, 38, 0.1);
        }
        .industry-display-hero {
            display: block;
            width: 100%;
            padding: 0;
            border: 0;
            background: #edf3ef;
            cursor: zoom-in;
        }
        .industry-display-hero img {
            display: block;
            width: 100%;
            aspect-ratio: 1.78 / 1;
            object-fit: cover;
        }
        .industry-display-album {
            position: absolute;
            right: 10px;
            bottom: 10px;
            min-height: 30px;
            padding: 5px 10px;
            border: 0;
            border-radius: 999px;
            background: rgba(15, 30, 23, 0.72);
            color: #fff;
            font-size: 12px;
            font-weight: 700;
            cursor: pointer;
        }
        .industry-display-overview {
            padding: 2px 2px 0;
        }
        .industry-display-overview .industry-detail-summary-name {
            margin: 0;
            color: #172923;
            font-size: 22px;
            font-weight: 850;
            line-height: 1.35;
            letter-spacing: .1px;
        }
        .industry-display-overview .industry-detail-chip-row {
            margin: 10px 0 0;
            gap: 7px;
        }
        .industry-display-overview .industry-detail-chip {
            min-height: 26px;
            padding: 4px 9px;
            background: #f2f6f3;
            color: #63756b;
        }
        .industry-display-overview .industry-detail-chip.primary {
            background: #edf8f1;
            color: #247a50;
        }
        .industry-display-address {
            display: flex;
            align-items: flex-start;
            gap: 9px;
            margin: 14px 0 0;
            padding: 13px 0 0;
            border-top: 1px solid #edf1ee;
        }
        .industry-display-address-icon {
            display: inline-flex;
            width: 20px;
            height: 20px;
            flex: 0 0 auto;
            align-items: center;
            justify-content: center;
            border-radius: 50% 50% 50% 0;
            transform: rotate(-45deg);
            background: #2a9b62;
            color: #fff;
            font-size: 9px;
            box-shadow: 0 3px 8px rgba(29, 132, 80, .2);
        }
        .industry-display-address > div { min-width: 0; }
        .industry-display-address small {
            display: block;
            margin-bottom: 2px;
            color: #87958e;
            font-size: 12px;
        }
        .industry-display-address strong {
            display: block;
            color: #31453b;
            font-size: 14px;
            font-weight: 700;
            line-height: 1.55;
            word-break: break-word;
        }
        .industry-display-intro {
            margin-top: 2px;
            padding: 16px 2px 0;
            border-top: 1px solid #edf1ee;
        }
        .industry-display-intro .industry-detail-section-title { margin-bottom: 8px; }
        .industry-display-intro .industry-detail-paragraph {
            color: #46584f;
            font-size: 14px;
            line-height: 1.75;
        }
        .industry-display-manage-data {
            margin-top: 0;
            border-top: 0;
        }
        .industry-display-manage-data summary {
            display: flex;
            min-height: 52px;
            align-items: center;
            justify-content: space-between;
            color: #53675d;
            font-size: 14px;
            font-weight: 800;
            cursor: pointer;
            list-style: none;
        }
        .industry-display-manage-data summary::-webkit-details-marker { display: none; }
        .industry-display-manage-data summary span {
            color: #91a098;
            font-size: 12px;
            font-weight: 500;
        }
        .industry-display-manage-data[open] summary span { color: #2c8958; }
        .industry-display-manage-rows {
            margin: 0 0 2px;
            padding: 9px 12px;
            border-radius: 13px;
            background: #f7faf8;
        }
        .industry-display-manage-rows .industry-detail-row { padding: 5px 0; }
        .industry-display-manage-divider {
            height: 1px;
            margin: 7px 0;
            background: #e6ede9;
        }
        .industry-detail-toolbar {
            margin-top: 12px;
            padding-top: 12px;
        }
        .industry-detail-primary-actions {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
        .industry-detail-primary-actions .industry-nav-btn {
            background: #278653 !important;
            box-shadow: 0 7px 15px rgba(32, 129, 79, .16);
        }
        .industry-detail-primary-actions .industry-map-btn {
            border: 1px solid #cfe3d6;
            background: #f5faf7 !important;
            color: #276a49;
        }
        .industry-detail-primary-actions .industry-adjust-btn {
            grid-column: 1 / -1;
            border: 1px solid #d7e4dc;
            background: #fff !important;
            color: #65776d;
        }
        @media (max-width: 699px) {
            .point-modal.industry-detail-modal {
                top: 0;
                left: 0;
                width: 100%;
                max-width: none;
                max-height: none;
                height: var(--app-height, 100vh);
                padding: 0 0 calc(12px + env(safe-area-inset-bottom));
                border-radius: 0;
                background: #fff;
                transform: translateY(24px);
            }
            .point-modal.industry-detail-modal.show { transform: translateY(0); }
            .industry-detail-modal .header {
                position: absolute;
                z-index: 3;
                top: calc(8px + env(safe-area-inset-top));
                right: 12px;
                left: auto;
                margin: 0;
                padding: 0;
                background: transparent;
            }
            .industry-detail-modal .header .close {
                display: flex;
                width: 36px;
                height: 36px;
                align-items: center;
                justify-content: center;
                border-radius: 50%;
                background: rgba(20, 35, 27, .52);
                color: #fff;
                font-size: 25px;
                line-height: 1;
            }
            .industry-detail-body {
                gap: 0;
                padding: 0;
            }
            .industry-display-media { border-radius: 0; box-shadow: none; }
            .industry-display-hero img { aspect-ratio: 1.55 / 1; }
            .industry-display-overview,
            .industry-display-intro,
            .industry-display-manage-data {
                margin-right: 16px;
                margin-left: 16px;
            }
            .industry-display-overview { padding-top: 18px; }
            .industry-display-overview .industry-detail-summary-name { font-size: 22px; }
            .industry-detail-toolbar {
                margin: 14px 16px 0;
                padding-top: 12px;
            }
            .industry-detail-admin-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
        }

        /* 产业详情：固定窗口工具栏，高频导航靠近地址，低频管理动作收进更多。 */
        .point-modal.industry-detail-modal {
            display: none;
            flex-direction: column;
            padding: 0 !important;
            overflow: hidden !important;
            background: #fff;
        }
        .point-modal.industry-detail-modal.show { display: flex !important; }
        .industry-detail-topbar {
            position: relative;
            z-index: 5;
            display: flex;
            min-height: 56px;
            flex: 0 0 56px;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 0 16px 0 18px;
            border-bottom: 1px solid #edf1ee;
            background: rgba(255,255,255,.97);
            box-shadow: 0 2px 10px rgba(27,61,40,.035);
        }
        .industry-detail-topbar-title {
            min-width: 0;
            color: #33463a;
            font-size: 15px;
            font-weight: 800;
            line-height: 1.3;
            letter-spacing: .01em;
        }
        .industry-detail-topbar-tools {
            display: flex;
            flex: 0 0 auto;
            align-items: center;
            gap: 4px;
        }
        .industry-detail-tool-btn {
            display: inline-flex;
            width: 36px;
            height: 36px;
            align-items: center;
            justify-content: center;
            padding: 0;
            border: 0;
            border-radius: 10px;
            background: transparent;
            color: #60756a;
            cursor: pointer;
            transition: color .16s ease, background .16s ease, transform .16s ease;
        }
        .industry-detail-tool-btn:hover { background: #f0f6f2; color: #22774c; }
        .industry-detail-tool-btn:active { transform: scale(.94); }
        .industry-detail-tool-btn:disabled { opacity: .38; cursor: default; }
        .industry-detail-tool-btn svg {
            width: 20px;
            height: 20px;
            fill: none;
            stroke: currentColor;
            stroke-width: 1.9;
            stroke-linecap: round;
            stroke-linejoin: round;
        }
        .industry-detail-close-btn {
            width: auto;
            gap: 4px;
            padding: 0 10px;
            background: #f3f6f4;
            color: #43594c;
            font-size: 14px;
            font-weight: 600;
            white-space: nowrap;
        }
        .industry-detail-close-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
        .industry-detail-close-btn:hover { background: #e9efeb; color: #33463a; }
        .industry-detail-footer {
            flex: 0 0 auto;
            padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
            border-top: 1px solid #edf1ee;
            background: #fff;
        }
        .industry-detail-footer .modal-action-btn {
            width: 100%;
            min-height: 44px;
            margin: 0;
            border-radius: 10px;
        }
        .industry-detail-scroll {
            min-height: 0;
            flex: 1 1 auto;
            overflow-x: hidden;
            overflow-y: auto;
            overscroll-behavior: contain;
            scrollbar-gutter: stable;
        }
        .industry-detail-scroll .industry-detail-body {
            display: flex;
            flex-direction: column;
            gap: 0;
            padding: 18px;
        }
        .industry-detail-scroll .industry-display-media { margin: 0; }
        .industry-detail-scroll #industryPointPhotos:empty { display: none; }
        .industry-detail-scroll .industry-display-overview { padding-top: 18px; }
        .industry-detail-scroll .industry-detail-summary-head { display: block; }
        .industry-detail-scroll .industry-display-address {
            align-items: center;
            margin-top: 15px;
            padding: 12px 0;
            border-top: 1px solid #edf1ee;
        }
        .industry-display-address-copy {
            min-width: 0;
            flex: 1 1 auto;
            padding: 0;
            border: 0;
            background: transparent;
            color: inherit;
            cursor: pointer;
            text-align: left;
        }
        .industry-display-address-copy small {
            display: block;
            margin-bottom: 2px;
            color: #87958e;
            font-size: 12px;
            line-height: 1.35;
        }
        .industry-display-address-copy strong {
            display: block;
            overflow: hidden;
            color: #31453b;
            font-size: 14px;
            font-weight: 700;
            line-height: 1.5;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .industry-inline-nav-btn {
            display: inline-flex;
            min-height: 34px;
            flex: 0 0 auto;
            align-items: center;
            gap: 4px;
            margin-left: 8px;
            padding: 7px 10px 7px 11px;
            border: 1px solid #bde7ca;
            border-radius: 10px;
            background: #edf9f1;
            color: #20814f;
            font-size: 13px;
            font-weight: 800;
            line-height: 1;
            cursor: pointer;
        }
        .industry-inline-nav-btn svg {
            width: 15px;
            height: 15px;
            fill: none;
            stroke: currentColor;
            stroke-width: 2;
            stroke-linecap: round;
            stroke-linejoin: round;
        }
        .industry-inline-nav-btn:active { transform: scale(.97); }
        .industry-detail-paragraph.is-collapsed {
            display: -webkit-box;
            overflow: hidden;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 6;
        }
        .industry-intro-toggle {
            margin-top: 8px;
            padding: 0;
            border: 0;
            background: transparent;
            color: #258253;
            font-size: 13px;
            font-weight: 750;
            cursor: pointer;
        }
        .industry-detail-more-overlay {
            position: fixed;
            z-index: 2168;
            inset: 0;
            display: none;
            background: rgba(13,31,20,.34);
        }
        .industry-detail-more-overlay.show { display: block; }
        .industry-detail-more-sheet {
            position: fixed;
            z-index: 2169;
            bottom: 0;
            left: 50%;
            width: min(100%, 460px);
            padding: 9px 14px calc(14px + env(safe-area-inset-bottom));
            border-radius: 22px 22px 0 0;
            background: #fff;
            box-shadow: 0 -18px 42px rgba(16,43,28,.22);
            transform: translate(-50%, 110%);
            transition: transform .22s ease;
        }
        .industry-detail-more-sheet.show { transform: translate(-50%, 0); }
        .industry-detail-more-handle {
            width: 34px;
            height: 4px;
            margin: 1px auto 10px;
            border-radius: 999px;
            background: #d9e4dc;
        }
        .industry-detail-more-sheet h2 {
            margin: 0 2px 9px;
            color: #263a2e;
            font-size: 16px;
            font-weight: 850;
            line-height: 1.45;
        }
        .industry-detail-more-list {
            overflow: hidden;
            border: 1px solid #e8efea;
            border-radius: 15px;
            background: #fff;
        }
        .industry-detail-more-item {
            display: flex;
            width: 100%;
            min-height: 53px;
            flex-direction: column;
            align-items: flex-start;
            justify-content: center;
            gap: 2px;
            padding: 10px 13px;
            border: 0;
            border-bottom: 1px solid #edf1ee;
            background: #fff;
            color: #34483b;
            cursor: pointer;
            text-align: left;
        }
        .industry-detail-more-item:last-child { border-bottom: 0; }
        .industry-detail-more-item:hover { background: #f7fbf8; }
        .industry-detail-more-item span { font-size: 14px; font-weight: 780; line-height: 1.35; }
        .industry-detail-more-item small { color: #84938b; font-size: 12px; line-height: 1.35; }
        .industry-detail-more-divider { height: 8px; border-top: 1px solid #edf1ee; background: #f7f9f8; }
        .industry-detail-more-item.is-danger { color: #c84545; }
        .industry-detail-more-item.is-danger small { color: #b98787; }
        .industry-detail-more-cancel {
            width: 100%;
            min-height: 47px;
            margin-top: 10px;
            border: 0;
            border-radius: 14px;
            background: #f3f6f4;
            color: #52665a;
            font-size: 14px;
            font-weight: 800;
            cursor: pointer;
        }
        @media (min-width: 700px) {
            .point-modal.industry-detail-modal { width: min(760px, calc(100vw - 96px)); max-height: min(84vh, 860px); }
            .industry-detail-more-sheet {
                bottom: 22px;
                width: min(410px, calc(100vw - 32px));
                border-radius: 19px;
                transform: translate(-50%, calc(110% + 22px));
            }
            .industry-detail-more-sheet.show { transform: translate(-50%, 0); }
        }
        @media (max-width: 699px) {
            .point-modal.industry-detail-modal { height: var(--app-height, 100vh); padding: 0 !important; }
            .industry-detail-topbar { min-height: calc(56px + env(safe-area-inset-top)); flex-basis: calc(56px + env(safe-area-inset-top)); padding: env(safe-area-inset-top) 12px 0 16px; }
            .industry-detail-scroll .industry-detail-body { padding: 0; }
            .industry-detail-scroll .industry-display-media { border-radius: 0; box-shadow: none; }
            .industry-detail-scroll .industry-display-overview,
            .industry-detail-scroll .industry-display-intro,
            .industry-detail-scroll .industry-display-manage-data { margin-right: 16px; margin-left: 16px; }
            .industry-detail-scroll .industry-display-overview { padding-top: 18px; }
        }
/* 个人微信身份：电脑端扫码登录。登录码为短时一次性挑战，不是正式会话 token。 */
.auth-scan-login-btn {
    margin-top: 10px;
    background: #f0f8f3 !important;
    color: #207848 !important;
    border: 1px solid #bfe0c9 !important;
    box-shadow: none !important;
}

.auth-scan-login-tip {
    margin: 9px 2px 0;
    color: #758377;
    font-size: 12px;
    line-height: 1.55;
    text-align: left;
}

/* 小程序内是“微信身份登录”，不显示仅供电脑浏览器使用的扫码入口。 */
.host-wechat-miniapp .auth-scan-login-btn,
.host-wechat-miniapp .auth-scan-login-tip {
    display: none !important;
}

.web-scan-login-overlay {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(15, 28, 21, 0.54);
    box-sizing: border-box;
}

.web-scan-login-card {
    position: relative;
    width: min(360px, 100%);
    padding: 28px;
    border-radius: 20px;
    background: #fff;
    color: #233127;
    text-align: center;
    box-shadow: 0 24px 72px rgba(0, 0, 0, 0.24);
}

.web-scan-login-card h3 {
    margin: 0;
    color: #1f3e2b;
    font-size: 20px;
}

.web-scan-login-card p {
    margin: 12px 0 16px;
    color: #67746a;
    font-size: 13px;
    line-height: 1.65;
    text-align: left;
}

.web-scan-login-qr {
    display: block;
    width: min(260px, 76vw);
    min-height: 160px;
    margin: 0 auto;
    border-radius: 12px;
    background: #f3f7f4;
    image-rendering: auto;
}

.web-scan-login-hint {
    min-height: 36px;
    margin-top: 10px;
    color: #78857b;
    font-size: 12px;
    line-height: 1.55;
}

.web-scan-login-refresh {
    min-height: 36px;
    padding: 7px 16px;
    border: 1px solid #b7d8bf;
    border-radius: 10px;
    background: #f1faf3;
    color: #267244;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.web-scan-login-refresh:hover {
    background: #e0f2e5;
}

.web-scan-login-close {
    position: absolute;
    top: 9px;
    right: 11px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #617066;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}

.account-admin-identity-claim {
    max-width: 360px;
    margin: 0 auto;
    text-align: center;
}

.account-admin-identity-qr {
    display: block;
    width: min(280px, 100%);
    margin: 8px auto 14px;
    border-radius: 14px;
    background: #f4f8f5;
}

.account-admin-identity-note,
.account-admin-identity-warning,
.account-admin-identity-expire {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    text-align: left;
    font-size: 13px;
    line-height: 1.6;
}

.account-admin-identity-note {
    background: #f2f8f3;
    color: #526257;
}

.account-admin-identity-warning {
    background: #fff5e8;
    color: #9b5d17;
}

.account-admin-identity-expire {
    padding: 0;
    color: #7a867d;
}

/* 创建工单的快捷期限与自定义截止时间，桌面和手机共用。 */
#createWOModal #woDueTimeField {
    display: grid;
    gap: 8px;
    min-width: 0;
}

#createWOModal .wo-due-title,
#createWOModal .wo-due-datetime-row label {
    font-size: 13px;
    color: #344b3d;
}

#createWOModal .wo-due-presets {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

#createWOModal .wo-due-presets[hidden] {
    display: none;
}

#createWOModal .wo-due-presets button {
    min-width: 0;
    min-height: 40px;
    margin: 0;
    padding: 6px 0;
    border: 1px solid #dbe5dd;
    border-radius: 8px;
    background: #fff;
    color: #526257;
    font-size: 13px;
}

#createWOModal .wo-due-presets button.is-selected {
    border-color: #278653;
    background: #eaf6ef;
    color: #217346;
    font-weight: 700;
}

#createWOModal .wo-due-datetime-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 8px;
}

#createWOModal #woDueTime {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
    min-height: 40px;
    padding: 8px;
    border: 1px solid #dbe5dd;
    border-radius: 8px;
    font-size: 14px;
}

/* Compact work-order rows: visible content is also the deliberate detail target. */
.wo-list-card { cursor: default; }
#workOrderList, #workOrderTodoList { padding: 8px 10px; background: #f4f6f8; }
.wo-list-card.wo-card-compact {
    padding: 6px 10px 0;
    margin-bottom: 8px;
    border: 1px solid #e5eaf0;
    border-radius: 12px;
    box-shadow: none;
    background: #fff;
}
.wo-card-compact .wo-card-layout { grid-template-columns: 64px minmax(0, 1fr); gap: 10px; align-items: start; }
.wo-card-compact .wo-card-photo-column { padding-top: 2px; }
.wo-card-compact .wo-card-photo, .wo-card-compact .wo-card-photo-empty { width: 64px; height: 64px; aspect-ratio: auto; border-radius: 9px; }
.wo-card-photo { padding: 0; }
.wo-card-compact .wo-card-photo-empty { font-size: 11px; background: #f4f6f8; color: #8793a1; border: 1px solid #e9edf2; }
.wo-card-open {
    display: block; width: 100%; min-height: 44px; padding: 0;
    border: 0; background: transparent; color: #263748; text-align: left;
    font: inherit; cursor: pointer; touch-action: manipulation;
}
.wo-card-open:focus-visible, .wo-card-tools button:focus-visible, .wo-card-photo:focus-visible { outline: 2px solid #278653; outline-offset: 2px; }
.wo-card-open:active { background: #f0f6f3; border-radius: 4px; }
.wo-card-compact .wo-card-title {
    display: block; position: relative; padding-right: 14px;
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    font-size: 15px; font-weight: 650; line-height: 22px; color: #233446;
}
.wo-card-chevron { position: absolute; right: 0; top: 0; font-size: 22px; font-weight: 400; color: #a2aeb9; }
.wo-card-subtitle { display: flex; align-items: center; gap: 7px; min-width: 0; height: 22px; font-size: 11px; }
.wo-card-number { color: #84909e; font-variant-numeric: tabular-nums; }
.wo-list-card.wo-card-compact.unread::before { display: none; }
.wo-card-compact.unread .wo-card-number::before { content: ''; display: inline-block; width: 5px; height: 5px; margin-right: 4px; border-radius: 50%; background: #3986d9; vertical-align: middle; }
.wo-card-compact .wo-card-status { padding: 0; font-size: 12px; font-weight: 600; background: none; border: 0; box-shadow: none; overflow: hidden; text-overflow: ellipsis; }
.wo-card-subtitle .wo-cross-pill { flex: 0 0 auto; width: auto; height: 16px; margin: 0; padding: 0 4px; border-radius: 4px; background: #eef2ff; color: #596baf; box-shadow: none; font-size: 10px; line-height: 16px; font-weight: 600; }
.wo-card-footer { display: flex; align-items: center; gap: 4px; min-width: 0; height: 44px; }
.wo-card-footer .wo-card-meta { flex: 1; min-width: 0; margin: 0; font-size: 11px; color: #748291; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wo-card-tools { display: flex; align-items: center; flex: 0 0 auto; gap: 0; }
.wo-card-compact .wo-card-tools button { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; border: 0; border-radius: 8px; background: transparent; box-shadow: none; color: #7b8997; font-size: 11px; }
.wo-card-tools button:active { background: #edf3f0; color: #26794b; }
.wo-card-compact .wo-card-tags { margin: 2px 0 0; max-height: 20px; }
.wo-card-compact .wo-card-tag-pill { padding: 0 5px; font-size: 10px; line-height: 18px; border: 0; border-radius: 4px; }
.wo-selection-warning { position: sticky; top: 0; z-index: 1; padding: 8px 10px; border-radius: 8px; background: #fff8e9; color: #886127; font-size: 12px; }

/* Reference photos stay inside their own dialog, below viewers and upload masks. */
.wo-order-reference { display: flex; align-items: center; gap: 10px; min-width: 0; color: #243849; }
.wo-reference-photo { flex: 0 0 48px; width: 48px; height: 48px; }
.wo-reference-photo .wo-card-photo, .wo-reference-photo .wo-card-photo-empty { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; aspect-ratio: auto; margin: 0; padding: 0; border-radius: 8px; box-shadow: none; font-size: 10px; }
.wo-reference-photo .wo-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.wo-reference-photo .wo-card-photo-count { right: 2px; bottom: 2px; min-width: 14px; height: 14px; padding: 0 3px; font-size: 9px; }
.wo-reference-photo .wo-card-attachment-preview > div:nth-child(2) { display: none; }
.wo-reference-copy { display: grid; min-width: 0; gap: 1px; flex: 1; line-height: 1.4; }
.wo-reference-number { font-size: 11px; color: #698073; font-weight: 600; font-variant-numeric: tabular-nums; }
.wo-reference-issue { font-size: 14px; font-weight: 650; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.wo-reference-location { font-size: 11px; font-weight: 400; color: #7a8793; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.wo-order-identity {
    position: sticky; top: -22px; z-index: 2;
    padding: 10px !important; margin: 0 -2px 12px !important;
    border: 1px solid #e3ebe5; border-radius: 10px !important;
    background: #f5f9f6 !important; white-space: normal;
    box-shadow: 0 3px 8px rgba(28,57,40,.04);
}
#woDetailModal .wo-detail-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; top: -22px; z-index: 3; margin-bottom: 10px; padding: 6px 0 10px; background: #fff; backdrop-filter: none; border-bottom: 1px solid #e9eef0; }
#woDetailModal .wo-detail-title { font-size: 16px; }
#woDetailModal .wo-detail-close { min-width: 44px; min-height: 44px; }
#woDetailReference { grid-column: 1 / -1; min-width: 0; }
#woDetailReference:empty { display: none; }
.wo-inline-order-note { padding: 0 0 8px; font-size: 12px; color: #6e8075; }
@media (max-width: 640px) {
    #workOrderPanel .records-header, #workOrderTodoPanel .records-header { padding: 10px 12px; }
    #workOrderTodoToolbar { flex-wrap: nowrap; align-items: center; }
    #workOrderTodoToolbar .wo-todo-source-filter { flex: 0 0 92px; }
    #workOrderTodoToolbar .wo-todo-toolbar-actions { flex: 1; flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; overscroll-behavior-x: contain; }
    #workOrderPrimaryFilter { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.25fr) 44px; gap: 6px; padding: 7px 12px; }
    #workOrderPrimaryFilter .workorder-filter-field { gap: 4px; }
    #workOrderPrimaryFilter .workorder-filter-label { min-width: auto; }
    #workOrderPrimaryFilter select { min-width: 0; padding-left: 5px; padding-right: 2px; }
    #workOrderPrimaryFilter > button { min-width: 44px; padding: 7px 2px; }
    #workOrderMainSummaryBar { padding: 7px 8px 5px; margin: 0 9px 4px; box-shadow: none; }
    #workOrderMainSummaryBar .wo-summary-head { flex-direction: row; flex-wrap: nowrap; align-items: center; gap: 6px; margin: 4px 0 0; }
    #workOrderMainSummaryBar .wo-summary-title-group { flex: 1; min-width: 0; width: auto; }
    #workOrderMainSummaryBar .wo-summary-scope { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 10px; }
    #workOrderMainSummaryBar .wo-summary-meta { flex: 0 0 auto; width: auto; margin: 0; }
    #workOrderMainSummaryBar .wo-summary-meta-item { padding: 0; background: none; border: 0; }
    #workOrderMainSummaryBar .wo-stage-tabs-shell { margin: 0; padding: 0; overflow: visible; }
    #workOrderMainSummaryBar .wo-stage-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); width: 100%; gap: 4px; }
    #workOrderMainSummaryBar .wo-stage-tab { min-width: 0; min-height: 44px; padding: 4px 2px; flex-direction: column; justify-content: center; gap: 2px; border-radius: 8px; box-shadow: none; background: #f7f9fb; }
    #workOrderMainSummaryBar .wo-stage-tab-label { font-size: 11px; white-space: nowrap; }
    #workOrderMainSummaryBar .wo-stage-tab-count { min-width: 0; height: 16px; padding: 0 4px; font-size: 11px; line-height: 16px; }
    #workOrderMainSummaryBar .wo-stage-tab.is-active { background: #edf6ff; box-shadow: none; }
    #workOrderFilterHint { padding-top: 4px; padding-bottom: 4px; font-size: 11px; line-height: 1.4; }
    .wo-card-compact .wo-card-layout { grid-template-columns: 60px minmax(0, 1fr); gap: 9px; }
    .wo-card-compact .wo-card-photo, .wo-card-compact .wo-card-photo-empty { width: 60px; height: 60px; }
    #woDetailModal { padding: 14px 12px 12px; }
    #woDetailModal .wo-detail-header { top: -14px; }
    .wo-order-identity { top: -22px; }
}
@media (max-width: 640px) and (max-height: 620px) {
    #workOrderMainSummaryBar .wo-summary-head { display: none; }
    #workOrderTodoHint { display: none !important; }
    .wo-list-card.wo-card-compact { padding-top: 2px; padding-bottom: 0; margin-bottom: 6px; }
}
@media (max-width: 360px) {
    .wo-card-compact .wo-card-title { font-size: 14px; }
    .wo-card-compact .wo-card-layout { grid-template-columns: 52px minmax(0, 1fr); gap: 8px; }
    .wo-card-compact .wo-card-photo, .wo-card-compact .wo-card-photo-empty { width: 52px; height: 56px; }
}

.records-panel { background: var(--ui-canvas); }
.records-panel .records-header {
    flex: 0 0 auto; min-height: 56px; padding: 6px 12px;
    background: var(--ui-surface); box-shadow: none; backdrop-filter: none;
    border-bottom: 1px solid var(--ui-line);
}
.records-header .back, .records-header > button, #pointManagementDeleteHistoryBtn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 44px; padding: 6px 10px; border: 0; border-radius: 8px;
    background: transparent; color: #586c7b; font-size: 12px; font-weight: 500;
    cursor: pointer; touch-action: manipulation;
}
.records-header .back:active, .records-header > button:active { background: var(--ui-canvas); }
.records-panel .records-header h2 { font-size: 16px; font-weight: 650; color: var(--ui-ink); }
.records-panel .records-filter { flex-shrink: 0; background: #fff; backdrop-filter: none; box-shadow: none; }
.records-panel .records-filter button { min-height: 44px; box-shadow: none; }
.records-panel .records-filter .query-btn { background: var(--ui-accent); }
.records-panel .records-filter .export-btn { background: var(--ui-accent-soft); color: #26794b; }
.records-panel .records-list { min-height: 0; scrollbar-gutter: stable; }
.records-list > .record-item { border-radius: var(--ui-radius); border-color: var(--ui-line); box-shadow: none; }
.records-panel button:focus-visible, .point-selector button:focus-visible,
.industry-add-modal button:focus-visible, .industry-detail-modal button:focus-visible {
    outline: 2px solid var(--ui-accent); outline-offset: 2px;
}
.point-selector input:focus-visible, .point-selector textarea:focus-visible, .point-selector select:focus-visible,
.industry-add-input:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 1px; }
.point-selector { background: #fff; border-radius: 16px; }
.point-selector .modal-action-row { gap: 8px !important; }
.industry-add-modal .industry-add-submit { background: var(--ui-accent); box-shadow: none; border-radius: 10px; font-weight: 650; }
.industry-add-section { border-radius: var(--ui-radius); box-shadow: none; }
.industry-detail-card, .industry-display-media { box-shadow: none; border-radius: var(--ui-radius); }
.industry-detail-tool-btn { min-width: 44px; min-height: 44px; }
.home-action-sheet { background: #fff; backdrop-filter: none; border-radius: 16px; }
#homeCreateSheet { max-height: calc(var(--app-height, 100dvh) - 110px); overflow-y: auto; padding: 12px; border-radius: 16px; }
#homeCreateSheet .action-sheet-title { padding: 4px 0 10px; margin-bottom: 4px; font-weight: 650; color: var(--ui-ink); }
#homeCreateSheet .action-sheet-btn {
    position: relative; min-height: 48px; margin: 0 0 3px; padding: 10px 28px 10px 14px;
    border: 0; border-radius: 8px; box-shadow: none; background: #fff;
    color: #405667; font-size: 14px; font-weight: 500; text-align: left;
}
#homeCreateSheet .action-sheet-btn::after { content: '›'; position: absolute; right: 12px; color: #9aa6b1; font-size: 20px; line-height: 20px; }
#homeCreateSheet #homeCreateTempWO { margin-bottom: 8px; background: var(--ui-accent-soft); color: #26794b; font-weight: 650; }
#homeCreateSheet #homeCreateSheetCancelBtn { margin: 8px 0 0; border-top: 1px solid var(--ui-line); border-radius: 0; text-align: center; padding-right: 14px; color: var(--ui-muted); }
#homeCreateSheet #homeCreateSheetCancelBtn::after { content: none; }
#homeCreateSheet .action-sheet-btn:active { background: var(--ui-canvas); transform: none; }
.home-action-sheet button:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.home-more-category { border-color: var(--ui-line); border-radius: var(--ui-radius); background: #fff; box-shadow: none; }
.home-more-category strong { font-weight: 650; }
#accountAdminPanel .account-admin-toolbar-wrap, #accountAdminPanel .account-admin-summary-panel,
#accountAdminPanel .account-admin-card, #accountAdminPanel .account-admin-metric,
#accountAdminPanel .account-admin-hero, #accountAdminPanel .account-admin-security-toggle { border-radius: var(--ui-radius); box-shadow: none; border-color: var(--ui-line); background: #fff; }
#accountAdminPanel .account-admin-card-title { font-weight: 650; }
#accountAdminPanel .account-admin-tab, #accountAdminPanel .account-admin-top-btn,
#accountAdminPanel .account-admin-field select, #accountAdminPanel .account-admin-reset-btn { min-height: 44px; }

#industryProjectsPanel .industry-projects-header { flex-wrap: nowrap; }
#industryProjectsPanel .industry-projects-header h2 { order: 0; flex: 1; text-align: center; }
#industryProjectsList { padding: 8px 10px; }
#industryProjectsList .industry-project-card {
    padding: 9px 8px 9px 10px; margin-bottom: 8px; cursor: default;
    border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: none;
}
.industry-project-card .industry-project-card-body { align-items: center; gap: 10px; }
.industry-project-card .industry-project-card-cover {
    flex: 0 0 60px; width: 60px; height: 64px; border: 0; border-radius: 9px;
    background: var(--ui-canvas);
}
.industry-card-photo { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: pointer; }
.industry-project-card .industry-project-card-photo-empty { font-size: 10px; padding: 0 4px; font-weight: 400; color: var(--ui-muted); }
.industry-project-card .industry-project-card-content { gap: 0; }
.industry-card-open {
    display: flex; flex-direction: column; justify-content: center; gap: 3px; width: 100%; min-height: 64px;
    padding: 0; border: 0; background: transparent; text-align: left; font: inherit; cursor: pointer; touch-action: manipulation;
}
.industry-project-card .industry-project-card-title {
    display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    font-size: 15px; font-weight: 650; line-height: 22px; color: var(--ui-ink);
}
.industry-project-card-subtitle { display: flex; align-items: center; gap: 8px; min-width: 0; line-height: 18px; }
.industry-project-card .industry-project-status { padding: 0; border: 0; border-radius: 0; background: none; font-size: 12px; font-weight: 600; }
.industry-project-card .industry-visibility-readonly { min-height: 0; padding: 0; border: 0; background: none; color: var(--ui-muted); font-size: 11px; font-weight: 400; }
.industry-project-card .industry-project-card-meta {
    display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
    color: var(--ui-muted); font-size: 11px; line-height: 18px;
}
.industry-project-card .industry-card-map-btn {
    display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
    flex: 0 0 44px; width: 44px; min-height: 48px; padding: 0; border: 0; border-radius: 8px;
    background: transparent; color: #748291; font-size: 10px; font-weight: 400; touch-action: manipulation;
}
.industry-card-map-btn:active, .industry-card-open:active { background: var(--ui-accent-soft); }
#industryStatusBar { flex-shrink: 0; gap: 4px; padding: 8px 10px 0; }
#industryStatusBar .industry-status-chip {
    flex: 1 0 0; min-width: 0; min-height: 44px; flex-direction: row; align-items: center; justify-content: center;
    gap: 5px; padding: 5px 3px; border: 1px solid transparent; border-radius: 8px;
    background: transparent; box-shadow: none;
}
#industryStatusBar .industry-status-chip .label { font-size: 12px; font-weight: 500; }
#industryStatusBar .industry-status-chip .count { font-size: 12px; font-weight: 600; color: #748291; font-variant-numeric: tabular-nums; }
#industryStatusBar .industry-status-chip.active { background: #e9f3ed; color: #26794b; border-color: #dbeadf; }
#industryStatusBar .industry-status-chip.active .label, #industryStatusBar .industry-status-chip.active .count { color: #26794b; }

#createWOModal.workorder-publish-modal {
    width: min(94vw, 480px) !important; max-width: 480px !important;
    max-height: min(88vh, calc(var(--app-height, 100dvh) - 24px));
    top: calc(var(--app-height, 100dvh) / 2); padding: 18px 16px 14px;
    scroll-padding-top: 68px; scroll-padding-bottom: 88px; scrollbar-gutter: stable;
    touch-action: auto;
}
#createWOModal .wo-publish-modal-title {
    position: sticky; top: -18px; z-index: 3; margin: -2px -2px 14px;
    padding: 12px 2px; border-bottom: 1px solid var(--ui-line); background: #fff;
    font-size: 18px; font-weight: 650; color: var(--ui-ink);
}
#createWOModal[data-wo-publish-compose="1"] .wo-publish-modal-title { margin: -2px -2px 14px; font-size: 18px; font-weight: 650; }
#createWOModal .wo-publish-action-row {
    position: sticky; bottom: -14px; z-index: 3; padding: 10px 0 max(10px, env(safe-area-inset-bottom));
    margin-bottom: -14px; background: #fff; border-top: 1px solid var(--ui-line);
    grid-template-columns: minmax(76px, .5fr) minmax(0, 1.5fr);
}
#createWOModal[data-wo-publish-compose="1"] .wo-publish-action-row { padding-top: 10px; }
#createWOModal[data-wo-publish-compose="1"] .wo-publish-location-field { padding: 10px 12px; background: #f8faf9; border-radius: 10px; }
#createWOModal[data-wo-publish-compose="1"] #woLocationLabel,
#createWOModal[data-wo-publish-compose="1"] #woIssueLabel,
#createWOModal[data-wo-publish-compose="1"] #woLocationAddressBlock > label { color: #526579; font-size: 12px; font-weight: 600; }
#createWOModal[data-wo-publish-compose="1"] #woIssue { min-height: 88px; }
#createWOModal[data-wo-publish-compose="1"] .wo-publish-location-actions button,
#createWOModal #woCategoryBtns button, #createWOModal #woIssueQuickTags button,
#createWOModal #woDueTimePresets button { min-height: 44px; }
#createWOModal[data-wo-publish-compose="1"] .wo-publish-due-field { border-radius: 10px; }
#createWOModal[data-wo-publish-compose="1"] #woPhotoPreview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
#createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-add-card { font-size: 11px; }
#createWOModal[data-wo-publish-compose="1"] #woPhotoPreview .photo-add-card small { display: none; }
#createWOModal[data-wo-publish-compose="1"] #woCategoryBtns { flex-wrap: nowrap !important; }
#createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags > div:last-child { flex-wrap: nowrap !important; overflow-x: auto; padding: 2px 0; scrollbar-width: none; }
#createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags > div:last-child::-webkit-scrollbar { display: none; }
#createWOModal[data-wo-publish-compose="1"] #woIssueQuickTags button { flex-shrink: 0; }

.record-item.inspection-point-card { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 12px; min-height: 80px; margin-bottom: 8px; border: 1px solid var(--ui-line); border-radius: var(--ui-radius); box-shadow: none; text-align: left; font: inherit; background: #fff; color: var(--ui-ink); cursor: pointer; }
.inspection-point-symbol { display: grid; place-items: center; flex: 0 0 44px; height: 48px; border-radius: 10px; background: var(--ui-accent-soft); color: #278653; font-size: 20px; }
.inspection-point-copy { display: flex; flex-direction: column; flex: 1; min-width: 0; gap: 3px; }
.inspection-point-copy strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 15px; font-weight: 650; line-height: 22px; }
.inspection-point-copy small { color: var(--ui-muted); font-size: 11px; line-height: 18px; }
.inspection-point-state { color: #526579; font-size: 12px; flex-shrink: 0; }
@media (max-width: 640px) {
    #industryPointsFilter { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 48px 48px; gap: 6px; padding: 7px 10px; }
    #industryPointsFilter .industry-keyword-field { grid-column: 1 / -1; min-height: 44px; }
    #industryPointsFilter .pm-filter-field { min-width: 0; }
    #industryPointsFilter > button { padding: 6px 2px; font-size: 12px; }
    #industryPointsFilter .industry-keyword-field input { font-size: 13px; }
    #industryProjectsList .industry-project-card { padding-top: 7px; padding-bottom: 7px; margin-bottom: 6px; }
    .point-selector .modal-action-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .point-selector .modal-action-row .modal-action-btn { padding: 10px 6px !important; font-size: 14px !important; }
    #createWOModal.workorder-publish-modal,
    #createWOModal.workorder-publish-modal[data-wo-publish-compose="1"] { max-height: calc(var(--app-height, 100dvh) - 20px); width: calc(100vw - 20px) !important; }
    #createWOModal[data-wo-publish-compose="1"] #woPhotoPreview { gap: 6px; }
}
@media (min-width: 960px) {
    #industryProjectsList, #inspectionPointsList { padding-left: max(12px, calc((100% - 920px) / 2)); padding-right: max(12px, calc((100% - 920px) / 2)); }
    #industryPointsFilter, #industryStatusBar { padding-left: max(12px, calc((100% - 920px) / 2)); padding-right: max(12px, calc((100% - 920px) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
    .records-panel { transition: none; }
    .modal-action-row .modal-action-btn { transition: none; }
}

/* Shared navigation glyphs and detail windows. */
.ui-icon {
    display: inline-block; flex: 0 0 auto; width: 20px; height: 20px;
    fill: none; stroke: currentColor; stroke-width: 1.8;
    stroke-linecap: round; stroke-linejoin: round; vertical-align: middle;
    pointer-events: none;
}
.ui-icon-button, .ui-close-label {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 44px; min-height: 44px; gap: 4px; cursor: pointer;
}
.ui-icon-button[hidden], .ui-close-label[hidden], .industry-detail-tool-btn[hidden] { display: none !important; }
.industry-keyword-icon .ui-icon, #locationPickerSearchIcon .ui-icon { width: 18px; height: 18px; }
.records-filter .industry-keyword-field input { padding-right: 54px; }
.records-filter .industry-keyword-clear.show { display: inline-flex; align-items: center; justify-content: center; }
.photo-cell .photo-remove-btn.ui-icon-button { top: 0; right: 0; width: 44px; height: 44px; border-radius: 0 8px 0 10px; }
.photo-remove-btn .ui-icon { width: 17px; height: 17px; }
.map-layer-compact { display: inline-flex; align-items: center; justify-content: center; gap: 4px; }
.map-layer-compact .ui-icon { width: 16px; height: 16px; }
.records-header .back, #homeMoreGroupBackBtn {
    display: inline-flex; align-items: center; justify-content: center; gap: 4px;
    min-height: 44px; font: inherit; font-size: 14px;
}
.records-header .back .ui-icon, #homeMoreGroupBackBtn .ui-icon { width: 18px; height: 18px; }
.ui-icon-button:focus-visible, .ui-close-label:focus-visible, .records-header .back:focus-visible {
    outline: 2px solid var(--ui-accent); outline-offset: 2px;
}
.home-bottom-dock .icon { display: flex; align-items: center; justify-content: center; }
.home-bottom-dock .icon .ui-icon { width: 23px; height: 23px; }
.home-more-category-icon .ui-icon { width: 22px; height: 22px; }
.wo-card-compact .wo-card-tools .wo-card-map-dot { flex-direction: column; gap: 1px; line-height: 13px; }
.wo-card-compact .wo-card-tools .ui-icon { width: 18px; height: 18px; }
.industry-detail-tool-btn .ui-icon { stroke-width: 1.8; }
.industry-add-close .ui-icon { width: 20px; height: 20px; }

.point-selector.detail-dialog, .point-modal.industry-detail-modal.detail-dialog, .point-modal.point-detail-modal.detail-dialog {
    position: fixed; top: calc(var(--app-height, 100vh) / 2); left: 50%; bottom: auto;
    width: calc(100% - 24px); max-width: 720px; height: auto;
    max-height: min(88vh, calc(var(--app-height, 100vh) - 48px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)), 860px);
    flex-direction: column; padding: 0 !important; overflow: hidden !important;
    border: 1px solid var(--ui-line); border-radius: 18px;
    background: #fff; box-shadow: 0 18px 54px rgba(25, 46, 37, .2);
    transform: translate(-50%, -50%);
}
.point-selector.detail-dialog.show, .point-modal.industry-detail-modal.detail-dialog.show, .point-modal.point-detail-modal.detail-dialog.show {
    display: flex !important; transform: translate(-50%, -50%);
}
#woDetailModal.detail-dialog .wo-detail-header {
    position: relative; top: auto; flex: 0 0 auto; margin: 0;
    padding: 6px 16px 10px; gap: 4px 8px;
}
.detail-dialog .industry-detail-topbar {
    min-height: 56px; flex-basis: 56px; padding: 0 16px; gap: 6px;
}
.detail-dialog .wo-detail-title, .detail-dialog .industry-detail-topbar-title {
    color: var(--ui-ink); font-size: 16px; font-weight: 650;
}
#woDetailModal.detail-dialog .wo-detail-close, .detail-dialog .industry-detail-close-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: auto; min-height: 44px; min-width: 64px; padding: 0 8px; gap: 4px;
    border: 0; border-radius: 10px; background: #f3f6f4;
    color: #43594c; font-size: 14px; font-weight: 600; box-shadow: none;
}
.detail-dialog .wo-detail-close .ui-icon, .detail-dialog .industry-detail-close-btn .ui-icon { width: 16px; height: 16px; }
.detail-dialog-scroll, .detail-dialog .industry-detail-scroll {
    flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden;
    overscroll-behavior: contain; scrollbar-gutter: stable;
}
.detail-dialog-scroll { padding: 0 16px 16px; }
.detail-dialog .industry-detail-footer { padding: 10px 16px; }
.detail-dialog .industry-detail-footer .modal-action-btn {
    min-height: 44px; padding: 10px 12px; border: 1px solid var(--ui-line);
    background: #f3f6f4; color: #43594c; font-size: 14px; font-weight: 600;
    box-shadow: none; cursor: pointer;
}
.detail-dialog .wo-detail-section { border-color: var(--ui-line); border-radius: 12px; background: #f8faf9; box-shadow: none; }
@media (max-width: 699px) {
    .detail-dialog .industry-detail-topbar { padding: 0 10px; }
    .detail-dialog .industry-detail-topbar-title { font-size: 15px; }
    .detail-dialog .industry-detail-topbar-tools { gap: 2px; }
    #woDetailModal.detail-dialog .wo-detail-header { padding-right: 12px; padding-left: 12px; }
    .detail-dialog-scroll { padding-right: 12px; padding-left: 12px; }
    .detail-dialog .industry-detail-footer { padding-right: 12px; padding-left: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .detail-dialog { transition: none; }
}

#pointModalOverlay { z-index: 2011; }
#pointModal.detail-dialog { z-index: 2012; transition: none; }
#pointModal:not(.show) { display: none; }
#pointModal .header {
    position: relative; top: auto; flex: 0 0 auto; align-items: center;
    margin: 0; padding: 8px 16px; gap: 8px; background: #fff; backdrop-filter: none;
}
#pointModal .point-title-wrap h3 { font-size: 16px; font-weight: 650; line-height: 24px; }
#pointModal .close {
    width: auto; min-width: 64px; min-height: 44px; padding: 0 8px; gap: 4px;
    border: 0; border-radius: 10px; background: #f3f6f4; color: #43594c; font-size: 14px; font-weight: 600;
}
#pointModal .close .ui-icon { width: 16px; height: 16px; }
.point-identity { flex: 0 0 auto; padding: 8px 16px; color: var(--ui-muted); font-size: 12px; overflow-wrap: anywhere; background: var(--ui-accent-soft); }
#pointModal .detail-dialog-scroll { padding-top: 12px; }
#pointModal .current-status, #pointModal .status-section { border: 1px solid var(--ui-line); border-radius: 12px; background: #f8faf9; box-shadow: none; }
#pointModal .current-status { font-size: 13px; }
#pointModal .point-status-pill { background: #eef1f4; color: #586576; }
#pointModal .point-status-pill[data-status="干净"], .inspection-point-state[data-status="干净"] { background: #edf7f0; color: #287449; }
#pointModal .point-status-pill[data-status="一般"], .inspection-point-state[data-status="一般"] { background: #fff7e6; color: #94630b; }
#pointModal .point-status-pill[data-status="脏乱"], .inspection-point-state[data-status="脏乱"] { background: #fff0ed; color: #ad4536; }
#pointModal .status-btn { min-height: 44px; min-width: 60px; padding: 9px 12px; font-size: 14px; border-radius: 10px; background: #fff; }
#pointModal .status-btn.selected { background: var(--ui-accent-soft); box-shadow: inset 0 0 0 1px currentColor; }
#pointModal .status-section-title { font-size: 13px; color: var(--ui-ink); }
#pointModal .status-section-title small { color: var(--ui-muted); font-size: 12px; font-weight: 400; margin-left: 6px; }
.point-report-heading { color: var(--ui-ink); font-size: 14px; font-weight: 650; margin: 18px 0 10px; }
#pointModal .point-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 12px 0; gap: 8px; }
#pointModal .point-quick-actions .submit-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px;
    border: 1px solid var(--ui-line); border-radius: 10px; padding: 9px 8px; background: #fff; color: #43594c; font-size: 13px; box-shadow: none;
}
.point-manage-section { border-top: 1px solid var(--ui-line); margin-top: 16px; }
.point-manage-section summary { cursor: pointer; min-height: 44px; padding: 13px 0; color: var(--ui-muted); font-size: 13px; }
.point-manage-section button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 10px 12px; cursor: pointer; }
.point-delete-action { background: #fff; color: #ac493e; border: 1px solid #edcfcb; border-radius: 10px; margin-top: 8px; }
#pointModal #inlineNameInput { min-height: 44px; font: inherit; }
.point-detail-footer { flex: 0 0 auto; padding: 8px 16px 12px; border-top: 1px solid var(--ui-line); background: #fff; }
#pointModal #submitError { margin: 0 0 8px; min-height: 0; font-size: 12px; line-height: 18px; color: var(--ui-muted); }
.point-detail-footer-actions { display: flex; gap: 8px; }
.point-detail-footer-actions button { flex: 1; min-height: 44px; margin: 0; border-radius: 10px; padding: 10px 12px; font-size: 14px; cursor: pointer; }
.point-detail-footer-actions .secondary { border: 1px solid var(--ui-line); background: #f3f6f4; color: #43594c; }
#pointModal #submitStatusBtn { background: var(--ui-accent); box-shadow: none; }
#pointModal button:disabled { cursor: not-allowed; opacity: .5; }
.point-records-section { border: 1px solid var(--ui-line); border-radius: 12px; padding: 12px; font-size: 13px; color: var(--ui-muted); }
.point-records-section h4 { margin-bottom: 8px; color: var(--ui-ink); font-size: 14px; }
.point-records-hint { font-size: 12px; margin-bottom: 8px; }
.point-record-row { display: grid; gap: 4px; padding: 10px 0; border-top: 1px solid var(--ui-line); overflow-wrap: anywhere; }
.point-record-row strong { color: var(--ui-ink); }
.point-record-row small { font-size: 12px; }
#pointReportSection[hidden], #pointManageSection[hidden], #pointRecordsSection[hidden] { display: none; }
.inspection-points-search { flex: 0 0 auto; padding: 8px 14px 0; background: #fff; }
.inspection-points-search input { display: block; width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--ui-line); border-radius: 10px; padding: 9px 12px; font: inherit; font-size: 14px; background: #f8faf9; }
#inspectionPointsFilter { display: flex; flex-wrap: nowrap; gap: 8px; padding: 8px 14px; }
#inspectionPointsFilter .pm-filter-field { flex: 1; min-width: 0; }
#inspectionPointsFilter select { display: block; width: 100%; min-width: 0; min-height: 44px; font-size: 13px; border: 1px solid var(--ui-line); border-radius: 9px; padding: 8px 4px; background: #fff; color: var(--ui-ink); }
#inspectionPointsFilter .mobile-filter-trigger { display: none; }
#inspectionPointsFilter .query-btn { flex: 0 0 auto; min-width: 48px; padding: 8px; font-size: 13px; }
.inspection-points-summary { flex: 0 0 auto; padding: 6px 16px; min-height: 28px; color: var(--ui-muted); font-size: 12px; line-height: 16px; }
.inspection-points-empty { padding: 40px 16px; color: var(--ui-muted); text-align: center; font-size: 14px; }
#inspectionPointsList { padding: 0 12px 12px; }
#inspectionPointsList .inspection-point-card { gap: 0; padding: 0; min-height: 80px; margin-bottom: 8px; overflow: hidden; }
.inspection-point-open { flex: 1; min-width: 0; min-height: 80px; display: flex; align-items: center; gap: 8px; padding: 8px; background: #fff; border: 0; color: var(--ui-ink); text-align: left; cursor: pointer; font: inherit; }
.inspection-point-open .inspection-point-symbol { flex-basis: 32px; height: 40px; background: #f3f6f4; border-radius: 8px; }
.inspection-point-open .inspection-point-copy { gap: 1px; }
.inspection-point-open .inspection-point-copy small { font-size: 11px; line-height: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inspection-point-state { padding: 3px 7px; border-radius: 7px; font-size: 11px; max-width: 72px; overflow-wrap: anywhere; }
.inspection-point-map { flex: 0 0 46px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-height: 48px; border: 0; border-left: 1px solid var(--ui-line); background: #fff; color: var(--ui-muted); font-size: 11px; cursor: pointer; }
.inspection-point-map .ui-icon { width: 18px; height: 18px; }
@media (max-width: 699px) {
    #pointModal .header { padding-right: 12px; padding-left: 12px; }
    .point-identity, .point-detail-footer { padding-right: 12px; padding-left: 12px; }
}
@media (min-width: 900px) {
    #inspectionPointsPanel > .inspection-points-search, #inspectionPointsPanel > .records-filter,
    #inspectionPointsPanel > .inspection-points-summary, #inspectionPointsPanel > .records-list { width: 100%; max-width: 960px; margin-left: auto; margin-right: auto; }
}
