@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap);:root{--bg-primary:#fafafa;--bg-card:#fff;--bg-hover:#f5f5f7;--bg-input:#f5f5f7;--border-color:#e8e8e8;--border-hover:#d2d2d7;--text-primary:#1d1d1f;--text-secondary:#86868b;--text-muted:#aeaeb2;--accent:#0071e3;--accent-hover:#0077ed;--success:#34c759;--warning:#f5a623;--danger:#ff3b30;--purple:#af52de;--cyan:#00acc1;--pink:#ec407a}.dark-mode{--bg-primary:#0d0d0d;--bg-card:#1a1a1a;--bg-hover:#252525;--bg-input:#252525;--border-color:#2d2d2d;--border-hover:#3d3d3d;--text-primary:#f5f5f7;--text-secondary:#98989d;--text-muted:#636366;--accent:#0a84ff;--accent-hover:#409cff}#root,body,html{-webkit-font-smoothing:antialiased;background-color:#fafafa;background-color:var(--bg-primary);color:#1d1d1f;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100%;line-height:1.5;margin:0;padding:0;transition:background-color .3s ease,color .3s ease}.btn-primary{align-items:center;background:#0071e3;background:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-primary:hover{background:#0077ed;background:var(--accent-hover);box-shadow:0 4px 12px #0071e34d;transform:translateY(-1px)}.btn-primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.6;transform:none}.btn-primary svg{height:16px;width:16px}.btn-secondary{align-items:center;background:#fff;background:var(--bg-card);border:1px solid #e8e8e8;border:1px solid var(--border-color);border-radius:10px;color:#1d1d1f;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-secondary:hover{background:#f5f5f7;background:var(--bg-hover);border-color:#d2d2d7;border-color:var(--border-hover)}.btn-secondary svg{height:16px;width:16px}.btn-danger{align-items:center;background:#ff3b30;background:var(--danger);border:none;border-radius:10px;color:#fff;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-danger:hover{background:#e62e26;transform:translateY(-1px)}.search-input{background:#f5f5f7;background:var(--bg-input);border:1px solid #e8e8e8;color:#1d1d1f;flex:1 1;outline:none;padding:12px 16px}.search-input:focus{border-color:#0071e3}.search-input::placeholder{color:#aeaeb2}.filter-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filter-tab{background:#f5f5f7;background:var(--bg-input);border:1px solid #e8e8e8;border:1px solid var(--border-color);border-radius:8px;color:#86868b;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;padding:8px 16px;transition:all .2s ease}.filter-tab:hover{background:#f5f5f7;background:var(--bg-hover);color:#1d1d1f;color:var(--text-primary)}.filter-tab.active{background:#0071e3;background:var(--accent);border-color:#0071e3;border-color:var(--accent);color:#fff}.section-card{background:#fff;background:var(--bg-card);border:1px solid #e8e8e8;border:1px solid var(--border-color);border-radius:14px;margin-bottom:24px;overflow:hidden;transition:background-color .3s ease,border-color .3s ease}.section-header{align-items:center;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:18px 22px}.section-title{color:#1d1d1f;color:var(--text-primary);font-size:15px;font-weight:600;margin:0}.section-link{color:#0071e3;color:var(--accent);cursor:pointer;font-size:13px;font-weight:500;text-decoration:none}.section-link:hover{color:#0077ed;color:var(--accent-hover)}.list-item{align-items:center;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;gap:14px;padding:14px 22px;transition:background .2s ease}.list-item:last-child{border-bottom:none}.list-item:hover{background:#f5f5f7;background:var(--bg-hover)}.list-icon{align-items:center;background:#f5f5f7;background:var(--bg-input);border-radius:8px;color:#86868b;color:var(--text-secondary);display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.list-icon svg{height:18px;width:18px}.list-info{flex:1 1;min-width:0}.list-name{color:#1d1d1f;color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:2px}.list-meta{color:#86868b;color:var(--text-secondary);font-size:12px}.status-badge{border-radius:16px;flex-shrink:0;font-size:11px;font-weight:500;padding:5px 10px}.status-badge.pending{background:#fff3e0;color:#e65100}.status-badge.completed{background:#e8f5e9;color:#2e7d32}.status-badge.sent{background:#e3f2fd;color:#1565c0}.status-badge.active{background:#e8f5e9;color:#2e7d32}.status-badge.in-progress{background:#fff3e0;color:#e65100}.dark-mode .status-badge.pending{background:#f5a62333;color:#ffb74d}.dark-mode .status-badge.completed{background:#34c75933;color:#81c784}.dark-mode .status-badge.sent{background:#0a84ff33;color:#64b5f6}.dark-mode .status-badge.active{background:#34c75933;color:#81c784}.dark-mode .status-badge.in-progress{background:#f5a62333;color:#ffb74d}.card-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));padding:20px}.pagination{align-items:center;border-top:1px solid #e8e8e8;border-top:1px solid var(--border-color);display:flex;gap:8px;justify-content:center;padding:16px 0}.pagination button{background:#f5f5f7;background:var(--bg-input);border:1px solid #e8e8e8;border:1px solid var(--border-color);border-radius:8px;color:#86868b;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;padding:8px 14px;transition:all .2s ease}.pagination button:hover{background:#f5f5f7;background:var(--bg-hover);color:#1d1d1f;color:var(--text-primary)}.pagination button.active{background:#0071e3;background:var(--accent);border-color:#0071e3;border-color:var(--accent);color:#fff}.pagination button:disabled{cursor:not-allowed;opacity:.5}.pagination span{font-size:13px}.empty-state,.pagination span{color:#86868b;color:var(--text-secondary)}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:50px 30px;text-align:center}.empty-state svg{color:#0071e3;color:var(--accent);margin-bottom:16px;opacity:.4}.empty-state p{color:#86868b;color:var(--text-secondary);font-size:15px;margin:0}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]):not([type=file]),select,textarea{font-size:16px!important}input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{background:#f5f5f7;background:var(--bg-input);border:1px solid #e8e8e8;border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:#1d1d1f;color:var(--text-primary);font-family:inherit;outline:none;padding:12px 16px;transition:all .2s ease;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#0071e3;border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a}input::placeholder,textarea::placeholder{color:#aeaeb2;color:var(--text-muted)}@media screen and (max-width:768px){input[type=email],input[type=number],input[type=password],input[type=text],select,textarea{font-size:16px;padding:14px 16px}button{min-height:44px;min-width:44px}}.app-container{display:flex;min-height:100dvh}.app-container:has(.map-container){height:100vh;overflow:hidden}.sidebar{background:var(--bg-card);border-right:1px solid var(--border-color);box-sizing:border-box;display:flex;flex-direction:column;height:100dvh;overflow-y:auto;padding:24px 0 12px;position:fixed;transition:background-color .3s ease,border-color .3s ease,transform .3s ease;width:240px;z-index:100}.logo{margin-bottom:32px;padding:0 24px}.logo h1{color:var(--text-primary);font-size:22px;font-weight:700;letter-spacing:-.5px;margin:0}.beta-badge,.logo span{color:var(--accent)}.beta-badge{font-size:10px;font-weight:600;letter-spacing:.5px;margin-left:2px;vertical-align:super}.nav-menu{display:flex;flex:1 1;flex-direction:column}.nav-item{align-items:center;border-left:3px solid #0000;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:400;gap:12px;padding:12px 24px;text-decoration:none;transition:all .2s ease}.nav-item.active,.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{border-left-color:var(--accent);font-weight:500}.nav-item svg{flex-shrink:0;height:18px;width:18px}.nav-section{border-top:1px solid var(--border-color);margin-top:24px;padding-top:24px}.theme-toggle{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:12px;margin-top:auto;padding:12px 24px;transition:all .2s ease}.theme-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-toggle svg{flex-shrink:0;height:18px;width:18px}.theme-label{flex:1 1}.toggle-switch{background:var(--bg-input);border:1px solid var(--border-color);border-radius:12px;height:24px;position:relative;transition:background-color .3s ease;width:44px}.toggle-switch.active{background:var(--accent);border-color:var(--accent)}.toggle-knob{background:var(--bg-card);border-radius:50%;box-shadow:0 1px 3px #0003;height:18px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:18px}.toggle-switch.active .toggle-knob{transform:translateX(20px)}.user-profile{border-top:1px solid var(--border-color);gap:10px;margin-top:16px;padding:16px 24px}.user-avatar,.user-profile{align-items:center;display:flex}.user-avatar{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;flex-shrink:0;font-size:13px;font-weight:600;height:36px;justify-content:center;width:36px}.user-info{flex:1 1;min-width:0}.user-profile .user-name{color:var(--text-primary);font-size:13px;font-weight:500}.user-profile .user-email,.user-profile .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-profile .user-email{color:var(--text-secondary);font-size:11px}.logout-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:all .2s ease;width:32px}.logout-btn:hover{background:var(--bg-hover);color:var(--danger)}.logout-btn svg{height:16px;width:16px}.main-content{background:var(--bg-primary);box-sizing:border-box;flex:1 1;margin-left:240px;min-width:0;overflow-x:hidden;padding:32px 40px;transition:margin-left .3s ease,padding .3s ease}.main-content:has(.map-container){height:100vh;overflow:hidden}.main-content.full-width{margin-left:0}.mobile-menu-btn{align-items:center;background:var(--bg-card);border:none;border-radius:10px;box-shadow:0 2px 8px #0000001a;color:var(--text-primary);cursor:pointer;display:none;height:44px;justify-content:center;left:16px;position:fixed;top:16px;transition:all .2s ease;width:44px;z-index:101}.mobile-menu-btn:hover{background:var(--bg-hover)}.mobile-menu-btn svg{height:20px;width:20px}.sidebar-overlay{background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:99}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:32px}.page-title{color:var(--text-primary);font-size:26px;font-weight:600;letter-spacing:-.5px;margin:0}.page-subtitle{color:var(--text-secondary);font-size:14px;margin-top:4px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:32px}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;transition:all .2s ease}.stat-card:hover{border-color:var(--border-hover);box-shadow:0 2px 12px #0000000a}.dark-mode .stat-card:hover{box-shadow:0 2px 12px #0003}.stat-header{gap:10px;margin-bottom:12px}.stat-header,.stat-icon{align-items:center;display:flex}.stat-icon{border-radius:8px;height:32px;justify-content:center;width:32px}.stat-icon svg{height:16px;width:16px}.stat-icon.pending{background:#fff3e0;color:var(--warning)}.stat-icon.completed{background:#e8f5e9;color:var(--success)}.stat-icon.primary{background:#e3f2fd;color:var(--accent)}.stat-icon.purple{background:#f3e5f5;color:var(--purple)}.stat-icon.cyan{background:#e0f7fa;color:var(--cyan)}.stat-icon.pink{background:#fce4ec;color:var(--pink)}.dark-mode .stat-icon.pending{background:#f5a62326}.dark-mode .stat-icon.completed{background:#34c75926}.dark-mode .stat-icon.primary{background:#0a84ff26}.dark-mode .stat-icon.purple{background:#af52de26}.dark-mode .stat-icon.cyan{background:#00acc126}.dark-mode .stat-icon.pink{background:#ec407a26}.stat-label{color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:.3px;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:28px;font-weight:600;letter-spacing:-.5px;line-height:1.2}.stat-trend{color:var(--success);font-size:12px;margin-top:4px}.search-bar{align-items:center;display:flex;gap:12px;margin-bottom:24px}.upload-zone{border:2px dashed var(--border-hover);border-radius:12px;cursor:pointer;margin:20px;padding:32px;text-align:center;transition:all .2s ease}.upload-zone:hover{background:#0071e30a;border-color:var(--accent)}.dark-mode .upload-zone:hover{background:#0a84ff14}.upload-zone svg{color:var(--text-secondary);height:40px;margin-bottom:12px;width:40px}.upload-zone:hover svg{color:var(--accent)}.upload-zone h4{color:var(--text-primary);font-size:15px;font-weight:500;margin:0 0 4px}.upload-zone p{color:var(--text-secondary);font-size:13px;margin:0}.upload-zone span{color:var(--accent);font-weight:500}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}}@media (max-width:768px){.mobile-menu-btn{display:flex}.sidebar-overlay{display:block;opacity:0;pointer-events:none;transition:opacity .3s ease}.sidebar-overlay.visible,.sidebar.open+.sidebar-overlay,.sidebar.open~.sidebar-overlay{opacity:1;pointer-events:auto}.sidebar{box-shadow:2px 0 12px #00000026;transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sidebar.open .logo{padding-left:60px}.main-content{margin-left:0;padding:80px 20px 20px;transform:none;will-change:auto}.page-header{align-items:flex-start;flex-direction:column}.page-title{font-size:22px}.stats-grid{grid-template-columns:1fr}.stat-card{padding:16px}.stat-value{font-size:24px}}.map-container{position:relative}.app-container .main-content .map-container,.map-container{height:100vh;margin:-32px -40px;overflow:hidden;width:calc(100% + 80px)}@media (max-width:768px){.app-container .main-content .map-container{bottom:0;height:100%;height:100dvh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;width:100%;width:100vw;z-index:1}.main-content:has(.map-container){height:100dvh;margin:0;overflow:hidden;padding:0}}.map-wrapper{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}@media (max-width:768px){.map-wrapper{height:100dvh;left:0;position:fixed;top:0;width:100vw}}.app-container:has(.sidebar.open) .sidebar-overlay{display:block;opacity:1;pointer-events:auto}.mapboxgl-popup-content{background:#0000!important;border-radius:0!important;box-shadow:none!important;padding:0!important}.mapboxgl-popup-tip{border-top-color:#808080cc!important}.dark-mode .mapboxgl-popup-tip{border-top-color:#2d2d2de6!important}.preview-banner{align-items:center;background:var(--accent);box-sizing:border-box;color:#fff;display:flex;font-size:14px;gap:16px;height:44px;justify-content:center;left:0;padding:0 16px;position:fixed;right:0;top:0;z-index:200}.preview-banner-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-banner-exit{background:#ffffff26;border:1px solid #ffffffb3;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-size:13px;font-weight:600;min-height:0;padding:6px 14px;transition:background .15s ease}.preview-banner-exit:hover{background:#ffffff47}.app-container.previewing .sidebar{height:calc(100dvh - 44px);top:44px}.app-container.previewing .main-content{margin-top:44px}.app-container.previewing .main-content:has(.map-container){margin-top:0}.app-container.previewing .mobile-menu-btn{top:60px}.bottom-sheet-backdrop{animation:fadeIn .2s ease;background:#0000004d;bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:1500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bottom-sheet{--sheet-max-height:55dvh;--peek-visible:55px;--sheet-anim:0.2s;background:#fff;background:var(--bg-card,#fff);border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -4px 20px #00000026;display:flex;flex-direction:column;left:0;margin:0 auto;max-height:var(--sheet-max-height);max-width:500px;padding:0;position:fixed;right:0;touch-action:none;transform:translateY(calc(100% - var(--peek-visible)));transition:transform var(--sheet-anim) cubic-bezier(.2,.9,.2,1);width:calc(100% - 24px);z-index:1501}.bottom-sheet[data-snap=full]{transform:translateY(0)}.bottom-sheet.dragging{transition:none}.bottom-sheet--entering{transform:translateY(100%)!important}.bottom-sheet--peek-hidden{transform:translateY(100%)}.bottom-sheet--expanded,.bottom-sheet--has-notes{--sheet-max-height:75dvh}.bottom-sheet-handle-area{align-items:center;cursor:grab;display:flex;flex-direction:column;flex-shrink:0;gap:4px;padding:8px 16px 6px;touch-action:none;-webkit-user-select:none;user-select:none}.bottom-sheet-handle-area:active{cursor:grabbing}.bottom-sheet-grip{background:#d1d5db;background:var(--text-muted,#d1d5db);border-radius:999px;height:4px;margin-bottom:2px;opacity:.7;width:40px}.bottom-sheet-header-actions{align-items:center;display:flex;gap:8px;left:12px;position:absolute;top:12px;z-index:2}.bottom-sheet-close,.bottom-sheet-jump-btn{align-items:center;background:#f3f4f6;background:var(--bg-input,#f3f4f6);border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:28px;justify-content:center;transition:background .2s ease;width:28px}.bottom-sheet-close{position:absolute;right:16px;top:14px;z-index:2}.bottom-sheet-jump-btn{border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb)}.bottom-sheet-jump-btn svg{height:14px;width:14px}.bottom-sheet-close:hover,.bottom-sheet-jump-btn:hover{background:#e5e7eb;background:var(--bg-hover,#e5e7eb);color:#111827;color:var(--text-primary,#111827)}.bottom-sheet-details-btn{align-items:center;background:#f3f4f6;background:var(--bg-input,#f3f4f6);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:14px;color:#111827;color:var(--text-primary,#111827);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:5px;height:28px;padding:0 10px;transition:background .2s ease;white-space:nowrap}.bottom-sheet-details-btn svg{height:14px;width:14px}.bottom-sheet-details-btn:hover{background:#e5e7eb;background:var(--bg-hover,#e5e7eb);color:#111827;color:var(--text-primary,#111827)}.bottom-sheet--has-shortcuts[data-snap=full] .bottom-sheet-title{padding-left:92px;padding-right:92px}.bottom-sheet--has-details-btn[data-snap=full] .bottom-sheet-title{padding-left:96px;padding-right:96px}.bottom-sheet-title{box-sizing:border-box;color:#111827;color:var(--text-primary,#111827);font-size:16px;font-weight:600;margin:4px 0 0;overflow:hidden;padding:0 40px;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.bottom-sheet-completed-badge{background:#34c75926;border-radius:10px;color:#34c759;color:var(--success,#34c759);display:inline-block;font-size:10px;font-weight:500;margin-top:2px;padding:2px 8px}.bottom-sheet-scroll{flex:0 1 auto;min-height:0;overflow-y:auto;padding:8px 16px calc(16px + env(safe-area-inset-bottom));touch-action:pan-y}.bottom-sheet-details{margin-bottom:16px}.bottom-sheet-attr{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:13px;margin:4px 0}.bottom-sheet-attr--copyable{border-radius:6px;cursor:pointer;margin-left:-4px;padding:2px 4px;transition:background .15s ease}.bottom-sheet-attr--copyable:hover{background:#f3f4f6;background:var(--bg-input,#f3f4f6)}.bottom-sheet-attr--copyable:active{background:#e5e7eb;background:var(--bg-hover,#e5e7eb)}.bottom-sheet-copied{color:#34c759;color:var(--success,#34c759);font-weight:500}.bottom-sheet-attr strong{color:#111827;color:var(--text-primary,#111827);font-weight:500}.bottom-sheet-distance-icon{color:#9ca3af;color:var(--text-muted,#9ca3af);height:12px;vertical-align:-1px;width:12px}.bottom-sheet-actions{display:flex;gap:10px}.bottom-sheet-notes{background:#00000008;background:var(--bg-subtle,#00000008);border-radius:8px;margin:10px 0 14px;padding:8px 10px}.bottom-sheet-notes-title{color:#9ca3af;color:var(--text-muted,#9ca3af);font-size:11px;font-weight:600;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.bottom-sheet-notes-list{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.bottom-sheet-note-entry{background:#f0b40014;border-radius:4px;padding:6px 8px}.bottom-sheet-note-text{color:#111827;color:var(--text-primary,#111827);font-size:13px;white-space:pre-wrap}.bottom-sheet-note-meta{color:#9ca3af;color:var(--text-muted,#9ca3af);font-size:11px;margin-top:2px}.bottom-sheet-btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:flex;flex:1 1;flex-direction:row;font-family:inherit;font-size:13px;font-weight:500;gap:5px;height:44px;justify-content:center;overflow:hidden;padding:0 6px;transition:opacity .2s ease;white-space:nowrap}.bottom-sheet-btn.complete-btn{background:#34c759;background:var(--success,#34c759);color:#fff}.bottom-sheet-btn.incomplete-btn{background:#f3f4f6;background:var(--bg-input,#f3f4f6);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#111827;color:var(--text-primary,#111827)}.bottom-sheet-btn.incomplete-btn:disabled{cursor:not-allowed;opacity:.4}.bottom-sheet-btn.note-btn{background:#f3f4f6;background:var(--bg-input,#f3f4f6);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#111827;color:var(--text-primary,#111827)}.bottom-sheet-btn.complete-btn:disabled{cursor:not-allowed;opacity:.4}.bottom-sheet-btn svg{display:block;flex-shrink:0;height:15px;width:15px}.bottom-sheet-note-flow{display:flex;flex-direction:column;gap:10px;margin-top:4px}.bottom-sheet-note-flow .bottom-sheet-btn{border-radius:12px;flex:none;font-size:15px;height:52px;min-height:52px}.bottom-sheet-note-flow .bottom-sheet-btn svg{height:17px;width:17px}.bottom-sheet-photo-preview{border-radius:10px;max-height:160px;overflow:hidden;width:100%}.bottom-sheet-photo-preview img{display:block;height:100%;object-fit:cover;width:100%}.bottom-sheet-note-label{color:#111827;color:var(--text-primary,#111827);font-size:13px;font-weight:500}.bottom-sheet-common-notes{display:flex;flex-wrap:wrap;gap:7px}.bottom-sheet-common-note{background:#f3f4f6;background:var(--bg-input,#f3f4f6);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;color:#111827;color:var(--text-primary,#111827);cursor:pointer;font-family:inherit;font-size:14px;line-height:1.3;min-height:34px;min-width:0;padding:6px 11px;text-align:left;transition:background .12s ease,border-color .12s ease,color .12s ease}.bottom-sheet-common-note:nth-child(odd){background:#fff;background:var(--bg-card,#fff)}.bottom-sheet-common-note:nth-child(2n){background:#f3f4f6;background:var(--bg-input,#f3f4f6)}.bottom-sheet-common-note.is-picked,.bottom-sheet-common-note.is-picked:hover{background:#0071e3;background:var(--accent,#0071e3);border-color:#0071e3;border-color:var(--accent,#0071e3);color:#fff}.bottom-sheet-common-note:hover{background:#e5e7eb;background:var(--bg-hover,#e5e7eb)}.bottom-sheet-note-textarea{background:#f9fafb;background:var(--bg-input,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:10px;box-sizing:border-box;color:#111827;color:var(--text-primary,#111827);font-family:inherit;font-size:14px;min-height:80px;padding:10px 12px;resize:vertical;transition:border-color .2s ease;width:100%}.bottom-sheet-note-textarea:focus{border-color:#f0b400;border-color:var(--accent,#f0b400);outline:none}.bottom-sheet-note-textarea::placeholder{color:#9ca3af;color:var(--text-muted,#9ca3af)}.bottom-sheet-note-actions{display:flex;gap:10px}.bottom-sheet-note-actions .bottom-sheet-btn{flex:1 1}.bottom-sheet-btn.note-cancel-btn{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#4b5563;color:var(--text-secondary,#4b5563)}.bottom-sheet-override-warning{background:#f0b4001a;border:1px solid #f0b40059;border-radius:12px;padding:12px 14px}.bottom-sheet-override-title{color:#111827;color:var(--text-primary,#111827);font-size:15px;font-weight:600;margin-bottom:4px}.bottom-sheet-override-text{color:#4b5563;color:var(--text-secondary,#4b5563);font-size:13px;line-height:1.45;margin:0}.progress-modal{bottom:20px;font-family:inherit;position:fixed;right:20px;z-index:800}.progress-modal.expanded{animation:slideUp .2s ease-out;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 4px 20px #0000001f;display:flex;flex-direction:column;max-height:33vh;width:380px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.progress-modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px}.progress-modal-title{color:var(--text-primary);font-size:13px;font-weight:600}.progress-modal-header-actions{align-items:center;display:flex;gap:8px}.progress-header-btn{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:500;padding:4px 8px;transition:background-color .15s ease,color .15s ease}.progress-header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.progress-header-btn.icon{align-items:center;display:flex;justify-content:center;padding:4px}.progress-operation-list{flex:0 1 auto;overflow-y:auto;padding:8px}.progress-operation-item{animation:itemSlideIn .2s ease-out;background:var(--bg-input);border-radius:8px;margin-bottom:6px;padding:10px 12px;text-align:left;transition:background-color .15s ease}.progress-operation-item:last-child{margin-bottom:0}@keyframes itemSlideIn{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.progress-operation-item.completed{background:#34c7591a}.progress-operation-item.error{background:#ff3b301a;border:none;padding:10px 12px}.progress-operation-header{align-items:flex-start;display:flex;gap:10px}.progress-operation-icon{align-items:center;border-radius:50%;color:var(--accent);display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.progress-operation-icon.completed{background:#34c75926;color:var(--success)}.progress-operation-icon.error{background:#ff3b3026;border:none;color:var(--danger);padding:0}.progress-operation-content{flex:1 1;min-width:0}.progress-operation-label{color:var(--text-primary);font-size:12.5px;font-weight:500;line-height:1.3;text-align:left;word-break:break-word}.progress-operation-message{color:var(--text-secondary)}.progress-operation-error,.progress-operation-message{font-size:12px;line-height:1.35;margin:4px 0 0 38px;text-align:left}.progress-operation-error{color:var(--danger)}.progress-operation-actions{align-items:center;display:flex;flex-shrink:0;gap:4px}.progress-action-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;height:24px;justify-content:center;transition:background-color .15s ease,color .15s ease;width:24px}.progress-action-btn:hover{background:var(--bg-hover)}.progress-action-btn.retry:hover{color:var(--accent)}.progress-action-btn.close:hover{color:var(--danger)}.progress-text-action-btn{background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--accent);cursor:pointer;font-size:11px;font-weight:600;padding:3px 10px;transition:background-color .15s ease,color .15s ease,border-color .15s ease;white-space:nowrap}.progress-text-action-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.progress-text-action-btn.danger{border-color:#ff3b304d;color:var(--danger)}.progress-text-action-btn.danger:hover{background:var(--danger);border-color:var(--danger);color:#fff}.progress-text-action-done{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:11px;font-weight:600;padding:3px 10px;white-space:nowrap}.progress-bar-container{background:var(--border-color);border-radius:2px;height:4px;margin-top:10px;overflow:hidden}.progress-bar-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s ease}.progress-bar-fill.indeterminate{animation:indeterminateProgress 1.5s ease-in-out infinite;width:30%}@keyframes indeterminateProgress{0%{transform:translateX(-100%)}50%{transform:translateX(200%)}to{transform:translateX(-100%)}}.progress-spinner{animation:spin 1s linear infinite}.progress-minimized-indicator{align-items:center;animation:slideUp .2s ease-out;background:var(--bg-card);border:1px solid var(--border-color);border-radius:28px;box-shadow:0 2px 12px #0000001a;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:8px;padding:10px 14px;transition:box-shadow .15s ease,border-color .15s ease,opacity .15s ease}.progress-minimized-indicator:hover{border-color:var(--border-hover);box-shadow:0 4px 20px #0000001f}.progress-minimized-indicator svg{color:var(--accent)}.progress-minimized-count{color:var(--text-secondary)}.progress-minimized-indicator.idle{opacity:.7}.progress-minimized-indicator.idle:hover{opacity:1}.progress-minimized-indicator.idle svg{color:var(--success)}.progress-minimized-error-dot{background:var(--danger);border-radius:50%;height:8px;width:8px}.progress-minimized-indicator.all-done{border-radius:50%;gap:0;justify-content:center;padding:8px}.progress-minimized-indicator.all-done svg{color:var(--success)}.progress-minimized-indicator.empty{border-radius:50%;box-shadow:0 1px 4px #0000000f;font-size:12px;gap:0;justify-content:center;opacity:.5;padding:8px}.progress-minimized-indicator.empty:hover{opacity:.8}.progress-empty-state,.progress-minimized-indicator.empty svg{color:var(--text-secondary)}.progress-empty-state{font-size:13px;padding:24px 16px;text-align:center}@media (max-width:768px){.progress-modal.expanded{border-bottom:none;border-left:none;border-radius:12px 12px 0 0;border-right:none;bottom:0;left:0;max-height:50vh;right:0;width:100%}}.map-skeleton{background-color:#e7e9ec;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:1000}.dark-mode .map-skeleton,.map-skeleton.dark-mode{background-color:#2b2f33}.map-skeleton-shimmer{animation:map-skeleton-shimmer 1.3s ease-in-out infinite;background:linear-gradient(90deg,#fff0,#ffffffd9 50%,#fff0);height:100%;left:0;position:absolute;top:0;transform:translateX(-100%);width:100%}.dark-mode .map-skeleton .map-skeleton-shimmer,.map-skeleton.dark-mode .map-skeleton-shimmer{background:linear-gradient(90deg,#fff0,#ffffff29 50%,#fff0)}@keyframes map-skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.map-skeleton-shimmer{animation:none}}.people-page{--pp-bg:#f5f5f7;--pp-card:#fff;--pp-ink:#1d1d1f;--pp-ink-2:#6b7280;--pp-ink-3:#9ca3af;--pp-line:#e5e7eb;--pp-line-2:#f3f4f6;--pp-accent:#0071e3;--pp-accent-ink:#0059b8;--pp-accent-wash:#eaf3fe;--pp-good:#1f9d55;--pp-good-wash:#e7f6ec;--pp-warn:#b7791f;--pp-warn-wash:#fdf3e0;--pp-bad:#d32f2f;--pp-bad-wash:#fdeceb;--pp-purple:#6b46c1;--pp-purple-wash:#f0ebfb;--pp-teal:#0f766e;--pp-teal-wash:#e4f4f2;--pp-ctl-h:40px;--pp-shadow:0 1px 2px #1018280a,0 1px 3px #1018280f;color:var(--pp-ink);margin:0 auto;max-width:1000px;padding:28px 20px 80px}.dark-mode .people-page{--pp-bg:#1a1a1a;--pp-card:#252525;--pp-ink:#f5f5f7;--pp-ink-2:#a1a1aa;--pp-ink-3:#71717a;--pp-line:#3a3a3a;--pp-line-2:#2d2d2d;--pp-accent:#3b82f6;--pp-accent-ink:#60a5fa;--pp-accent-wash:#1e2f45;--pp-good:#4ade80;--pp-good-wash:#17301f;--pp-warn:#fbbf24;--pp-warn-wash:#33280f;--pp-bad:#f87171;--pp-bad-wash:#3a1c1c;--pp-purple:#a78bfa;--pp-purple-wash:#2a2140;--pp-teal:#5eead4;--pp-teal-wash:#16302c;--pp-shadow:none}.people-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:22px}.people-head h1{font-size:28px;font-weight:700;letter-spacing:-.02em;margin:0 0 2px}.people-head .people-sub{color:var(--pp-ink-2);font-size:14px;margin:0}.pp-btn{align-items:center;border:1px solid #0000;border-radius:9px;box-sizing:border-box;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;gap:7px;height:var(--pp-ctl-h);min-height:0;padding:0 16px;transition:background .12s,border-color .12s,color .12s;white-space:nowrap}.pp-btn:focus-visible{outline:2px solid var(--pp-accent);outline-offset:2px}.pp-btn-primary{background:var(--pp-accent);color:#fff}.pp-btn-primary:hover{background:var(--pp-accent-ink)}.pp-btn-ghost{background:var(--pp-card);border-color:var(--pp-line);color:var(--pp-ink)}.pp-btn-ghost:hover{background:var(--pp-line-2)}.pp-btn-danger{background:var(--pp-card);border-color:var(--pp-bad);color:var(--pp-bad)}.pp-btn-danger:hover{background:var(--pp-bad-wash)}.pp-btn-sm{border-radius:8px;font-size:13px;height:34px;padding:0 12px}.pp-btn:disabled{cursor:default;opacity:.55}.people-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.people-search{flex:1 1 260px;min-width:200px;position:relative}.people-search input{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:9px;box-sizing:border-box;color:var(--pp-ink);font-family:inherit;font-size:14px;height:var(--pp-ctl-h);padding:0 14px 0 38px;width:100%}.people-search input:focus{border-color:var(--pp-accent);box-shadow:0 0 0 3px var(--pp-accent-wash);outline:none}.people-search .search-ico{color:var(--pp-ink-3);left:13px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.people-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.people-chip{align-items:center;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:999px;box-sizing:border-box;color:var(--pp-ink-2);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:7px;height:34px;min-height:0;padding:0 14px;transition:all .12s}.people-chip:hover{color:var(--pp-ink)}.people-chip.active{background:var(--pp-ink);border-color:var(--pp-ink);color:var(--pp-bg)}.people-chip .chip-count{font-feature-settings:"tnum";background:var(--pp-line-2);border-radius:999px;color:var(--pp-ink-2);font-size:12px;font-variant-numeric:tabular-nums;padding:1px 7px}.people-chip.active .chip-count{background:#7d7d7d59;color:var(--pp-bg)}.people-list{display:flex;flex-direction:column;gap:10px}.people-row{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:12px;box-shadow:var(--pp-shadow);overflow:hidden}.people-row-head{align-items:center;cursor:pointer;display:flex;gap:14px;padding:13px 16px;-webkit-user-select:none;user-select:none}.people-row-head:hover{background:var(--pp-line-2)}.pp-avatar{border-radius:50%;color:#fff;display:grid;flex:none;font-size:15px;font-weight:700;height:40px;letter-spacing:-.01em;place-items:center;width:40px}.pp-avatar.company{background:var(--pp-teal-wash);border-radius:10px;color:var(--pp-teal)}.pp-avatar.company svg{height:19px;width:19px}.pp-id{flex:1 1 auto;min-width:0}.pp-id .pp-name{font-size:15px;font-weight:600}.pp-id .pp-sub{color:var(--pp-ink-2);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pp-meta{align-items:center;display:flex;flex:none;gap:10px}.pp-detail{color:var(--pp-ink-2);display:none;font-size:13px;text-align:right}@media (min-width:720px){.pp-detail{display:block}}.pp-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 9px;white-space:nowrap}.pp-badge.owner{background:var(--pp-accent-wash);color:var(--pp-accent-ink)}.pp-badge.admin{background:var(--pp-purple-wash);color:var(--pp-purple)}.pp-badge.employee{background:var(--pp-line-2);color:var(--pp-ink-2)}.pp-badge.property-owner{background:var(--pp-teal-wash);color:var(--pp-teal)}.pp-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:5px;padding:3px 9px;white-space:nowrap}.pp-pill .pp-dot{border-radius:50%;height:6px;width:6px}.pp-pill.active{background:var(--pp-good-wash);color:var(--pp-good)}.pp-pill.active .pp-dot{background:var(--pp-good)}.pp-pill.pending{background:var(--pp-warn-wash);color:var(--pp-warn)}.pp-pill.pending .pp-dot{background:var(--pp-warn)}.pp-pill.expired,.pp-pill.revoked{background:var(--pp-bad-wash);color:var(--pp-bad)}.pp-pill.expired .pp-dot,.pp-pill.revoked .pp-dot{background:var(--pp-bad)}.pp-pill.none,.pp-pill.used{background:var(--pp-line-2);color:var(--pp-ink-2)}.pp-pill.none .pp-dot,.pp-pill.used .pp-dot{background:var(--pp-ink-3)}.pp-caret{color:var(--pp-ink-3);flex:none;transition:transform .18s}.people-row.open .pp-caret{transform:rotate(90deg)}.pk-block{background:var(--pp-line);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.pk-block:after{animation:pk-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#fff0,#ffffff73 50%,#fff0);content:"";inset:0;position:absolute;transform:translateX(-100%)}.dark-mode .pk-block:after{background:linear-gradient(90deg,#fff0,#ffffff12 50%,#fff0)}@keyframes pk-shimmer{to{transform:translateX(100%)}}.pk-title{display:block;height:28px;margin-bottom:4px;width:140px}.pk-sub{display:block;height:14px;width:220px}.pk-invite-btn{border-radius:10px;height:var(--pp-ctl-h);width:104px}.pk-chip{border-radius:999px;height:34px;width:108px}.pk-search{border-radius:10px;display:block;height:var(--pp-ctl-h);width:100%}.pk-row-head{cursor:default}.pk-row-head:hover{background:#0000}.pk-avatar{border-radius:50%;flex:none;height:40px;width:40px}.pk-name{display:block;height:15px;margin-bottom:7px;max-width:200px;width:42%}.pk-email{display:block;height:13px;max-width:300px;width:62%}.pk-badge{width:70px}.pk-badge,.pk-pill{border-radius:999px;height:22px}.pk-pill{width:62px}.pp-panel{background:var(--pp-line-2);border-top:1px solid var(--pp-line);padding:18px 16px}.pp-field-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:1fr}@media (min-width:560px){.pp-field-grid{grid-template-columns:1fr 1fr}}.pp-field label{color:var(--pp-ink-3);display:block;font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:5px;text-transform:uppercase}.pp-val-edit{align-items:center;display:flex;gap:8px}.pp-val-static{color:var(--pp-ink);font-size:14px;word-break:break-word}.pp-field input.pp-txt{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:8px;box-sizing:border-box;color:var(--pp-ink);font-family:inherit;font-size:14px;height:36px;padding:0 11px;width:100%}.pp-field input.pp-txt:focus{border-color:var(--pp-accent);box-shadow:0 0 0 3px var(--pp-accent-wash);outline:none}.pp-icon-btn{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:8px;color:var(--pp-ink-2);cursor:pointer;display:grid;flex:none;height:36px;place-items:center;width:36px}.pp-icon-btn:hover{background:var(--pp-line-2);color:var(--pp-ink)}.pp-subhead{color:var(--pp-ink);font-size:13px;font-weight:700;margin:20px 0 10px}.pp-subhead .pp-n{color:var(--pp-ink-3);font-weight:600}.pp-sub-list{display:flex;flex-direction:column;gap:8px}.pp-sub-item{align-items:center;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:10px;display:flex;font-size:13px;gap:12px;padding:10px 12px}.pp-sub-item .pp-grow{flex:1 1 auto;min-width:0}.pp-sub-item .pp-grow .l1{font-weight:600}.pp-sub-item .pp-grow .l2{color:var(--pp-ink-2);font-size:12px}.pp-actions{border-top:1px solid var(--pp-line);display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:16px}.pp-row-error{background:var(--pp-bad-wash);border-radius:8px;color:var(--pp-bad);font-size:13px;margin-top:12px;padding:9px 12px}.pp-kv{color:var(--pp-ink-2);display:flex;flex-wrap:wrap;font-size:13px;gap:6px 22px;margin:0 0 4px}.pp-kv b{color:var(--pp-ink);font-weight:600}.pp-code{background:var(--pp-line-2);border-radius:6px;color:var(--pp-ink-2);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;padding:3px 8px;word-break:break-all}.people-empty{color:var(--pp-ink-2);padding:56px 20px;text-align:center}.people-empty .t{color:var(--pp-ink);font-size:16px;font-weight:600;margin-bottom:4px}.pp-overlay{align-items:flex-start;background:#11182780;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:40px 16px;position:fixed;z-index:1000}.pp-modal{background:var(--pp-card);border-radius:16px;box-shadow:0 24px 60px #10182847;color:var(--pp-ink);margin:auto 0;max-width:460px;width:100%}.pp-modal-head{padding:20px 22px 0}.pp-modal-head h2{font-size:19px;font-weight:700;letter-spacing:-.01em;margin:0 0 4px}.pp-modal-head p{color:var(--pp-ink-2);font-size:13px;margin:0}.pp-modal-body{display:flex;flex-direction:column;gap:15px;padding:18px 22px}.pp-modal-body label{color:var(--pp-ink-3);display:block;font-size:12px;font-weight:700;letter-spacing:.04em;margin-bottom:6px;text-transform:uppercase}.pp-lbl-opt{color:var(--pp-ink-3);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}.pp-modal-body input,.pp-modal-body select{-webkit-appearance:none;appearance:none;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:9px;box-sizing:border-box;color:var(--pp-ink);font-family:inherit;font-size:14px;height:40px;padding:0 12px;width:100%}.pp-modal-body select{background-image:url("data:image/svg+xml;utf8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%2712%27 height=%2712%27 viewBox=%270 0 12 12%27><path d=%27M2 4l4 4 4-4%27 fill=%27none%27 stroke=%27%236b7280%27 stroke-width=%271.6%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.pp-modal-body input:focus,.pp-modal-body select:focus{border-color:var(--pp-accent);box-shadow:0 0 0 3px var(--pp-accent-wash);outline:none}.pp-two{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.pp-modal-foot{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:14px 22px 20px}.pp-modal-foot,details.pp-adv{border-top:1px solid var(--pp-line)}details.pp-adv{padding-top:4px}details.pp-adv summary{align-items:center;color:var(--pp-ink-2);cursor:pointer;display:flex;font-size:13px;font-weight:600;gap:6px;list-style:none;padding:6px 0}details.pp-adv summary::-webkit-details-marker{display:none}details.pp-adv summary:before{border-bottom:1.6px solid var(--pp-ink-3);border-right:1.6px solid var(--pp-ink-3);content:"";height:6px;transform:rotate(-45deg);transition:transform .15s;width:6px}details.pp-adv[open] summary:before{transform:rotate(45deg)}details.pp-adv .pp-two{margin-top:10px}.pp-result-summary{background:var(--pp-good-wash);border-radius:9px;color:var(--pp-ink);font-size:14px;padding:12px 14px}.pp-result-summary b{font-weight:600}.pp-link-box{align-items:center;background:var(--pp-line-2);border-radius:9px;display:flex;gap:8px;padding:8px 8px 8px 12px}.pp-link-box code{color:var(--pp-ink-2);flex:1 1 auto;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.people-access-denied{color:var(--pp-ink-2);padding:80px 20px;text-align:center}.people-access-denied h2{color:var(--pp-ink);margin:12px 0 6px}@media (prefers-reduced-motion:reduce){.details.pp-adv summary:before,.pp-caret{transition:none}}.address-autocomplete{min-width:500px;position:relative}.address-autocomplete .edit-input{max-width:none;min-width:500px;width:100%}.address-suggestions{background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;box-shadow:0 4px 12px #00000026;left:0;list-style:none;margin-top:2px;max-height:200px;overflow-y:auto;padding:0;position:absolute;right:0;top:100%;z-index:1000}.address-suggestion{border-bottom:1px solid var(--border-color);cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:8px 10px}.address-suggestion:last-child{border-bottom:none}.address-suggestion.active,.address-suggestion:hover{background:var(--bg-hover)}.suggestion-main{color:var(--text-primary);font-size:14px;font-weight:500}.suggestion-secondary{color:var(--text-secondary);font-size:12px}.property-data-container{display:flex;flex-direction:column;margin:0 auto;max-width:100%;min-width:0;padding:0}.property-data-header{display:flex;flex-direction:column;flex-shrink:0;gap:14px;margin-bottom:16px}.property-data-header h1{color:var(--text-primary);font-size:26px;font-weight:600;margin:0}.controls{flex-wrap:wrap;gap:12px}.controls,.search-container{align-items:center;display:flex}.search-container{max-width:320px;min-width:180px}.search-icon{color:var(--text-muted);font-size:14px;left:14px;pointer-events:none;position:absolute;z-index:1}.property-data-container .search-input{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 14px 10px 40px;transition:all .2s ease;width:100%}.property-data-container .search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.property-data-container .search-input::placeholder{color:var(--text-muted)}.action-buttons{align-items:center;display:flex;gap:10px}.add-property-button{align-items:center;background-color:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.add-property-button:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.undo-button{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.undo-button:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--accent)}.undo-button:disabled{cursor:not-allowed;opacity:.4}.toolbar-toggle-btn{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.toolbar-toggle-btn:hover{background-color:var(--bg-hover);border-color:var(--accent)}.tools-menu-container{position:relative}.tools-menu-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.tools-menu-dropdown{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;gap:2px;margin-top:4px;min-width:200px;padding:6px;position:absolute;right:0;top:100%;z-index:100}.tools-menu-dropdown button{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:10px;padding:10px 14px;text-align:left;transition:background-color .15s ease;width:100%}.tools-menu-dropdown button:hover:not(:disabled){background-color:var(--bg-hover)}.tools-menu-dropdown button:disabled{cursor:not-allowed;opacity:.4}.tools-menu-section{align-items:center;display:flex;gap:10px;padding:8px 14px}.tools-menu-label{color:var(--text-secondary);font-size:13px;font-weight:600;white-space:nowrap}.tools-menu-select{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;flex:1 1;font-family:inherit;font-size:13px;min-width:0;padding:6px 10px}.tools-menu-select:focus{border-color:var(--accent);outline:none}.tools-menu-divider{background-color:var(--border-color);height:1px;margin:4px 8px}.card-list-container{display:flex;flex-direction:column;min-height:0}.table-info{align-items:center;display:flex;gap:12px;justify-content:space-between;padding:0 2px 8px}.table-info p{color:var(--text-secondary);font-size:13px;margin:0}.select-all-link{background:none;border:none;color:var(--accent);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:4px 6px}.select-all-link:hover{text-decoration:underline}.table-info-actions{align-items:center;display:flex;gap:12px}.page-size-selector{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:6px}.page-size-selector select{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;padding:4px 8px}.table-info-bottom{border-top:1px solid var(--border-color);justify-content:space-between;margin-top:4px;padding-top:10px}.property-card-list{display:flex;flex-direction:column;gap:6px;padding-bottom:80px}.property-card{align-items:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;gap:12px;padding:10px 14px;transition:border-color .15s ease,background-color .15s ease}.property-card:hover{background-color:var(--bg-hover);border-color:var(--border-hover)}.property-card .row-checkbox{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:17px;width:17px}.property-card-main{flex:1 1;min-width:0}.property-card-address{align-items:center;color:var(--text-primary);display:flex;font-size:14px;font-weight:600;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-card-address .placeholder-text{color:var(--text-muted);font-weight:400}.notes-indicator{color:var(--warning);flex-shrink:0;font-size:11px}.property-card-sub{color:var(--text-secondary);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.property-card-badges{align-items:center;display:flex;flex-shrink:0;gap:6px}.days-badge{background-color:#0071e314;border-radius:7px;color:var(--accent);font-size:11px;font-weight:500;padding:3px 9px;white-space:nowrap}.dark-mode .days-badge{background-color:#0a84ff26}.rate-badge{font-feature-settings:"tnum";background-color:var(--bg-hover);border-radius:7px;color:var(--text-primary);font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;padding:3px 9px;white-space:nowrap}.card-map-btn{align-items:center;background-color:#0071e31a;border:none;border-radius:8px;color:var(--accent);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;transition:all .15s ease;width:32px}.card-map-btn:hover:not(:disabled){background-color:var(--accent);color:#fff}.card-map-btn:disabled{cursor:not-allowed;opacity:.3}.pr-skeleton-block{background:var(--bg-hover);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.pr-skeleton-block:after{animation:pr-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#fff0,#ffffff80 50%,#fff0);content:"";inset:0;position:absolute;transform:translateX(-100%)}.dark-mode .pr-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1a 50%,#fff0)}@keyframes pr-skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.pr-skeleton-block:after{animation:none}}.pr-skeleton-search{border-radius:10px;flex:1 1;height:40px;max-width:320px;min-width:180px}.pr-skeleton-btn{border-radius:10px;height:40px;width:88px}.pr-skeleton-btn-primary{border-radius:10px;height:40px;width:132px}.pr-skeleton-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pr-skeleton-pill{border-radius:999px;height:34px;width:96px}.pr-skeleton-card{cursor:default}.pr-skeleton-card:hover{background-color:var(--bg-card);border-color:var(--border-color)}.pr-skeleton-check{border-radius:4px;flex-shrink:0;height:17px;width:17px}.pr-skeleton-name{display:block;height:14px;margin-bottom:7px;max-width:340px;width:60%}.pr-skeleton-sub{display:block;height:11px;max-width:240px;width:42%}.pr-skeleton-days{border-radius:7px;height:22px;width:42px}.pr-skeleton-rate{border-radius:7px;height:22px;width:54px}.pr-skeleton-status{border-radius:7px;height:22px;width:58px}.pr-skeleton-map{border-radius:8px;flex-shrink:0;height:32px;width:32px}@media (max-width:600px){.pr-skeleton-btn-primary{width:100px}.pr-skeleton-pill{width:80px}}.selected-card{background-color:#0071e30d;border-color:var(--accent)}.dark-mode .selected-card{background-color:#0071e31f}.duplicate-card{background-color:#f5a6231f;border-color:#f5a6238c}.dark-mode .duplicate-card{background-color:#f5a62329}.bulk-edited-card{animation:bulk-flash 3s ease;background-color:#34c7591a}.dark-mode .bulk-edited-card{background-color:#34c75924}@keyframes bulk-flash{0%{background-color:#34c7594d}to{background-color:#34c7591a}}.restored-card{animation:restored-flash 3s ease}@keyframes restored-flash{0%{background-color:#0071e347}to{background-color:initial}}.service-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:12px;font-weight:600;padding:4px 10px;white-space:nowrap}.service-badge.service-yes{background-color:#34c75926;color:var(--success)}.service-badge.service-no{background-color:#8e8e9326;color:var(--text-muted)}.dark-mode .service-badge.service-yes{background-color:#34c75933}.dark-mode .service-badge.service-no{background-color:#8e8e9333}.service-badge.service-pending{background-color:#ffc10726;color:#f0ad4e;color:var(--warning,#f0ad4e);font-size:10px;gap:3px;padding:3px 7px}.dark-mode .service-badge.service-pending{background-color:#ffc10733}.bulk-action-bar{align-items:center;animation:bulk-bar-in .2s ease;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;bottom:16px;box-shadow:0 8px 30px #0000002e;display:flex;gap:6px;left:50%;max-width:calc(100vw - 16px);overflow-x:auto;padding:8px 10px;position:fixed;scrollbar-width:none;transform:translateX(-50%);z-index:500}.bulk-action-bar::-webkit-scrollbar{display:none}@keyframes bulk-bar-in{0%{transform:translateX(-50%) translateY(120%)}to{transform:translateX(-50%) translateY(0)}}.bulk-selected-count{color:var(--accent);font-weight:600;padding:0 6px}.bulk-action-btn,.bulk-selected-count{flex-shrink:0;font-size:12px;white-space:nowrap}.bulk-action-btn{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-weight:500;gap:5px;padding:8px 12px;transition:all .15s ease}.bulk-action-btn.active,.bulk-action-btn:hover{border-color:var(--accent)}.bulk-action-btn.active{background-color:var(--accent);color:#fff}.bulk-action-btn.danger{color:var(--danger)}.bulk-action-btn.danger:hover{border-color:var(--danger)}.bulk-clear-btn{align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;flex-shrink:0;font-size:15px;padding:4px 8px}.bulk-clear-btn:hover{color:var(--text-primary)}.bulk-popover{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;bottom:76px;box-shadow:0 8px 30px #0000002e;left:50%;max-width:calc(100vw - 24px);padding:14px;position:fixed;transform:translateX(-50%);width:320px;z-index:501}.bulk-popover-label{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.4px;margin-bottom:10px;text-transform:uppercase}.bulk-popover-row{align-items:center;display:flex;gap:8px}.bulk-popover-row input,.bulk-popover-row select{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:13px;min-width:0;padding:9px 11px}.bulk-popover-row input:focus,.bulk-popover-row select:focus{border-color:var(--accent);outline:none}.bulk-popover-row .day-toggle-grid{flex:1 1}.region-cancel-btn{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:34px;justify-content:center;width:34px}.region-cancel-btn:hover{border-color:var(--accent);color:var(--text-primary)}.region-add-row{align-items:center;display:flex;gap:8px}.region-add-row input{flex:1 1;min-width:0}.bulk-apply-btn{background-color:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:600;padding:9px 16px}.bulk-apply-btn:hover{background-color:var(--accent-hover)}.day-toggle-grid{display:flex;gap:4px}.day-toggle-grid button{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:12px;font-weight:500;min-width:0;padding:9px 0;transition:all .15s ease}.day-toggle-grid button.on{background-color:#0071e31f;border-color:var(--accent);color:var(--accent);font-weight:600}.dark-mode .day-toggle-grid button.on{background-color:#0a84ff33}.drawer-overlay{animation:overlay-in .2s ease;background-color:#00000059;bottom:0;left:0;position:fixed;right:0;top:0;z-index:900}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.edit-drawer{animation:drawer-in .25s ease;background-color:var(--bg-card);border-left:1px solid var(--border-color);bottom:0;display:flex;flex-direction:column;max-width:100vw;overflow-x:hidden;position:fixed;right:0;top:0;width:420px;z-index:901}@keyframes drawer-in{0%{transform:translateX(105%)}to{transform:translateX(0)}}.drawer-header{align-items:center;display:flex;flex-shrink:0;gap:12px;justify-content:space-between;padding:18px 20px 12px}.drawer-header h2{color:var(--text-primary);font-size:17px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-close-btn{align-items:center;background-color:var(--bg-hover);border:none;border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:13px;height:30px;justify-content:center;width:30px}.drawer-close-btn:hover{color:var(--text-primary)}.drawer-body{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:4px 20px 20px}.edit-drawer .address-autocomplete,.edit-drawer .address-autocomplete .edit-input,.edit-drawer .address-autocomplete input,.edit-drawer .address-autocomplete textarea{box-sizing:border-box;max-width:100%;min-width:0;width:100%}.edit-drawer .address-autocomplete .edit-input{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);font-family:inherit;font-size:14px;line-height:1.4;min-height:72px;padding:10px 12px;resize:none}.edit-drawer .address-autocomplete .edit-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.drawer-field{flex:1 1;margin-bottom:15px;min-width:0}.drawer-field label{color:var(--text-secondary);display:block;font-size:11px;font-weight:600;letter-spacing:.4px;margin-bottom:6px;text-transform:uppercase}.drawer-field .required-mark{color:var(--danger)}.drawer-field .pending-note{color:var(--warning);font-weight:500;letter-spacing:0;text-transform:none}.drawer-field input,.drawer-field select,.drawer-field textarea{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:9px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 12px;width:100%}.drawer-field input:focus,.drawer-field select:focus,.drawer-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.drawer-field textarea{resize:vertical}.drawer-field-row{display:flex;gap:12px}.status-segment{background-color:var(--bg-input);border-radius:9px;display:flex;gap:4px;padding:3px}.status-segment button{background:#0000;border:none;border-radius:7px;color:var(--text-secondary);cursor:pointer;flex:1 1;font-family:inherit;font-size:12px;font-weight:500;min-width:0;padding:8px 4px;transition:all .15s ease;white-space:nowrap}.status-segment button.on{background-color:var(--bg-card);box-shadow:0 1px 3px #0000001a;font-weight:600}.status-segment button.on.status-active{color:var(--success)}.status-segment button.on.status-pending{color:var(--warning)}.status-segment button.on.status-inactive{color:var(--danger)}.drawer-row-actions{border-top:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:8px;margin-top:4px;padding-top:14px}.drawer-action-btn{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;font-weight:500;gap:6px;padding:8px 13px;transition:all .15s ease}.drawer-action-btn:hover:not(:disabled){border-color:var(--accent)}.drawer-action-btn:disabled{cursor:not-allowed;opacity:.4}.drawer-action-btn.danger{color:var(--danger);margin-left:auto}.drawer-action-btn.danger:hover{border-color:var(--danger)}.drawer-validation-error{background:#ef44441a;border:1px solid #ef44444d;border-radius:6px;color:#b91c1c;font-size:13px;margin:0 20px;padding:8px 12px}.drawer-footer{border-top:1px solid var(--border-color);display:flex;flex-shrink:0;gap:10px;padding:14px 20px}.drawer-cancel-btn{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:11px 18px}.drawer-cancel-btn:hover:not(:disabled){background-color:var(--bg-hover)}.drawer-save-btn{background-color:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;flex:1 1;font-family:inherit;font-size:14px;font-weight:600;padding:11px}.drawer-save-btn:hover:not(:disabled){background-color:var(--accent-hover)}.drawer-cancel-btn:disabled,.drawer-save-btn:disabled{cursor:not-allowed;opacity:.5}.pager{display:flex;flex-direction:row;gap:12px;padding:14px 0 90px}.pager,.pager-arrow{align-items:center;justify-content:center}.pager-arrow{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;display:inline-flex;flex:0 0 auto;font-family:inherit;height:36px;padding:0;transition:border-color .15s ease;width:40px}.pager-arrow:hover:not(:disabled){border-color:var(--accent)}.pager-arrow:disabled{cursor:not-allowed;opacity:.4}.pager-info{font-size:13px;min-width:56px;white-space:nowrap}.no-data-message,.pager-info{color:var(--text-secondary);text-align:center}.no-data-message{font-size:14px;padding:40px 20px}.loading-container{padding:60px 20px}.loading-container,.modal-overlay{align-items:center;display:flex;justify-content:center}.modal-overlay{background-color:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:var(--bg-card);border-radius:14px;box-shadow:0 20px 60px #0000004d;max-width:440px;padding:28px;width:90%}.modal-content h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 20px}.modal-body{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.modal-field{align-items:center;display:flex;gap:12px}.modal-field label{color:var(--text-secondary);font-size:14px;font-weight:500;min-width:100px}.modal-value{font-weight:600}.modal-date-input,.modal-value{color:var(--text-primary);font-size:14px}.modal-date-input{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;flex:1 1;font-family:inherit;padding:10px 14px}.modal-date-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.modal-validation-error{background-color:#ef44441a;border:1px solid #ef44444d;border-radius:6px;color:#b91c1c;font-size:13px;margin:8px 0 0;padding:8px 12px}.modal-warning{background-color:#ffc1071a;border-radius:8px;color:var(--warning);font-size:13px;margin:0;padding:10px 14px}.modal-actions{display:flex;gap:10px;justify-content:flex-end}.modal-cancel-btn{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-cancel-btn:hover:not(:disabled){background-color:var(--bg-hover)}.modal-confirm-btn{background-color:var(--accent);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-confirm-btn:hover:not(:disabled){background-color:var(--accent-hover)}.modal-confirm-btn:disabled{cursor:not-allowed;opacity:.5}.upload-modal{max-width:480px}.upload-zone-inline{background:var(--bg-card);border:2px dashed var(--border-hover);border-radius:12px;padding:32px 24px;text-align:center;transition:border-color .2s}.upload-zone-inline:hover{border-color:var(--accent)}.upload-zone-icon{color:var(--accent);height:40px;margin-bottom:12px;width:40px}.upload-zone-title{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 8px}.upload-zone-desc{color:var(--text-secondary);font-size:13px;font-weight:500;margin:0}.upload-zone-optional{color:var(--text-muted);font-size:12px;margin:4px 0 8px}.upload-zone-note{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0 auto 16px;max-width:420px}.upload-file-label{align-items:center;cursor:pointer;display:inline-flex;gap:8px}.upload-progress-inline{display:flex;flex-direction:column;gap:14px}.upload-progress-info{align-items:center;display:flex;gap:12px}.upload-progress-file-icon{background:var(--bg-hover);border-radius:8px;color:var(--accent);flex-shrink:0;height:32px;padding:6px;width:32px}.upload-progress-filename{color:var(--text-primary);font-size:14px;font-weight:500}.upload-progress-status{color:var(--text-secondary);font-size:12px}.upload-progress-bar-row{align-items:center;display:flex;gap:12px}.upload-progress-track{background:var(--bg-input);border-radius:4px;flex:1 1;height:8px;overflow:hidden}.upload-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent-hover));border-radius:4px;height:100%;transition:width .3s ease}.upload-progress-fill.complete{background:linear-gradient(90deg,var(--success),#2ea043)}.upload-progress-fill.cancelled{background:linear-gradient(90deg,var(--danger),#e62e26)}.upload-progress-pct{color:var(--text-primary);font-size:13px;font-weight:600;min-width:40px;text-align:right}.upload-status-inline{align-items:center;border-radius:8px;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 14px}.upload-status-inline.in-progress{background:#0071e31a;color:var(--accent)}.upload-status-inline.complete{background:#34c7591a;color:var(--success)}.upload-status-inline.cancelled{background:#ff3b301a;color:var(--danger)}.dark-mode .upload-status-inline.in-progress{background:#0a84ff26}.dark-mode .upload-status-inline.complete{background:#34c75926}.dark-mode .upload-status-inline.cancelled{background:#ff3b3026}.upload-spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.property-data-header h1{font-size:22px}.controls{gap:8px}.search-container{flex-basis:100%;max-width:none;min-width:0;order:-1}.action-buttons{gap:8px;justify-content:space-between;width:100%}.add-property-button,.toolbar-toggle-btn,.undo-button{flex:1 1;font-size:13px;justify-content:center;padding:9px 12px}.tools-menu-dropdown{left:0;min-width:220px;right:auto}.days-badge{display:none}.property-card{gap:10px;padding:10px 12px}.edit-drawer{animation:sheet-in .25s ease;border-left:none;border-radius:18px 18px 0 0;border-top:1px solid var(--border-color);left:0;max-height:90vh;right:0;top:auto;width:100%}@keyframes sheet-in{0%{transform:translateY(105%)}to{transform:translateY(0)}}.drawer-header{padding-top:16px;position:relative}.drawer-header:before{background-color:var(--border-hover);border-radius:2px;content:"";height:4px;left:50%;position:absolute;top:7px;transform:translateX(-50%);width:36px}.bulk-action-bar{border-radius:12px;bottom:10px}.pager{gap:10px}.table-info{flex-wrap:wrap}.bulk-popover{bottom:70px;width:calc(100vw - 24px)}}@media (max-width:480px){.property-card-sub,.rate-badge{font-size:11px}.service-badge{font-size:11px;padding:3px 8px}.drawer-field-row{flex-direction:column;gap:0}}.filter-chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:6px;padding:2px 0 6px;row-gap:8px}.filter-chip{align-items:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:500;gap:5px;height:34px;min-height:0;padding:0 13px;transition:all .15s ease;white-space:nowrap}.filter-chip:hover{border-color:var(--border-hover)}.filter-chip.active{background-color:#0071e31a;border-color:var(--accent);color:var(--accent)}.dark-mode .filter-chip.active{background-color:#0a84ff26}.filter-dropdown{display:inline-flex;flex-shrink:0;position:relative}.chip-count{align-items:center;background-color:var(--accent);border-radius:9px;color:#fff;display:inline-flex;font-size:11px;font-weight:600;height:17px;justify-content:center;line-height:1;min-width:17px;padding:0 5px}.chip-caret{font-size:10px;transition:transform .18s ease}.chip-caret.open{transform:rotate(180deg)}.filter-menu-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.filter-menu{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 8px 28px #00000024,0 2px 6px #00000014;left:0;max-height:340px;max-width:calc(100vw - 24px);overflow-y:auto;padding:10px;position:absolute;top:calc(100% + 8px);width:232px;z-index:100}.filter-dropdown.align-right .filter-menu{left:auto;right:0}.filter-menu-head{align-items:center;display:flex;justify-content:space-between;padding:4px 6px 8px}.filter-menu-title{color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.filter-menu-clear{background:none;border:none;border-radius:6px;color:var(--accent);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;min-height:0;padding:2px 4px}.filter-menu-clear:hover{background-color:#0071e31a}.dark-mode .filter-menu-clear:hover{background-color:#0a84ff26}.filter-menu-row{align-items:center;background:none;border:none;border-radius:9px;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;gap:10px;min-height:0;padding:8px;text-align:left;transition:background-color .12s ease;width:100%}.filter-menu-row:hover{background-color:var(--bg-hover)}.filter-menu-check{align-items:center;border:1.5px solid var(--border-color);border-radius:6px;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;height:20px;justify-content:center;transition:background-color .12s ease,border-color .12s ease;width:20px}.filter-menu-check svg{opacity:0;transition:opacity .12s ease}.filter-menu-row.on .filter-menu-check{background-color:var(--accent);border-color:var(--accent)}.filter-menu-row.on .filter-menu-check svg{opacity:1}.filter-chip.clear-chip{color:var(--danger)}.filter-chip.sort-direction-chip{padding:0 10px}.chip-select{-webkit-appearance:none;appearance:none;background-color:var(--bg-card);background-image:linear-gradient(45deg,#0000 50%,var(--text-secondary) 50%),linear-gradient(135deg,var(--text-secondary) 50%,#0000 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border:1px solid var(--border-color);border-radius:16px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;flex-shrink:0;font-family:inherit;font-size:13px!important;font-weight:500;height:34px;line-height:1.2;max-width:140px;padding:0 26px 0 11px}.chip-select:focus{border-color:var(--accent);outline:none}@media (min-width:900px){.filter-chip-row{gap:4px}.filter-chip{font-size:12px;height:30px;padding:0 10px}.filter-chip.sort-direction-chip{padding:0 8px}.chip-select{font-size:12px!important;height:30px;max-width:140px;padding-left:8px}}.employee-property-container{display:flex;flex-direction:column;margin:0 auto;max-width:860px;min-width:0;overflow-x:hidden;position:relative;width:100%}.epd-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px}.epd-header h1{color:var(--text-primary);font-size:22px;font-weight:600;margin:0;white-space:nowrap}.epd-toolbar{align-items:center;display:flex;gap:8px;margin-bottom:12px}.epd-search-wrap{flex:1 1;min-width:0;position:relative}.epd-search-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:16px;outline:none;padding:12px 14px;transition:all .2s ease;width:100%}.epd-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a}.epd-search-input::placeholder{color:var(--text-muted)}.epd-filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.ws-seg{background:var(--bg-input);border-radius:11px;display:inline-flex;gap:2px;padding:3px}.ws-seg-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:7px;min-height:40px;padding:8px 13px;transition:color .15s ease,background-color .15s ease;white-space:nowrap}.ws-seg-btn.on,.ws-seg-btn:hover{color:var(--text-primary)}.ws-seg-btn.on{background:var(--bg-card);box-shadow:0 1px 2px #0000001f,0 2px 6px #0000000d;font-weight:600}.dark-mode .ws-seg-btn.on{box-shadow:0 1px 2px #00000080}.ws-seg-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.ws-seg-dot.today{background:var(--accent)}.ws-seg-dot.pending{background:var(--warning)}.ws-seg-dot.done{background:var(--success)}.ws-seg-dot.muted{background:var(--text-muted)}.ws-seg-count{font-feature-settings:"tnum";font-size:11px;font-variant-numeric:tabular-nums;font-weight:700;opacity:.75}.epd-region-section{margin-bottom:24px}.epd-region-label{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px;padding:0 2px}.epd-region-name{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.epd-region-meta{align-items:center;display:flex;gap:8px}.epd-region-bar{background:var(--border-color);border-radius:3px;height:3px;overflow:hidden;width:72px}.epd-region-bar-fill{background:var(--success);border-radius:3px;height:100%;transition:width .3s ease}.epd-region-pct{color:var(--text-muted);font-size:11px;font-weight:600;white-space:nowrap}.epd-property-list{display:flex;flex-direction:column;gap:6px}.epd-property-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;min-width:0;overflow:hidden;transition:border-color .2s ease}.epd-property-card:hover{border-color:var(--border-hover)}.epd-property-row{align-items:center;cursor:pointer;display:flex;gap:12px;min-height:62px;min-width:0;overflow:hidden;padding:0 14px}.epd-prop-main{flex:1 1;min-width:0;padding:14px 0}.epd-prop-street{color:var(--text-primary);font-size:14px;font-weight:600;line-height:1.3}.epd-prop-street,.epd-prop-subname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epd-prop-subname{color:var(--text-secondary);font-size:12px;margin-top:2px}.epd-service-tags{display:flex;flex-shrink:0;gap:5px}.epd-service-tag{align-items:center;border-radius:6px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 9px;white-space:nowrap}.epd-service-tag.trash{background:#0071e314;color:var(--accent)}.epd-service-tag.recycling{background:#34c7591a;color:#2e7d32}.dark-mode .epd-service-tag.trash{background:#0a84ff26}.dark-mode .epd-service-tag.recycling{background:#34c75926;color:#81c784}.epd-prop-status{align-items:center;border-radius:16px;display:flex;flex-shrink:0;font-size:11px;font-weight:500;gap:5px;padding:5px 10px;white-space:nowrap}.epd-prop-status.done{background:#e8f5e9;color:#2e7d32}.epd-prop-status.pending{background:#fff3e0;color:#e65100}.epd-status-label{white-space:nowrap}.dark-mode .epd-prop-status.done{background:#34c75933;color:#81c784}.dark-mode .epd-prop-status.pending{background:#f5a62333;color:#ffb74d}.epd-prop-actions{align-items:center;display:flex;flex-shrink:0;gap:4px}.epd-icon-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-family:inherit;height:36px;justify-content:center;min-width:36px;transition:all .2s ease;width:36px}.epd-icon-btn.map-btn{background:var(--accent);color:#fff}.epd-icon-btn.map-btn:hover{background:var(--accent-hover)}.epd-icon-btn.expand-btn{background:var(--bg-input);color:var(--text-secondary)}.epd-icon-btn.expand-btn:hover{background:var(--bg-hover)}.epd-note-section{border-top:1px solid var(--border-color);padding:12px 14px 14px}.epd-prop-notes{display:flex;flex-direction:column;gap:4px}.epd-prop-note-entry{align-items:baseline;background:#0071e30d;border-radius:6px;color:var(--text-secondary);display:flex;font-size:12px;gap:12px;justify-content:space-between;line-height:1.4;padding:5px 10px}.epd-prop-note-text{flex:1 1;min-width:0;white-space:pre-wrap;word-break:break-word}.epd-prop-note-meta{color:var(--text-muted);flex-shrink:0;font-size:11px;white-space:nowrap}.epd-notes-more-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;font-weight:600;margin-top:8px;padding:0}.epd-notes-more-btn:hover{text-decoration:underline}.dark-mode .epd-prop-note-entry{background:#0a84ff14}.epd-photo-section{animation:epdSlideDown .2s ease;border-top:1px solid var(--border-color);padding:14px}@keyframes epdSlideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.epd-photo-section-title{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.6px;margin-bottom:12px;text-transform:uppercase}.epd-photos-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.epd-photo-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.epd-photo-thumb{align-items:center;background:var(--bg-input);display:flex;height:100px;justify-content:center;overflow:hidden;position:relative;width:100%}.epd-photo-thumb img{cursor:pointer;height:100%;object-fit:cover;transition:transform .2s;width:100%}.epd-photo-thumb img:hover{transform:scale(1.05)}.epd-photo-thumb-placeholder{color:var(--text-muted)}.epd-photo-meta{display:flex;flex-direction:column;gap:4px;padding:8px 10px}.epd-photo-status{border-radius:8px;display:inline-block;font-size:10px;font-weight:500;padding:2px 8px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.epd-photo-status.complete{background:#e8f5e9;color:#2e7d32}.epd-photo-status.incomplete{background:#fff3e0;color:#e65100}.dark-mode .epd-photo-status.complete{background:#34c75933;color:#81c784}.dark-mode .epd-photo-status.incomplete{background:#f5a62333;color:#ffb74d}.epd-photo-time,.epd-photo-uploader{color:var(--text-muted);font-size:10px}.epd-photo-uploader{font-style:italic}.epd-photo-note{background:#f59e0b14;border-radius:4px;color:var(--text-primary);font-size:11px;margin-top:6px;padding:6px 8px}.epd-photo-note strong{color:var(--warning)}.epd-download-btn{align-items:center;background:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:12px;font-weight:500;gap:6px;justify-content:center;margin-top:8px;padding:8px;transition:all .2s ease;width:100%}.epd-download-btn:hover{background:var(--accent-hover)}.epd-download-overlay{background:#0000008c;border:1px solid #ffffff40;border-radius:6px;margin-top:0;padding:6px;position:absolute;right:6px;top:6px;width:auto;z-index:2}.epd-download-overlay:hover{background:#000000bf}.epd-photo-thumb-skeleton{background:var(--bg-input);overflow:hidden;position:relative}.epd-photo-thumb-skeleton:after{animation:epd-photo-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#fff0,#ffffff73 50%,#fff0);content:"";inset:0;position:absolute;transform:translateX(-100%)}.dark-mode .epd-photo-thumb-skeleton:after{background:linear-gradient(90deg,#fff0,#ffffff1a 50%,#fff0)}@keyframes epd-photo-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.epd-photo-thumb-skeleton:after{animation:none}}.epd-no-photos{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;font-size:13px;gap:10px;padding:32px}.epd-no-data{background:var(--bg-input);border-radius:14px;color:var(--text-secondary);font-size:14px;padding:40px;text-align:center}.epd-photo-modal-overlay{align-items:center;background:#000000e6;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:3000}.epd-photo-modal-content{max-height:90vh;max-width:90vw;position:relative}.epd-photo-modal-content img{border-radius:8px;max-height:90vh;max-width:100%;object-fit:contain}.epd-photo-modal-img{transition:filter .3s ease}.epd-photo-modal-img.is-preview{filter:blur(8px)}.epd-photo-modal-close{align-items:center;background:#fff;border:none;border-radius:50%;color:#1d1d1f;cursor:pointer;display:flex;font-size:20px;height:36px;justify-content:center;position:absolute;right:0;top:-44px;transition:all .2s ease;width:36px}.epd-photo-modal-close:hover{background:var(--danger);color:#fff}@media (max-width:768px){.epd-service-tags{display:none}.epd-property-row{gap:8px;min-height:72px;padding:0 12px}.epd-prop-main{min-width:0;padding:16px 0}.epd-prop-street{font-size:15px}.epd-prop-subname{font-size:13px;margin-top:3px}.epd-status-label{display:none}.epd-prop-status{border-radius:10px;flex-shrink:0;padding:6px 8px}.epd-icon-btn{border-radius:10px;height:44px;min-width:44px;width:44px}.epd-property-list{gap:8px}.epd-region-section{margin-bottom:32px}.epd-region-name,.epd-region-pct{font-size:12px}.epd-filter-bar{gap:8px}.ws-seg-btn{font-size:12px;gap:6px;padding:8px 10px}.epd-note-section{padding:12px 16px 16px}.epd-prop-note-entry{font-size:13px;padding:6px 12px}.epd-photo-section{padding:16px}.epd-photo-section-title{font-size:12px;margin-bottom:14px}.epd-photos-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.epd-photo-thumb{height:120px}}@media (max-width:480px){.epd-header{align-items:flex-start;flex-direction:column;gap:10px;margin-bottom:20px}.epd-header h1{font-size:22px}.epd-toolbar{flex-wrap:wrap;gap:10px}.epd-search-wrap{flex:1 1 100%}.epd-filter-bar{margin-bottom:24px}.epd-photos-grid{grid-template-columns:1fr}}.epd-procedures-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:6px 12px;position:fixed;right:16px;top:16px;transition:background .15s,color .15s,border-color .15s;z-index:50}.epd-procedures-btn:hover{background:#f4f4f5;background:var(--bg-hover,#f4f4f5);border-color:var(--text-muted);color:var(--text-primary)}.epd-procedures-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.epd-procedures-modal{background:#fff;background:var(--bg-card,#fff);border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:85vh;max-width:720px;overflow:hidden;width:100%}.epd-procedures-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 20px}.epd-procedures-header h2{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.epd-procedures-header-actions{align-items:center;display:flex;gap:8px}.epd-procedures-edit-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:12px;font-weight:500;gap:6px;padding:5px 10px}.epd-procedures-edit-btn:hover{background:#f4f4f5;background:var(--bg-hover,#f4f4f5);color:var(--text-primary)}.epd-procedures-close{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;padding:4px}.epd-procedures-close:hover{background:#f4f4f5;background:var(--bg-hover,#f4f4f5);color:var(--text-primary)}.epd-procedures-body{color:var(--text-primary);font-size:14px;line-height:1.6;overflow-y:auto;padding:20px}.epd-procedures-body h1,.epd-procedures-body h2,.epd-procedures-body h3{margin-bottom:.4em;margin-top:1em}.epd-procedures-body h1{font-size:20px}.epd-procedures-body h2{font-size:17px}.epd-procedures-body h3{font-size:15px}.epd-procedures-body p{margin:0 0 .8em}.epd-procedures-body ol,.epd-procedures-body ul{margin:0 0 .8em;padding-left:22px}.epd-procedures-body li{margin-bottom:4px}.epd-procedures-body code{border-radius:4px;font-size:12px;padding:1px 5px}.epd-procedures-body code,.epd-procedures-body pre{background:#f4f4f5;background:var(--bg-hover,#f4f4f5)}.epd-procedures-body pre{border-radius:6px;overflow-x:auto;padding:10px 12px}.epd-procedures-body a{color:#2563eb;color:var(--primary,#2563eb)}.epd-procedures-empty{color:var(--text-muted);font-style:italic}.epd-procedures-textarea{background:var(--bg-card);border:none;border-top:1px solid var(--border-color);color:var(--text-primary);flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55;min-height:320px;outline:none;padding:16px 20px;resize:none;width:100%}.epd-procedures-footer{border-top:1px solid var(--border-color);display:flex;gap:8px;justify-content:flex-end;padding:12px 20px}.epd-procedures-cancel-btn,.epd-procedures-save-btn{border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;padding:7px 16px}.epd-procedures-cancel-btn{background:var(--bg-card);color:var(--text-secondary)}.epd-procedures-save-btn{background:#2563eb;background:var(--primary,#2563eb);border-color:#2563eb;border-color:var(--primary,#2563eb);color:#fff}.epd-procedures-cancel-btn:disabled,.epd-procedures-save-btn:disabled{cursor:not-allowed;opacity:.6}.ws-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.ws-skeleton-block:after{animation:ws-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes ws-skeleton-shimmer{to{transform:translateX(100%)}}.ws-skeleton-title{height:22px;margin-bottom:10px;width:160px}.ws-skeleton-search{flex:1 1;height:36px;min-width:0}.ws-skeleton-seg{border-radius:11px;height:46px;width:190px}.ws-skeleton-region-name{height:11px;width:100px}.ws-skeleton-region-bar{border-radius:3px;height:3px;width:72px}.ws-skeleton-region-pct{height:11px;width:36px}.ws-skeleton-card{cursor:default}.ws-skeleton-card:hover{border-color:var(--border-color)}.ws-skeleton-prop-street{height:14px;margin-bottom:6px;width:65%}.ws-skeleton-prop-subname{height:11px;width:40%}.ws-skeleton-tag{border-radius:999px;height:18px;width:44px}.ws-skeleton-status{height:14px;width:60px}.ws-skeleton-icon-btn{border-radius:6px;height:28px;width:28px}.dark-mode .ws-skeleton-block{background:#ffffff14}.dark-mode .ws-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.ws-skeleton-block:after{animation:none}}@media (max-width:600px){.ws-skeleton-tag{display:none}}.property-portal-container{background-color:var(--bg-primary);box-sizing:border-box;margin:0;max-width:100%;padding:24px;width:100%}.property-portal-container .page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.property-portal-container .page-title{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 4px}.property-portal-container .page-subtitle{color:var(--text-secondary);font-size:15px;margin:0}.filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.status-dropdown{flex-shrink:0;position:relative}.status-dropdown-trigger{align-items:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:14px;gap:8px;padding:10px 14px;transition:all .2s ease;white-space:nowrap}.status-dropdown-trigger.has-selection{border-color:var(--accent);color:var(--accent)}.status-dropdown-trigger:hover{background-color:var(--bg-hover)}.trigger-chevron{flex-shrink:0;font-size:11px;transition:transform .15s ease}.trigger-chevron.open{transform:rotate(180deg)}.status-dropdown-menu{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 8px 24px #00000026;left:0;min-width:160px;padding:6px 0;position:absolute;top:calc(100% + 6px);z-index:100}.status-dropdown-item{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:10px;padding:9px 14px;transition:background-color .1s ease}.status-dropdown-item:hover{background-color:var(--bg-hover)}.status-dropdown-item input[type=checkbox]{accent-color:var(--accent);cursor:pointer;flex-shrink:0;height:16px;width:16px}.search-container{flex:1 1;min-width:240px;position:relative}.search-input{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:14px;padding:12px 14px;transition:all .2s ease;width:100%}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.search-input::placeholder{color:var(--text-muted)}.filter-checkboxes{display:flex;gap:16px}.filter-checkbox{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:8px}.filter-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer;height:18px;width:18px}.property-portal-container .section-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.property-portal-container .properties-section{overflow:visible}.properties-list{padding:0}.property-list-item{border-bottom:1px solid var(--border-color);transition:all .2s ease}.property-list-item:last-child{border-bottom:none}.property-list-item:hover{background-color:var(--bg-hover)}.property-list-item.expanded{background-color:var(--bg-input)}.property-row{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;padding:14px 20px}.property-main-info{flex:1 1;min-width:0}.property-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:2px}.property-title-row .property-address,.property-title-row .property-name,.property-title-row .property-schedule{margin-bottom:0}.property-address{margin:0 0 4px}.property-address,.property-name{color:var(--text-primary);font-size:15px;font-weight:600}.property-name{margin:0 0 2px}.property-address-sub{color:var(--text-secondary);font-size:13px;margin:0 0 6px}.property-status-tags{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.property-status-tags:empty{display:none}.status-tag{border-radius:10px;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.3px;padding:2px 8px;text-transform:uppercase}.status-tag.incomplete{background-color:#ff9f0a26;color:#ff9f0a;color:var(--warning,#ff9f0a)}.status-tag.serviced{background-color:#34c75926;color:#34c759;color:var(--success,#34c759)}.status-tag.not-serviced{background-color:#ff9f0a26;color:#ff9f0a;color:var(--warning,#ff9f0a)}.status-tag.not-serviced-missed{background-color:#ff3b3026;color:#ff3b30}.status-tag.has-note{background-color:#0071e31f;color:#0071e3;color:var(--accent,#0071e3)}.property-schedule{display:flex;flex-wrap:wrap;gap:6px}.property-service-summary{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.schedule-item{align-items:center;border-radius:6px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 9px;white-space:nowrap}.schedule-item.trash{background:#0071e314;color:var(--accent)}.dark-mode .schedule-item.trash{background:#0a84ff26}.schedule-item.recycle{background:#34c7591a;color:#2e7d32}.dark-mode .schedule-item.recycle{background:#34c75926;color:#81c784}.schedule-icon{font-size:11px}.property-rate{align-items:center;background:#7878801f;border-radius:6px;color:var(--text-primary);display:inline-flex;font-size:13px;font-weight:600;padding:3px 9px;white-space:nowrap}.property-rate.inactive{color:var(--text-muted)}.service-status-badge{align-items:center;border-radius:12px;display:inline-flex;font-size:12px;font-weight:600;padding:4px 10px;white-space:nowrap}.service-status-badge.active{background:#34c75926;color:var(--success)}.dark-mode .service-status-badge.active{background:#34c75933}.service-status-badge.inactive{background:#8e8e9326;color:var(--text-muted)}.dark-mode .service-status-badge.inactive{background:#8e8e9333}.service-status-badge.pending-activation,.service-status-badge.pending-deactivation{background:#ffc10726;color:#f0ad4e;color:var(--warning,#f0ad4e)}.dark-mode .service-status-badge.pending-activation,.dark-mode .service-status-badge.pending-deactivation{background:#ffc10733}.property-actions{align-items:center;display:flex;flex-shrink:0;gap:12px}.status-icon-only{align-items:center;display:flex;font-size:18px;justify-content:center}.status-icon-only .status-completed{color:var(--success)}.status-icon-only .status-pending{color:var(--text-muted)}.map-btn{align-items:center;background-color:#0071e31a;border:none;border-radius:8px;color:var(--accent);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:32px;justify-content:center;padding:0 12px;transition:all .15s ease;white-space:nowrap}.map-btn:hover:not(:disabled){background-color:var(--accent);color:#fff}.map-btn:disabled{cursor:not-allowed;opacity:.3}.expand-icon{color:var(--text-muted);flex-shrink:0;font-size:14px;transition:transform .2s ease}.expand-icon.rotated{transform:rotate(180deg)}.today-completion-info{padding:0 20px 12px}.completed-badge{background-color:#34c75926;border-radius:12px;color:var(--success);display:inline-block;font-size:12px;font-weight:600;padding:3px 10px}.property-expanded-section{background-color:var(--bg-primary);border-top:1px solid var(--border-color);padding:20px}.history-section h4{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 14px}.loading-photos{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;padding:30px}.loading-photos .spinner{animation:spin 1s linear infinite;border-top:3px solid var(--border-color);border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--accent);height:32px;margin-bottom:10px;width:32px}.photos-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.photo-item{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow:hidden}.photo-thumbnail{aspect-ratio:4/3;cursor:pointer;overflow:hidden;position:relative}.photo-thumbnail img{height:100%;object-fit:cover;transition:transform .2s ease;width:100%}.photo-thumbnail:hover img{transform:scale(1.05)}.photo-timestamp{background-color:#0000008c;border-radius:4px;bottom:6px;color:#fff;font-size:11px;font-weight:500;padding:2px 6px;pointer-events:none;position:absolute;right:8px}.photo-info{display:flex;flex-direction:column;gap:6px;padding:12px}.photo-status{border-radius:4px;font-size:11px;font-weight:600;padding:4px 8px;text-transform:uppercase;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.photo-status.complete{background-color:#34c75926;color:var(--success)}.photo-status.incomplete{background-color:#ffc10726;color:var(--warning)}.photo-date{color:var(--text-muted);font-size:12px}.photo-note{font-size:12px;line-height:1.4}.download-btn,.photo-note{color:var(--text-secondary)}.download-btn{align-items:center;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;display:flex;flex-shrink:0;font-family:inherit;font-size:14px;justify-content:center;padding:6px 8px;transition:all .2s ease}.download-btn:hover{background-color:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.photo-download-overlay{background-color:#0000008c;border-color:#ffffff40;color:#fff;position:absolute;right:8px;top:8px;z-index:2}.photo-download-overlay:hover{background-color:#000000bf;border-color:#fff;color:#fff}.photo-modal-download{right:12px;top:12px}.no-photos{align-items:center;background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-muted);display:flex;flex-direction:column;padding:40px}.no-photos svg{margin-bottom:10px;opacity:.5}.no-photos p{font-size:14px;margin:0}.history-section{margin-top:0}.no-history{color:var(--text-muted);font-size:13px;font-style:italic}.history-list{gap:10px}.history-item,.history-list{display:flex;flex-direction:column}.history-item{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;gap:12px;padding:12px}.history-item-header{align-items:flex-start;display:flex;gap:14px}.history-item-photos{border-top:1px solid var(--border-color);padding-top:12px}.history-date{align-items:center;color:var(--accent);display:flex;flex-shrink:0;font-size:13px;font-weight:600;gap:6px;min-width:100px}.history-details{color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:13px;gap:8px 16px}.history-time{color:var(--text-primary)}.history-worker{color:var(--text-secondary)}.history-notes-list{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:10px 0 0}.history-note-entry{align-items:flex-start;display:flex;font-size:13px;gap:8px}.history-note-icon{color:var(--accent);flex-shrink:0;font-size:12px;margin-top:3px}.history-note-body{display:flex;flex-direction:column;gap:2px;min-width:0}.history-note-text{color:var(--text-primary);white-space:pre-wrap;word-break:break-word}.history-note-meta{color:var(--text-muted);font-size:11px}.history-item--note-only{background:var(--bg-input)}.history-item--note-only .history-date{color:var(--text-secondary)}.property-notes-section{margin-top:24px}.property-notes-section h4{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 14px}.property-notes-list{display:flex;flex-direction:column;gap:10px;list-style:none;margin:0;padding:0}.notes-expand-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px;font-weight:600;margin-top:12px;padding:0}.notes-expand-btn:hover{text-decoration:underline}.pagination-controls{align-items:center;background-color:var(--bg-primary);border-top:1px solid var(--border-color);display:flex;gap:16px;justify-content:center;padding:20px}.pagination-btn{align-items:center;background-color:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;padding:10px 18px;transition:all .2s ease}.pagination-btn:hover:not(:disabled){background-color:var(--accent-hover)}.pagination-btn:disabled{background-color:var(--bg-input);color:var(--text-muted);cursor:not-allowed}.pagination-info{color:var(--text-secondary);font-size:14px;font-weight:500}.no-properties{color:var(--text-secondary);padding:50px 25px;text-align:center}.no-properties p{font-size:15px;margin:10px 0}.photo-modal-overlay{align-items:center;background-color:#000000d9;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9999}.photo-modal-content{max-height:90vh;max-width:90vw;position:relative}.photo-modal-content img{border-radius:8px;max-height:90vh;max-width:100%;object-fit:contain}.photo-modal-img{transition:filter .3s ease}.photo-modal-img.is-preview{filter:blur(8px)}.photo-modal-close{align-items:center;background:none;border:none;color:#fff;cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;padding:0;position:absolute;right:0;top:-40px;width:40px}.photo-modal-close:hover{opacity:.8}.service-toggle-btn{align-items:center;border:none;border-radius:8px;cursor:not-allowed;display:flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;opacity:.75;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.service-toggle-btn.active{background-color:#34c759;background-color:var(--success,#34c759);color:#fff}.service-toggle-btn.inactive{background-color:#8e8e934d;color:var(--text-muted)}.service-toggle-btn.pending-deactivation{background-color:#ff9f0acc;color:#fff}.service-toggle-btn.pending-activation{background-color:#34c75999;color:#fff}.pill-spinner{animation:spin .6s linear infinite;border:2px solid;border-radius:50%;border-top:2px solid #0000;display:inline-block;height:14px;width:14px}.confirm-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:9998}.confirm-dialog{background-color:var(--bg-card);border-radius:14px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:24px;width:100%}.confirm-dialog h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0 0 12px}.confirm-dialog p{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0 0 20px}.dont-ask-again{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;gap:8px;margin-bottom:16px}.dont-ask-again input{cursor:pointer}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.btn-cancel-dialog{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-cancel-dialog:hover{background-color:var(--bg-hover)}.btn-confirm-dialog{background-color:#ff3b30;background-color:var(--danger,#ff3b30);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.btn-confirm-dialog:hover{opacity:.9}.btn-confirm-dialog.secondary{background-color:var(--bg-input);border:1px solid var(--border-color);color:var(--text-primary)}.btn-confirm-dialog.secondary:hover{background-color:var(--bg-hover);opacity:1}.period-selector-actions{display:flex;gap:10px;margin-bottom:12px}.period-selector-actions .btn-confirm-dialog{background-color:#007aff;background-color:var(--accent,#007aff);color:#fff;flex:1 1}.period-selector-actions .btn-confirm-dialog.secondary{background-color:var(--bg-input);border:2px solid #007aff;border:2px solid var(--accent,#007aff);color:var(--text-primary)}.property-portal-container .loading-container{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}@media (max-width:768px){.property-portal-container{padding:16px}.property-portal-container .page-title{font-size:24px}.filters-row{align-items:stretch;flex-direction:column}.property-row{align-items:flex-start;flex-direction:column;gap:12px;padding:14px 16px}.property-actions{align-items:center;flex-wrap:wrap;gap:10px;justify-content:space-between;width:100%}.property-status-tags{flex-basis:100%}.property-schedule{flex-wrap:wrap;gap:6px}.property-expanded-section{padding:16px}.photos-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.history-item{flex-direction:column;gap:8px}.history-date{min-width:auto}.pagination-controls{gap:12px;padding:16px}.pagination-btn{font-size:13px;padding:8px 14px}.today-completion-info{padding:0 16px 12px}}@media (max-width:480px){.property-portal-container{padding:12px}.property-portal-container .page-title{font-size:20px}.property-row{padding:12px}.property-address{font-size:14px}.property-expanded-section{padding:12px}.photos-grid{gap:10px;grid-template-columns:1fr 1fr}.pagination-controls{flex-wrap:wrap}}.pp-skeleton-block{background:#e5e7eb;border-radius:4px;display:inline-block;overflow:hidden;position:relative}.pp-skeleton-block:after{animation:pp-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes pp-skeleton-shimmer{to{transform:translateX(100%)}}.pp-skeleton-title{display:block;height:22px;margin-bottom:8px;width:160px}.pp-skeleton-subtitle{display:block;height:13px;width:110px}.pp-skeleton-item{cursor:default}.pp-skeleton-item:hover{background:#0000}.pp-skeleton-name{display:block;height:15px;margin-bottom:6px;max-width:320px;width:55%}.pp-skeleton-address{display:block;height:12px;max-width:240px;width:40%}.pp-skeleton-toggle{border-radius:999px;height:32px;width:92px}.pp-skeleton-map-btn{border-radius:8px;height:32px;width:110px}.pp-skeleton-search{border-radius:10px;flex:1 1;height:42px;min-width:240px}.pp-skeleton-filter-pill{border-radius:10px;height:40px;width:110px}.pp-skeleton-schedule{display:block;height:12px;margin-top:8px;width:130px}.pp-skeleton-status-tag{border-radius:10px;height:18px;width:80px}.pp-skeleton-chevron{border-radius:2px;height:12px;width:12px}.dark-mode .pp-skeleton-block{background:#ffffff14}.dark-mode .pp-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.pp-skeleton-block:after{animation:none}}@media (max-width:600px){.pp-skeleton-map-btn{width:40px}.pp-skeleton-filter-pill{width:90px}}.add-property-btn{align-items:center;background-color:#2563eb;background-color:var(--accent-color,#2563eb);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;padding:10px 16px;transition:background-color .15s ease,transform .05s ease}.add-property-btn:hover{background-color:#1d4ed8;background-color:var(--accent-color-hover,#1d4ed8)}.add-property-btn:active{transform:translateY(1px)}.property-portal-container .service-toggle-btn{cursor:pointer;opacity:1}.add-property-label{color:#4b5563;color:var(--text-secondary,#4b5563);display:block;font-size:13px;font-weight:600;margin:12px 0 0;text-align:left}.add-property-input{background:#fff;background:var(--input-bg,#fff);border:1px solid #d1d5db;border:1px solid var(--border-color,#d1d5db);border-radius:8px;box-sizing:border-box;color:#111827;color:var(--text-primary,#111827);display:block;font-family:inherit;font-size:14px;margin-top:4px;padding:10px 12px;width:100%}.add-property-input:focus{outline:2px solid #2563eb;outline:2px solid var(--accent-color,#2563eb);outline-offset:-1px}.add-property-error{color:#b91c1c;display:block;font-size:13px;margin-top:6px}.request-admin-error{color:#b91c1c;font-size:13px;margin-top:8px}.property-requests-section .section-title{font-size:16px;font-weight:700;margin:0 0 8px}.request-status{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:6px;padding:4px 10px;white-space:nowrap}.request-status.pending{background:#fef3c7;color:#92400e}.request-status.approved{background:#d1fae5;color:#065f46}.request-status.rejected{background:#fee2e2;color:#991b1b}.request-notes{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:12px;margin:4px 0 0}.service-toggle-btn.pending-deactivation{background:#fef3c7;color:#92400e}.service-toggle-btn.pending-activation{background:#dbeafe;color:#1e40af}.property-requests-admin{background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;margin:16px 0;padding:16px}.property-requests-admin .section-title{align-items:center;display:flex;font-size:16px;font-weight:700;gap:8px;margin:0 0 4px}.request-admin-hint{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:13px;margin:0 0 12px}.request-admin-row{align-items:center;border-top:1px solid #f3f4f6;border-top:1px solid var(--border-color,#f3f4f6);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 0}.request-admin-info{min-width:220px}.request-admin-meta{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:12px}.request-admin-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.request-admin-controls .add-property-input{display:inline-block;margin-top:0;width:auto}.request-admin-rate{max-width:110px}.request-admin-days{max-width:130px}.request-approve-btn,.request-reject-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:9px 14px}.request-approve-btn{background:#059669;color:#fff}.request-approve-btn:hover{background:#047857}.request-reject-btn{background:#fee2e2;color:#991b1b}.request-reject-btn:hover{background:#fecaca}.request-approve-btn:disabled,.request-reject-btn:disabled{cursor:default;opacity:.6}.pm-toolbar{border-bottom:1px solid var(--border-color);padding:14px 16px}.pm-search{align-items:center;display:flex;flex:1 1 200px;min-width:160px;position:relative}.pm-search-input{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:16px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:13px;height:34px;padding:0 32px 0 14px;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.pm-search-input::placeholder{color:var(--text-muted)}.pm-search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.pm-search-clear{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:13px;height:22px;justify-content:center;position:absolute;right:6px;transition:color .15s ease,background-color .15s ease;width:22px}.pm-search-clear:hover{background:var(--bg-input);color:var(--text-primary)}.pm-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.pm-segmented{background:var(--bg-input);border-radius:11px;display:inline-flex;gap:2px;padding:3px}.pm-seg-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;min-height:0;padding:6px 10px;transition:color .15s ease,background-color .15s ease;white-space:nowrap}.pm-seg-btn.on,.pm-seg-btn:hover{color:var(--text-primary)}.pm-seg-btn.on{background:var(--bg-card);box-shadow:0 1px 2px #0000001f,0 2px 6px #0000000d;font-weight:600}.dark-mode .pm-seg-btn.on{box-shadow:0 1px 2px #00000080}.pm-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.pm-dot.active{background:var(--success)}.pm-dot.inactive{background:var(--text-muted)}.pm-dot.all{background:var(--accent)}.pm-seg-count{font-feature-settings:"tnum";font-size:11px;font-variant-numeric:tabular-nums;font-weight:700;opacity:.75}.pm-chip{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:13px;font-weight:500;gap:5px;height:34px;min-height:0;padding:0 11px;transition:border-color .15s ease,background-color .15s ease,color .15s ease;white-space:nowrap}.pm-chip:hover{border-color:var(--border-hover)}.pm-chip.on{background:#0071e31a;border-color:var(--accent);color:var(--accent)}.dark-mode .pm-chip.on{background:#0a84ff26}.pm-chip-count{align-items:center;background:var(--accent);border-radius:9px;color:#fff;display:inline-flex;font-size:11px;font-weight:600;height:17px;justify-content:center;line-height:1;min-width:17px;padding:0 5px}.pm-chip-caret{font-size:10px;transition:transform .18s ease}.pm-chip-caret.open{transform:rotate(180deg)}.pm-filter-dd{display:inline-flex;flex-shrink:0;position:relative}.pm-pop-backdrop{inset:0;position:fixed;z-index:99}.pm-filter-pop{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 12px 40px #0000002e,0 2px 6px #00000014;max-width:calc(100vw - 24px);padding:4px;position:absolute;right:0;top:calc(100% + 8px);width:288px;z-index:100}.dark-mode .pm-filter-pop{box-shadow:0 12px 40px #0000008c}.pm-pop-group{padding:11px 11px 13px}.pm-pop-group+.pm-pop-group{border-top:1px solid var(--border-color)}.pm-pop-label{color:var(--text-muted);display:block;font-size:11px;font-weight:700;letter-spacing:.05em;margin:0 0 9px;text-transform:uppercase}.pm-pop-select{background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;height:36px;padding:0 12px;width:100%}.pm-pop-select:focus{border-color:var(--accent);outline:none}.pm-day-grid{display:flex;flex-wrap:wrap;gap:6px}.pm-day-pill{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:500;height:30px;min-height:0;min-width:44px;padding:0 10px;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.pm-day-pill:hover{border-color:var(--border-hover)}.pm-day-pill.on{background:#0071e31a;border-color:var(--accent);color:var(--accent)}.dark-mode .pm-day-pill.on{background:#0a84ff26}.pm-sort-row{display:flex;gap:6px}.pm-sort-row .pm-pop-select{flex:1 1}.pm-dir-btn{align-items:center;background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;height:36px;justify-content:center;min-height:0;transition:border-color .15s ease,color .15s ease;width:40px}.pm-dir-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.pm-pop-foot{align-items:center;display:flex;justify-content:space-between;padding:4px 7px 6px}.pm-pop-clear{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:500;min-height:0;padding:7px 4px}.pm-pop-clear:hover:not(:disabled){color:var(--text-primary)}.pm-pop-clear:disabled{cursor:default;opacity:.4}.pm-pop-done{background:var(--accent);border:none;border-radius:9px;color:#fff;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;min-height:0;padding:8px 16px}.pm-pop-done:hover{filter:brightness(1.05)}.pm-pagination{border-top:1px solid var(--border-color);flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.pm-page-size,.pm-pagination{align-items:center;display:flex}.pm-page-size{color:var(--text-secondary);font-size:13px;gap:6px}.pm-page-size select{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;padding:4px 8px}.pm-page-info{font-feature-settings:"tnum";color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.pm-pager{gap:12px}.pm-pager,.pm-pager-arrow{align-items:center;display:inline-flex}.pm-pager-arrow{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;font-family:inherit;height:34px;justify-content:center;transition:border-color .15s ease;width:38px}.pm-pager-arrow:hover:not(:disabled){border-color:var(--accent)}.pm-pager-arrow:disabled{cursor:not-allowed;opacity:.4}.property-list-item.selected{background-color:var(--bg-input)}.history-note-inline-date{color:var(--text-muted);font-size:11px;white-space:nowrap}.expand-icon,.po-panel .expand-icon{font-size:13px}.pm-pop-label-row{align-items:center;display:flex;gap:6px;margin:0 0 9px}.pm-pop-label-row .pm-pop-label{margin:0}.pm-info-tip{display:inline-flex;line-height:0;position:relative}.pm-info-btn{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;display:inline-flex;height:16px;justify-content:center;min-height:0;padding:0;width:16px}.pm-info-btn:hover{color:var(--text-secondary)}.pm-info-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pm-info-btn svg{display:block;height:13px;width:13px}.pm-info-bubble{background:var(--text-primary);border-radius:10px;box-shadow:0 10px 30px #00000038;color:var(--bg-card);font-size:12px;font-weight:400;left:50%;letter-spacing:normal;line-height:1.45;max-width:calc(100vw - 40px);opacity:0;padding:10px 12px;pointer-events:none;position:absolute;text-transform:none;top:calc(100% + 8px);transform:translateX(-50%) translateY(-4px);transition:opacity .15s ease,transform .15s ease;visibility:hidden;width:210px;z-index:200}.pm-info-bubble:before{border:5px solid #0000;border-bottom:5px solid var(--text-primary);bottom:100%;content:"";left:50%;position:absolute;transform:translateX(-50%)}.pm-info-tip.open .pm-info-bubble,.pm-info-tip:focus-within .pm-info-bubble,.pm-info-tip:hover .pm-info-bubble{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0);visibility:visible}.pm-info-tip.align-right .pm-info-bubble{left:auto;right:-4px;transform:translateY(-4px)}.pm-info-tip.align-right .pm-info-bubble:before{left:auto;right:6px;transform:none}.pm-info-tip.align-right.open .pm-info-bubble,.pm-info-tip.align-right:focus-within .pm-info-bubble,.pm-info-tip.align-right:hover .pm-info-bubble{transform:translateY(0)}@media (prefers-reduced-motion:reduce){.pm-info-bubble{transition:none}}.po-scrim{background:#14141957;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .25s ease;z-index:900}.po-scrim.open{opacity:1;pointer-events:auto}.po-panel{background:var(--bg-primary);box-shadow:-12px 0 40px #00000029;display:flex;flex-direction:column;height:100vh;height:100dvh;max-width:92vw;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .28s cubic-bezier(.32,.72,0,1);width:460px;z-index:950}.po-panel.open{transform:translateX(0)}@media (prefers-reduced-motion:reduce){.po-panel,.po-scrim{transition:none}}.po-panel-head{background:var(--bg-card);border-bottom:1px solid var(--border-color);padding:20px 20px 16px}.po-panel-top{align-items:flex-start;display:flex;gap:12px}.po-panel-titles{flex:1 1;min-width:0}.po-panel-name-row{gap:6px 10px}.po-panel-facts,.po-panel-name-row{align-items:center;display:flex;flex-wrap:wrap}.po-panel-facts{gap:6px}.po-panel-titles h2{color:var(--text-primary);font-size:19px;font-weight:700;line-height:1.25;margin:0}.po-panel-titles p{color:var(--text-secondary);font-size:13px;margin:4px 0 0}.po-panel-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.po-panel-meta .property-status-tags{flex-basis:auto}.po-panel-actions{margin-top:14px}.po-panel-body{flex:1 1;overflow-y:auto;padding:20px}.po-panel-body .history-section+.property-notes-section,.po-panel-body .property-notes-section{margin-top:24px}.po-detail .visit-list{display:flex;flex-direction:column;gap:8px}.po-detail .visit-row{align-items:flex-start;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:12px;padding:10px}.po-detail .visit-row.is-issue{background:#ff9f0a0f;border-color:#ff9f0a66}.po-detail .visit-row.is-missed{background:#ff3b300f;border-color:#ff3b3066}.po-detail .visit-row--compact{align-items:center;gap:10px;padding:8px 12px}.po-detail .visit-missed-icon{color:#ff3b30;flex:none;font-size:18px}.po-detail .visit-thumb{background:var(--bg-input);border-radius:8px;flex:none;height:66px;overflow:hidden;position:relative;width:88px}.po-detail .visit-thumb img{cursor:pointer;display:block;height:100%;object-fit:cover;width:100%}.po-detail .visit-thumb .download-btn{bottom:5px;height:24px;padding:0;position:absolute;right:5px;top:auto;width:24px}.po-detail .visit-thumb.empty{align-items:center;color:var(--text-muted);display:flex;justify-content:center}.po-detail .visit-thumb.empty svg{font-size:20px}.po-detail .visit-body{flex:1 1;min-width:0}.po-detail .visit-meta{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px}.po-detail .visit-chip{border-radius:999px;font-size:11px;font-weight:650;padding:3px 9px;white-space:nowrap}.po-detail .visit-chip.complete{background:#34c75926;color:var(--success)}.po-detail .visit-chip.issue{background:#ff9f0a26;color:var(--warning)}.po-detail .visit-chip.missed{background:#ff3b3026;color:#ff3b30}.po-detail .visit-date{color:var(--text-primary);font-size:13px;font-weight:640}.po-detail .visit-time{color:var(--text-muted);font-size:12.5px}.po-detail .visit-note{color:var(--text-secondary);font-size:13px;line-height:1.45;margin:6px 0 0}.po-detail .visit-row--skeleton{align-items:center}.po-detail .visit-thumb-skeleton{border-radius:8px;flex:none;height:66px;width:88px}.po-detail .visit-chip-skeleton{border-radius:999px;height:20px;width:104px}.po-detail .visit-date-skeleton{border-radius:4px;height:13px;width:68px}.po-photo-modal .photo-modal-close{position:fixed;right:14px;top:8px}.po-photo-modal .photo-modal-download{height:40px;padding:0;position:fixed;right:62px;top:15px;width:40px}@media (max-width:480px){.po-panel{max-width:100vw;width:100vw}}.property-owner-dashboard{background-color:var(--bg-primary);box-sizing:border-box;margin:0;max-width:100%;overflow-y:auto;padding:24px;width:100%}.property-owner-dashboard .page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.property-owner-dashboard .page-title{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 4px}.property-owner-dashboard .page-subtitle{color:var(--text-secondary);font-size:15px;margin:0}.property-owner-dashboard .stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.property-owner-dashboard .stat-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:20px;transition:all .2s ease}.property-owner-dashboard .stat-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px #00000014}.dark-mode .property-owner-dashboard .stat-card:hover{box-shadow:0 4px 12px #0000004d}.property-owner-dashboard .stat-header{align-items:center;display:flex;gap:10px;margin-bottom:12px}.property-owner-dashboard .stat-icon{align-items:center;border-radius:10px;display:flex;font-size:16px;height:36px;justify-content:center;width:36px}.property-owner-dashboard .stat-icon.primary{background-color:#0071e31f;color:var(--accent)}.property-owner-dashboard .stat-icon.completed{background-color:#34c7591f;color:var(--success)}.property-owner-dashboard .stat-icon.pending{background-color:#8e8e931f;color:var(--text-muted)}.property-owner-dashboard .stat-label{color:var(--text-secondary);font-size:13px;font-weight:500}.property-owner-dashboard .stat-value{color:var(--text-primary);font-size:32px;font-weight:700}.property-owner-dashboard .stat-note{color:#f0ad4e;color:var(--warning,#f0ad4e);font-size:12px;font-weight:500;margin-top:4px}.property-owner-dashboard .content-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.property-owner-dashboard .section-card{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.property-owner-dashboard .section-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 20px}.property-owner-dashboard .section-title{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.weekly-schedule{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(7,1fr);padding:20px}.schedule-day{align-items:center;background-color:var(--bg-primary);border-radius:10px;display:flex;flex-direction:column;padding:12px 8px;transition:all .2s ease}.schedule-day.today{background-color:#0071e31a;border:2px solid var(--accent)}.schedule-day.past{opacity:.6}.schedule-day.completed .day-icons{opacity:.5}.day-label{color:var(--text-secondary);font-size:12px;font-weight:600;margin-bottom:8px;text-transform:uppercase}.schedule-day.today .day-label{color:var(--accent)}.day-icons{align-items:center;display:flex;gap:4px;margin-bottom:6px;min-height:20px}.service-icon{font-size:14px}.service-icon.trash{color:var(--accent)}.service-icon.recycling{color:#2e7d32}.dark-mode .service-icon.recycling{color:#81c784}.no-service{color:var(--text-muted);font-size:14px}.day-count{color:var(--text-primary);font-size:13px;font-weight:600;min-height:18px}.completed-check{color:var(--success);font-size:14px}.quick-actions{padding:16px}.action-card{background-color:var(--bg-primary);border-radius:10px;padding:16px}.action-card:hover{background-color:var(--bg-hover);border-color:var(--accent)}.action-icon{font-size:18px}.action-icon.primary{background-color:#0071e31f}.action-icon.completed{background-color:#34c7591f}.action-title{font-size:15px;font-weight:600}.action-desc{font-size:13px}.action-arrow{font-size:14px}.property-owner-dashboard .loading-container{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}@media (max-width:900px){.property-owner-dashboard .content-grid{grid-template-columns:1fr}}@media (max-width:768px){.property-owner-dashboard{padding:16px}.property-owner-dashboard .page-title{font-size:24px}.property-owner-dashboard .stats-grid{gap:12px;grid-template-columns:repeat(3,1fr)}.property-owner-dashboard .stat-card{padding:14px}.property-owner-dashboard .stat-value{font-size:24px}.property-owner-dashboard .stat-icon{font-size:14px;height:32px;width:32px}.weekly-schedule{gap:4px;padding:16px}.schedule-day{padding:10px 4px}.day-label{font-size:10px}.service-icon{font-size:12px}.day-count{font-size:11px}}@media (max-width:480px){.property-owner-dashboard{padding:12px}.property-owner-dashboard .page-title{font-size:20px}.property-owner-dashboard .stats-grid{gap:8px;grid-template-columns:1fr 1fr 1fr}.property-owner-dashboard .stat-card{padding:12px}.property-owner-dashboard .stat-value{font-size:20px}.property-owner-dashboard .stat-label{font-size:11px}.weekly-schedule{gap:2px;padding:12px}.schedule-day{border-radius:8px;padding:8px 2px}.day-label{font-size:9px;margin-bottom:4px}.day-count,.service-icon{font-size:10px}.action-card{padding:12px}.action-icon{font-size:16px;height:36px;width:36px}.action-title{font-size:14px}.action-desc{font-size:12px}}.pod-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.pod-skeleton-block:after{animation:pod-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes pod-skeleton-shimmer{to{transform:translateX(100%)}}.pod-skeleton-title{height:28px;margin-bottom:10px;width:240px}.pod-skeleton-subtitle{height:14px;width:280px}.pod-skeleton-section-title{height:18px;width:180px}.pod-skeleton .schedule-day{background-color:var(--bg-primary)}.pod-skeleton-day-label{height:12px;margin-bottom:8px;width:28px}.pod-skeleton-day-icon{border-radius:5px;height:18px;margin-bottom:6px;width:18px}.pod-skeleton-day-count{height:14px;width:16px}.pod-skeleton .action-card{cursor:default;pointer-events:none}.pod-skeleton-action-icon{border-radius:10px;height:40px;width:40px}.pod-skeleton-action-title{display:block;height:15px;margin-bottom:6px;width:90px}.pod-skeleton-action-desc{display:block;height:12px;width:140px}.pod-skeleton-action-arrow{border-radius:4px;height:14px;width:14px}.dark-mode .pod-skeleton-block{background:#ffffff14}.dark-mode .pod-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.pod-skeleton-block:after{animation:none}}.dashboard-page{display:flex;flex-direction:column}.shift-banner{align-items:center;background:linear-gradient(135deg,#34c7591a,#34c7590d);border:1px solid #34c75933;border-radius:12px;color:var(--success);display:flex;font-size:14px;gap:10px;margin-bottom:24px;padding:14px 20px}.shift-banner svg{animation:pulse 2s ease-in-out infinite;height:18px;width:18px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.content-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.quick-actions-mobile{display:none}.quick-actions-section{align-self:start;margin-bottom:0}.quick-actions{display:flex;flex-direction:column;gap:12px}.action-card{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;font-family:inherit;gap:14px;padding:20px;text-align:left;transition:all .2s ease;width:100%}.action-card:hover{background:var(--bg-hover);border-color:var(--border-hover)}.action-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.action-icon svg{height:18px;width:18px}.action-icon.primary{background:#e3f2fd;color:var(--accent)}.action-icon.completed{background:#e8f5e9;color:var(--success)}.dark-mode .action-icon.primary{background:#0a84ff26}.dark-mode .action-icon.completed{background:#34c75926}.action-info{flex:1 1}.action-title{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:2px}.action-desc{color:var(--text-secondary);font-size:12px}.action-arrow{color:var(--text-muted);height:14px;transition:transform .2s ease;width:14px}.action-card:hover .action-arrow{color:var(--accent);transform:translateX(4px)}.filters-section{border-top:1px solid var(--border-color);padding:16px}.filters-title{color:var(--text-secondary);font-size:13px;font-weight:500;letter-spacing:.3px;margin:0 0 12px;text-transform:uppercase}.filters-section .filter-controls{background:none;padding:0}.filters-section .filter-controls h3{display:none}.filters-section .filter-control{display:inline-flex;margin-bottom:8px;margin-right:16px}.filters-section .checkbox-label{align-items:center;cursor:pointer;display:flex;gap:8px}.filters-section .filter-label{color:var(--text-secondary);font-size:13px}.list-content{padding:0}.dashboard-page .btn-primary.btn-danger{background:var(--danger)}.dashboard-page .btn-primary.btn-danger:hover{background:#e62e26}.dashboard-routes-section{margin-bottom:24px}.dashboard-route-list{display:flex;flex-direction:column;gap:10px;padding:14px 22px 18px}.dashboard-route-card{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:12px;cursor:pointer;display:flex;font-family:inherit;gap:14px;justify-content:space-between;padding:16px 18px;text-align:left;transition:all .2s ease;width:100%}.dashboard-route-card:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent);box-shadow:0 4px 14px #0071e326;transform:translateY(-2px)}.dashboard-route-card:hover:not(:disabled) .dashboard-route-card-action{background:var(--accent-hover)}.dashboard-route-card:disabled{cursor:not-allowed;opacity:.45}.dashboard-route-card.starting{cursor:progress;opacity:1}.dashboard-route-card.active{background:#0071e30f;border-color:var(--accent)}.dark-mode .dashboard-route-card.active{background:#2997ff1f}.dashboard-route-card.completed{background:#f0fdf4;border-color:#86efac}.dashboard-route-card.completed:disabled{cursor:default;opacity:1}.dashboard-route-card.completed .dashboard-route-card-name{color:#065f46}.dashboard-route-card.completed .dashboard-route-card-meta{color:#047857}.dashboard-route-card.completed .dashboard-route-card-action{background:#10b981}.dark-mode .dashboard-route-card.completed{background:#052e16;border-color:#065f46}.dark-mode .dashboard-route-card.completed .dashboard-route-card-name{color:#6ee7b7}.dark-mode .dashboard-route-card.completed .dashboard-route-card-meta{color:#34d399}.dashboard-route-card-info{display:flex;flex-direction:column;gap:4px;min-width:0}.dashboard-route-card-name{align-items:center;color:var(--text-primary);display:inline-flex;font-size:15px;font-weight:600;gap:8px}.dashboard-route-card-name svg{color:var(--accent);height:14px;width:14px}.dashboard-route-card-meta{align-items:center;color:var(--text-secondary);display:inline-flex;font-size:12px;gap:6px}.dashboard-route-card-meta svg{height:11px;width:11px}.dashboard-route-card-action{align-items:center;background:var(--accent);border-radius:8px;color:#fff;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:600;gap:6px;padding:8px 14px}.dashboard-route-card-action svg{height:11px;width:11px}@media (max-width:768px){.shift-banner{font-size:13px;padding:12px 16px}.quick-actions{flex-direction:column}.content-grid{grid-template-columns:1fr}.quick-actions-mobile{align-self:stretch;display:block;margin-bottom:24px;width:100%}.quick-actions-mobile .quick-actions{padding:0}.content-grid .quick-actions-section{display:none}.action-card{padding:20px}.action-icon{border-radius:12px;height:44px;width:44px}.action-icon svg{height:20px;width:20px}.action-title{font-size:16px;font-weight:600}.action-desc{font-size:13px}.filters-section{padding:12px}}.dash-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.dash-skeleton-block:after{animation:dash-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes dash-skeleton-shimmer{to{transform:translateX(100%)}}.dash-skeleton-title{height:28px;margin-bottom:10px;width:260px}.dash-skeleton-subtitle{height:14px;width:200px}.dash-skeleton-section-title{height:18px;width:180px}.dash-skeleton-section-link{height:14px;width:90px}.dash-skeleton-route-icon{border-radius:4px;height:18px;width:18px}.dash-skeleton-route-name{height:16px;margin-bottom:8px;width:140px}.dash-skeleton-route-meta{height:12px;width:80px}.dash-skeleton-route-btn{border-radius:8px;height:36px;width:80px}.dash-skeleton-shift-icon{border-radius:8px;height:36px;width:36px}.dash-skeleton-shift-name{height:14px;margin-bottom:6px;width:100px}.dash-skeleton-shift-meta{height:12px;width:130px}.dash-skeleton-shift-badge{border-radius:999px;height:22px;width:56px}.dash-skeleton-action-icon{border-radius:10px;height:40px;width:40px}.dash-skeleton-action-title{height:15px;margin-bottom:6px;width:110px}.dash-skeleton-action-desc{height:12px;width:150px}.dash-skeleton-action-arrow{border-radius:4px;height:14px;width:14px}.dash-skeleton-card{cursor:default;pointer-events:none}.dash-skeleton-card:hover{border-color:var(--border-color)}.dark-mode .dash-skeleton-block{background:#ffffff14}.dark-mode .dash-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.dash-skeleton-block:after{animation:none}}.route-progress-summary{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:14px 16px}.route-progress-summary.collapsed{padding:8px 16px}.rps-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.rps-empty{color:#6b7280;color:var(--text-muted,#6b7280);font-size:13px}.rps-toggle{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;display:inline-flex;font-family:inherit;gap:8px;padding:0}.rps-toggle svg{color:#6b7280;color:var(--text-muted,#6b7280);height:12px;width:12px}.rps-toggle-label{font-size:14px;font-weight:600}.rps-toggle-day{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:10px;font-size:12px;padding:2px 8px}.rps-legend,.rps-toggle-day{color:#6b7280;color:var(--text-muted,#6b7280)}.rps-legend{align-items:center;cursor:pointer;display:inline-flex;margin-left:4px;margin-right:auto;position:relative}.rps-legend svg{height:13px;width:13px}.rps-legend:focus{outline:none}.rps-legend-tooltip,.rps-legend:focus{color:#1a1a1a;color:var(--text-primary,#1a1a1a)}.rps-legend-tooltip{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000014;display:none;flex-direction:column;font-size:12px;gap:6px;left:0;min-width:180px;padding:10px 12px;position:absolute;top:calc(100% + 6px);white-space:nowrap;z-index:10}.rps-legend:focus .rps-legend-tooltip,.rps-legend:focus-within .rps-legend-tooltip,.rps-legend:hover .rps-legend-tooltip{display:flex}.rps-legend-row{gap:8px}.rps-legend-row,.rps-legend-swatch{align-items:center;display:inline-flex}.rps-legend-swatch{border-radius:3px;flex:0 0 auto;height:10px;justify-content:center;width:14px}.rps-legend-swatch-notes{background:#fef3c7;border-radius:8px;color:#b45309;height:16px;width:18px}.rps-legend-swatch-notes svg{height:9px;width:9px}.dark-mode .rps-legend-tooltip{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);color:#f9fafb;color:var(--text-primary,#f9fafb)}.dark-mode .rps-legend-swatch-notes{background:#f59e0b2e;color:#fbbf24}.rps-tabs{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:999px;display:inline-flex;gap:2px;padding:2px}.rps-tab{-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:999px;color:#4b5563;color:var(--text-secondary,#4b5563);cursor:pointer;font-family:inherit;font-size:12px;font-weight:500;padding:4px 12px}.rps-tab.active{background:#fff;background:var(--surface,#fff);box-shadow:0 1px 2px #00000014;color:#1a1a1a;color:var(--text-primary,#1a1a1a)}.rps-row{grid-gap:10px;align-items:center;display:grid;gap:10px;grid-template-columns:minmax(52px,auto) 1fr auto}.rps-notes-slot{align-items:center;display:inline-flex}.rps-row-primary .rps-bar{height:12px}.rps-bar{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:999px;display:flex;height:8px;overflow:hidden;width:100%}.rps-seg{height:100%}.rps-seg-complete{background:#86efac}.rps-seg-incomplete{background:#fca5a5}.rps-seg-missed{background:#f87171}.rps-seg-pending{background:#d1d5db}.rps-counts{align-items:baseline;color:#1a1a1a;color:var(--text-primary,#1a1a1a);display:inline-flex;font-size:13px;gap:4px;white-space:nowrap}.rps-row-primary .rps-counts{font-size:14px;font-weight:600}.rps-count-complete{color:#15803d;font-weight:600}.rps-count-complete.rps-count-zero,.rps-count-sep,.rps-count-total{color:#6b7280;color:var(--text-muted,#6b7280);font-weight:500}.rps-notes{align-items:center;-webkit-appearance:none;appearance:none;background:#fef3c7;border:1px solid #0000;border-radius:10px;color:#b45309;cursor:pointer;display:inline-flex;font-family:inherit;font-size:12px;font-weight:600;gap:4px;padding:2px 8px}.rps-notes:hover{background:#fde68a}.rps-notes.rps-notes-open{background:#fde68a;border-color:#f59e0b}.rps-notes:focus-visible{outline:2px solid #f59e0b;outline-offset:1px}.rps-notes svg{height:11px;width:11px}.rps-notes-list{background:#f9fafb;background:var(--bg-secondary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;display:flex;flex-direction:column;gap:10px;list-style:none;margin:4px 0 6px;padding:10px 12px}.rps-notes-item{align-items:flex-start;display:flex;gap:8px}.rps-notes-item-icon{color:#b45309;flex:0 0 auto;height:12px;margin-top:3px;width:12px}.rps-notes-item-body{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.rps-notes-item-address{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:12px;font-weight:600}.rps-notes-item-company{color:#6b7280;color:var(--text-muted,#6b7280);font-weight:500}.rps-notes-item-text{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:13px;white-space:pre-wrap;word-break:break-word}.rps-notes-item-meta{color:#6b7280;color:var(--text-muted,#6b7280);font-size:11px}.rps-children{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);gap:8px;margin-top:2px;padding-top:4px}.rps-child-group,.rps-children{display:flex;flex-direction:column}.rps-child-group{gap:4px}.rps-child-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:minmax(120px,200px) 1fr}.rps-child-name{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dark-mode .route-progress-summary{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .rps-bar,.dark-mode .rps-tabs{background:#ffffff14}.dark-mode .rps-tab.active{background:#ffffff1f;box-shadow:none}.dark-mode .rps-toggle-day{background:#ffffff14}.dark-mode .rps-notes{background:#f59e0b26;color:#fbbf24}.dark-mode .rps-notes.rps-notes-open,.dark-mode .rps-notes:hover{background:#f59e0b47}.dark-mode .rps-notes-list{background:#ffffff0a;border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .rps-notes-item-icon{color:#fbbf24}.dark-mode .rps-count-complete{color:#86efac}.dark-mode .rps-count-complete.rps-count-zero{color:#9ca3af;color:var(--text-muted,#9ca3af)}.dark-mode .rps-seg-pending{background:#ffffff2e}.rps-skeleton{display:flex;flex-direction:column;gap:10px}.rps-skeleton-block{background:#e5e7eb;border-radius:999px;display:inline-block;overflow:hidden;position:relative}.rps-skeleton-block:after{animation:rps-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}.rps-skeleton-bar{height:8px;width:100%}.rps-skeleton-bar-primary{height:12px}.rps-skeleton-counts{border-radius:4px;height:14px;width:40px}.rps-skeleton-name{border-radius:4px;height:12px;width:70%}@keyframes rps-skeleton-shimmer{to{transform:translateX(100%)}}.dark-mode .rps-skeleton-block{background:#ffffff14}.dark-mode .rps-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.rps-skeleton-block:after{animation:none}}@media (max-width:640px){.rps-child-row{gap:4px;grid-template-columns:1fr}}.employee-sessions-panel{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;display:flex;flex-direction:column;gap:10px;padding:14px 16px}.employee-sessions-panel.collapsed{padding:8px 16px}.esp-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.esp-toggle{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;display:inline-flex;font-family:inherit;gap:8px;padding:0}.esp-toggle svg{color:#6b7280;color:var(--text-muted,#6b7280);height:12px;width:12px}.esp-toggle-label{font-size:14px;font-weight:600}.esp-empty{color:#6b7280;color:var(--text-muted,#6b7280);font-size:13px}.esp-employees{display:flex;flex-direction:column;gap:6px}.esp-employee{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:10px}.esp-employee.open{background:#f9fafb;background:var(--bg-secondary,#f9fafb)}.esp-employee-header{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;display:flex;font-family:inherit;gap:10px;padding:10px 12px;text-align:left;width:100%}.esp-employee-header svg{color:#6b7280;color:var(--text-muted,#6b7280);flex:0 0 auto;height:11px;width:11px}.esp-employee-name{flex:1 1 auto;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esp-employee-count{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:10px;color:#6b7280;color:var(--text-muted,#6b7280);flex:0 0 auto;font-size:11px;padding:2px 8px}.esp-employee.open .esp-employee-count{background:#fff;background:var(--surface,#fff)}.esp-sessions{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);display:flex;flex-direction:column;gap:6px;padding:8px 12px 12px}.esp-session-row{align-items:center;background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:8px 10px}.esp-session-main{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.esp-session-route{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esp-session-meta{align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:inline-flex;flex-wrap:wrap;font-size:12px;gap:6px}.esp-dot{color:#9ca3af;color:var(--text-muted,#9ca3af)}.esp-session-right{align-items:center;display:inline-flex;flex:0 0 auto;gap:10px}.esp-status{border-radius:999px;font-size:11px;font-weight:600;padding:2px 8px;white-space:nowrap}.esp-status-active{background:#dbeafe;color:#1d4ed8}.esp-status-complete{background:#dcfce7;color:#166534}.esp-status-partial{background:#fee2e2;color:#b91c1c}.esp-status-auto{background:#fef3c7;color:#92400e}.esp-status-seeded{background:#e5e7eb;color:#4b5563}.esp-counts{font-feature-settings:"tnum";align-items:baseline;display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;gap:2px}.esp-counts-done{color:#166534;font-weight:600}.esp-counts-done.zero{font-weight:500}.esp-counts-done.zero,.esp-counts-sep,.esp-counts-total{color:#6b7280;color:var(--text-muted,#6b7280)}.esp-load-more{align-self:center;-webkit-appearance:none;appearance:none;background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;font-size:12px;font-weight:500;margin-top:4px;padding:8px 12px}.esp-load-more:hover{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6)}.esp-empty-row,.esp-error,.esp-loading{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;padding:6px 10px}.esp-error{color:#b91c1c}.dark-mode .employee-sessions-panel,.dark-mode .esp-employee{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .esp-employee.open{background:#ffffff0a}.dark-mode .esp-employee-count{background:#ffffff14}.dark-mode .esp-employee.open .esp-employee-count{background:#ffffff1f}.dark-mode .esp-sessions{border-top-color:#2d2d2d;border-top-color:var(--border-color,#2d2d2d)}.dark-mode .esp-session-row{background:#ffffff0a;border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .esp-status-active{background:#3b82f62e;color:#93c5fd}.dark-mode .esp-status-complete{background:#22c55e2e;color:#86efac}.dark-mode .esp-status-partial{background:#ef44442e;color:#fca5a5}.dark-mode .esp-status-auto{background:#f59e0b2e;color:#fbbf24}.dark-mode .esp-status-seeded{background:#9ca3af2e;color:#9ca3af}.dark-mode .esp-counts-done{color:#86efac}.dark-mode .esp-load-more{background:#ffffff0a;border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .esp-load-more:hover{background:#ffffff14}.dark-mode .esp-error{color:#fca5a5}.routes-manage-page{box-sizing:border-box;display:flex;flex-direction:column;gap:16px;min-height:100vh;padding:24px}.routes-manage-page .page-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.loading-tag{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;font-weight:500;letter-spacing:normal;margin-left:8px;text-transform:lowercase}.routes-manage-page .page-title{align-items:center;display:inline-flex;gap:8px}.routes-manage-page .page-title-help{align-items:center;display:inline-flex;position:relative}.routes-manage-page .page-title-info-btn{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--text-muted,#9ca3af);cursor:pointer;display:inline-flex;font-size:.6em;line-height:1;margin:0;padding:4px;transition:color .15s ease,background .15s ease}.routes-manage-page .page-title-info-btn:focus-visible,.routes-manage-page .page-title-info-btn:hover{background:#3b82f614;color:#3b82f6;color:var(--primary,#3b82f6);outline:none}.routes-manage-page .page-title-popover{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;color:#111827;color:var(--text,#111827);font-size:13px;font-weight:400;left:0;letter-spacing:normal;max-width:320px;padding:10px 12px;position:absolute;text-transform:none;top:calc(100% + 6px);width:-webkit-max-content;width:max-content;z-index:20}.routes-manage-page .stale-info{align-items:center;display:inline-flex;margin-left:4px;position:relative}.routes-manage-page .stale-info-btn{align-items:center;background:none;border:none;border-radius:50%;color:#9ca3af;color:var(--text-muted,#9ca3af);cursor:pointer;display:inline-flex;font-size:12px;line-height:1;margin:0;padding:2px;transition:color .15s ease,background .15s ease}.routes-manage-page .stale-info-btn:focus-visible,.routes-manage-page .stale-info-btn:hover{background:#3b82f614;color:#3b82f6;color:var(--primary,#3b82f6);outline:none}.routes-manage-page .stale-info-popover{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;box-shadow:0 8px 24px #0000001f;color:#111827;color:var(--text,#111827);font-size:13px;font-weight:400;left:0;letter-spacing:normal;max-width:280px;padding:10px 12px;position:absolute;text-transform:none;top:calc(100% + 6px);width:-webkit-max-content;width:max-content;z-index:20}.routes-manage-body{grid-gap:16px;display:grid;flex:1 1;gap:16px;grid-template-columns:380px 1fr;min-height:0}.routes-manage-body-no-map{flex:0 0 auto;grid-template-columns:1fr}.routes-manage-body-no-map .routes-manage-list{align-self:start}.routes-manage-list{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;min-width:0;padding:12px 12px 20px}.page-header-actions{align-items:center;display:inline-flex;gap:8px}.routes-manage-page .btn-secondary{align-items:center;background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;color:#1a1a1a;color:var(--text-primary,#1a1a1a);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;padding:8px 14px}.routes-manage-page .btn-secondary:hover:not(:disabled){background:#f9fafb;background:var(--surface-hover,#f9fafb)}.routes-manage-page .btn-secondary:disabled{cursor:not-allowed;opacity:.6}.dark-mode .routes-manage-page .btn-secondary{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.dark-mode .routes-manage-page .btn-secondary:hover:not(:disabled){background:#252525;background:var(--bg-input,#252525)}.routes-overview-map{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;height:360px;min-height:240px;overflow:hidden}.routes-overview-map.closed{display:none}.dark-mode .routes-overview-map{background:#1f2937;border-color:#374151}@media (max-width:640px){.routes-overview-map{height:280px}}.route-row{align-items:center;-webkit-appearance:none;appearance:none;background:#fff;background:var(--bg-card,#fff);border:1px solid #d1d5db;border:1px solid var(--border-color,#d1d5db);border-radius:8px;box-shadow:0 1px 2px #0f172a0a;box-sizing:border-box;color:inherit;cursor:pointer;display:flex;font:inherit;gap:14px;min-width:0;padding:10px 14px;position:relative;text-align:left;transition:background .12s ease,border-color .12s ease;width:100%}.route-row:hover{background:#f9fafb;background:var(--surface-hover,#f9fafb)}.route-row.inactive{opacity:.6}.route-row-main{display:flex;flex:1 1 auto;flex-direction:column;gap:2px;min-width:0}.route-row-name{align-items:center;color:#1a1a1a;color:var(--text-primary,#1a1a1a);display:inline-flex;font-size:14px;font-weight:600;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-row-meta{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px}.route-color-dot{border-radius:50%;box-shadow:0 0 0 1px #0f172a1a;display:inline-block;flex-shrink:0;height:10px;width:10px}.route-row-chevron{color:#9ca3af;color:var(--text-muted,#9ca3af);flex:0 0 auto;height:12px;width:12px}.route-row-open{align-items:stretch;border-color:#3b82f6;box-shadow:0 4px 14px #3b82f61f;cursor:default;display:flex;flex-direction:column;gap:10px;padding:0}.route-row-open.draft{border-style:dashed}.route-row-open-header{align-items:center;border-top-left-radius:7px;border-top-right-radius:7px;display:flex;gap:14px;padding:10px 14px;width:100%}.route-row-open-header-button{-webkit-appearance:none;appearance:none;background:#0000;border:none;border-top-left-radius:7px;border-top-right-radius:7px;color:inherit;cursor:pointer;font:inherit;text-align:left;transition:background .12s ease}.route-row-open-header-button:hover{background:#f3f4f6;background:var(--surface-hover,#f3f4f6)}.dark-mode .route-row-open-header-button:hover{background:#252525;background:var(--bg-input,#252525)}.route-row-body{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);display:flex;flex-direction:column;gap:8px;padding:12px 14px 14px}.dark-mode .route-row{color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.dark-mode .route-row:hover{background:#252525;background:var(--bg-input,#252525)}.dark-mode .route-row-open{border-color:#60a5fa}.dark-mode .route-row-name{color:#f3f4f6;color:var(--text-primary,#f3f4f6)}@media (max-width:640px){.route-row{gap:10px;padding:10px 12px}.route-row-chevron{display:none}}.status-pill{border-radius:999px;font-size:10px;font-weight:600;padding:2px 6px;position:absolute;right:8px;text-transform:uppercase;top:8px}.status-pill.ready{background:#f3f4f6;color:#6b7280}.status-pill.stale{background:#fef3c7;color:#92400e}.status-pill.optimized{background:#d1fae5;color:#065f46}.routes-manage-map{background:#fff;background:var(--surface,#fff);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:12px;min-width:0;overflow:hidden;position:relative}.routes-map-canvas{height:100%;width:100%}.map-toggle-button{background:#fffffff5;border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:999px;box-shadow:0 2px 6px #0000001f;color:#1f2937;cursor:pointer;font-size:12px;font-weight:600;padding:6px 14px;position:absolute;right:12px;top:12px;z-index:1}.map-toggle-button:hover{background:#f3f4f6}.dark-mode .map-toggle-button{background:#1f2937f5;border-color:#4b5563;color:#f3f4f6}.dark-mode .map-toggle-button:hover{background:#374151}.routes-manage-editor .editor-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.routes-manage-editor h3{font-size:18px;margin:0}.editor-label{color:#6b7280;color:var(--text-muted,#6b7280);display:block;font-size:11px;letter-spacing:.05em;margin-bottom:4px;text-transform:uppercase}.editor-field{display:flex;flex-direction:column;gap:4px}.editor-input{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:6px;box-sizing:border-box;color:inherit;font-family:inherit;font-size:13px;height:30px;line-height:1;padding:6px 10px;width:100%}.editor-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;outline:none}.assignees-editor,.regions-editor{display:flex;flex-direction:column;gap:6px}.multi-select-inline{display:flex;flex-wrap:wrap;gap:4px}.pill{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:999px;cursor:pointer;font-size:12px;padding:3px 10px;transition:all .12s ease}.pill.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.pill.readonly{cursor:default}.pill:hover:not(.active):not(.readonly){background:#f3f4f6;background:var(--surface-hover,#f3f4f6)}.pill .role-tag{font-size:10px;margin-left:2px;opacity:.7}.route-dropdown{position:relative}.route-dropdown-trigger{align-items:center;background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:6px;box-sizing:border-box;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:8px;min-height:30px;padding:6px 10px;text-align:left;transition:all .12s ease;width:100%}.route-dropdown-trigger:hover:not(:disabled){background:#f3f4f6;background:var(--surface-hover,#f3f4f6)}.route-dropdown-trigger:disabled{color:#6b7280;color:var(--text-muted,#6b7280);cursor:default}.route-dropdown-trigger.has-selection{border-color:#3b82f6}.route-dropdown-summary{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-dropdown-trigger:not(.has-selection) .route-dropdown-summary{color:#6b7280;color:var(--text-muted,#6b7280)}.route-dropdown .trigger-chevron{flex-shrink:0;font-size:10px;transition:transform .15s ease}.route-dropdown .trigger-chevron.open{transform:rotate(180deg)}.route-dropdown-menu{background:#fff;background:var(--surface,#fff);border:1px solid #d1d5db;border:1px solid var(--border,#d1d5db);border-radius:6px;box-shadow:0 8px 24px #00000026;left:0;max-height:240px;overflow-y:auto;padding:4px 0;position:absolute;right:0;top:calc(100% + 4px);z-index:100}.route-dropdown-item{align-items:center;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 10px;transition:background-color .1s ease}.route-dropdown-item:hover{background:#f3f4f6;background:var(--surface-hover,#f3f4f6)}.route-dropdown-item input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;flex-shrink:0;height:15px;width:15px}.route-dropdown-item-label{flex:1 1}.route-dropdown-item .role-tag{font-size:11px;opacity:.7}.editor-stats{align-items:center;background:#eff6ff;background:var(--surface-hover,#eff6ff);border-radius:6px;color:#1e40af;display:flex;font-size:13px;gap:6px;margin-top:4px;padding:6px 10px}.editor-toggle{align-items:flex-start;background:#f8fafc;background:var(--surface-hover,#f8fafc);border:1px solid #e2e8f0;border:1px solid var(--border-color,#e2e8f0);border-radius:6px;cursor:pointer;display:flex;gap:8px;margin-top:4px;padding:8px 10px}.editor-toggle input{flex:0 0 auto;margin-top:2px}.editor-toggle-text{display:flex;flex-direction:column;gap:2px}.editor-toggle-title{color:#1e293b;color:var(--text-primary,#1e293b);font-size:13px;font-weight:600}.editor-toggle-help{color:#64748b;color:var(--text-secondary,#64748b);font-size:12px;line-height:1.35}.dark-mode .editor-toggle{background:#252525;background:var(--bg-input,#252525);border-color:#3a3a3a;border-color:var(--border-color,#3a3a3a)}.dark-mode .editor-toggle-title{color:#e5e7eb}.dark-mode .editor-toggle-help{color:#9ca3af}.editor-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.editor-actions .btn-primary{flex:0 0 auto;font-size:13px;min-width:0;padding:8px 18px;white-space:nowrap}.editor-actions .btn-secondary{flex:0 0 auto;font-size:13px;padding:8px 14px}.editor-actions .btn-danger{flex:0 0 auto;font-size:13px;padding:8px 12px}.optimize-status{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;padding:6px 0}.optimize-status .warning{color:#92400e;font-weight:500}.optimize-status.stale,.optimize-status.stale .warning{color:#b45309}.optimize-status .stale-tag{font-weight:600}.btn-primary.is-stale{border:1px solid #f59e0b;box-shadow:0 0 0 3px #f59e0b2e}.btn-primary.is-stale:hover:not(:disabled){box-shadow:0 0 0 4px #f59e0b40}.day-cell.stale{border-color:#f59e0b}.day-cell.stale.selected{background:#fffbeb;border-color:#f59e0b;box-shadow:0 0 0 1px #f59e0b}.assigned-summary{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.employee-chip{background:#f3f4f6;background:var(--surface-hover,#f3f4f6);border-radius:999px;font-size:12px;padding:2px 10px}.dark-mode .employee-chip{background:#252525;background:var(--bg-input,#252525);color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.routes-manage-editor .empty-state{align-items:center;color:#9ca3af;color:var(--text-muted,#9ca3af);display:flex;flex-direction:column;gap:8px;margin:auto 0;text-align:center}.badge{background:#fef3c7;color:#92400e;margin-left:4px;padding:2px 6px}@media (max-width:1024px){.routes-manage-body{grid-template-columns:1fr}.routes-manage-map{min-height:400px}}@media (max-width:600px){.routes-manage-page{gap:12px;padding:12px}.routes-manage-list{padding:10px 10px 14px}}.dark-mode .routes-manage-list,.dark-mode .routes-manage-map{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .editor-stats{color:#dbeafe}.dark-mode .editor-input,.dark-mode .editor-stats{background:#252525;background:var(--bg-input,#252525)}.dark-mode .editor-input{border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);color:#f3f4f6}.dark-mode .pill{background:#1f2937;border-color:#4b5563;color:#f3f4f6}.dark-mode .pill:hover:not(.active):not(.readonly){background:#374151}.dark-mode .pill.active{background:#3b82f6;border-color:#60a5fa;box-shadow:0 0 0 1px #60a5fa,0 2px 6px #3b82f666;color:#fff}.dark-mode .route-dropdown-menu,.dark-mode .route-dropdown-trigger{background:#252525;background:var(--bg-input,#252525);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);color:#f3f4f6}.dark-mode .route-dropdown-item:hover,.dark-mode .route-dropdown-trigger:hover:not(:disabled){background:#374151}.dark-mode .route-dropdown-trigger.has-selection{border-color:#60a5fa}.day-strip{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));margin:12px 0}.day-cell{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:2px;padding:8px 6px;position:relative;transition:background .12s ease,border-color .12s ease}.day-cell:hover{background:#f3f4f6}.day-cell.selected{background:#eff6ff;border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.day-cell-label{color:#6b7280;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.day-cell-count{color:#111827;font-size:14px;font-weight:600}.day-cell-dot{border-radius:50%;height:6px;position:absolute;right:6px;top:6px;width:6px}.day-cell-dot.optimized{background:#10b981}.day-cell-dot.stale{background:#f59e0b}.day-cell-dot.ready{background:#9ca3af}.day-cell-dot.pending{background:#0000}.route-row-skeleton-group{display:flex;flex-direction:column;gap:8px}.route-row-skeleton{border-left-color:#e5e7eb;border-left-color:var(--border,#e5e7eb);cursor:default;pointer-events:none}.route-row-skeleton:hover{background:#fff;background:var(--surface,#fff)}.skeleton-block{background:#e5e7eb;border-radius:4px;display:inline-block;overflow:hidden;position:relative}.skeleton-block:after{animation:route-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}.skeleton-name{height:14px;width:38%}.skeleton-meta{height:11px;margin-top:4px;width:22%}.skeleton-chevron{border-radius:2px;height:12px;width:12px}@keyframes route-skeleton-shimmer{to{transform:translateX(100%)}}.dark-mode .skeleton-block{background:#374151}.dark-mode .skeleton-block:after{background:linear-gradient(90deg,#37415100,#4b5563b3 50%,#37415100)}.dark-mode .route-row-skeleton{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);border-left-color:#2d2d2d;border-left-color:var(--border-color,#2d2d2d)}@media (max-width:600px){.skeleton-chevron{display:none}}@media (prefers-reduced-motion:reduce){.skeleton-block:after{animation:none}}.editor-day-breakdown{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 8px}.day-breakdown-pill{background:#f3f4f6;border-radius:999px;color:#374151;font-size:11px;padding:2px 8px;white-space:nowrap}.day-breakdown-pill strong{color:#111827;font-weight:600;margin-right:4px}.dark-mode .day-cell{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.dark-mode .day-cell.selected,.dark-mode .day-cell:hover{background:#252525;background:var(--bg-input,#252525)}.dark-mode .day-cell.selected{border-color:#60a5fa;box-shadow:0 0 0 1px #60a5fa}.dark-mode .day-cell-label{color:#9ca3af}.dark-mode .day-cell-count{color:#f3f4f6}.dark-mode .editor-day-breakdown .day-breakdown-pill{background:#1f2937;color:#d1d5db}.dark-mode .editor-day-breakdown .day-breakdown-pill strong{color:#f3f4f6}.per-route-map-panel{display:flex;flex-direction:column;gap:8px;margin-top:4px}.per-route-map-toggle{align-self:flex-start}.per-route-map-toggle svg:last-child{margin-left:4px}.per-route-map-wrapper{border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:10px;height:360px;min-height:240px;overflow:hidden}.per-route-map-wrapper.closed{display:none}.per-route-map{height:100%;position:relative;width:100%}.dark-mode .per-route-map-wrapper{border-color:#374151}@media (max-width:640px){.per-route-map-wrapper{height:280px}}.route-dialog-backdrop{align-items:center;animation:route-dialog-fade .15s ease-out;background:#0f172a8c;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:10000}.route-dialog{animation:route-dialog-pop .2s ease-out;background:#fff;background:var(--surface,#fff);border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:28px 28px 24px;text-align:center;width:100%}.route-dialog h3{color:#1f2937;font-size:18px;margin:12px 0 8px}.route-dialog p{color:#4b5563;font-size:14px;line-height:1.5;margin:8px 0}.route-dialog-subtle{color:#9ca3af;font-size:12px}.route-dialog-icon{align-items:center;border-radius:50%;display:flex;font-size:28px;height:56px;justify-content:center;margin:0 auto 4px;width:56px}.route-dialog-icon.warn{background:#fef3c7;color:#b45309}.route-dialog-icon.success{background:#d1fae5;color:#047857}.route-dialog-stats{background:#f9fafb;background:var(--surface-hover,#f9fafb);border-radius:8px;color:#1f2937;display:flex;font-weight:600;gap:24px;justify-content:center;margin:12px 0;padding:12px}.route-dialog-stats div{align-items:center;display:flex;gap:6px}.route-dialog .btn-primary{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;margin-top:12px;padding:10px;width:100%}.route-dialog .btn-primary:hover{background:#2563eb}@keyframes route-dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes route-dialog-pop{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.dark-mode .route-dialog{background:#1f2937}.dark-mode .route-dialog h3{color:#f3f4f6}.dark-mode .route-dialog p{color:#d1d5db}.dark-mode .route-dialog-stats{background:#111827;color:#f3f4f6}.route-complete-card-wrap{align-items:center;animation:route-dialog-fade .15s ease-out;display:flex;inset:0;justify-content:center;padding:16px;pointer-events:none;position:absolute;z-index:1200}.route-complete-card{animation:route-dialog-pop .2s ease-out;background:#fff;background:var(--surface,#fff);border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:380px;padding:24px 24px 20px;pointer-events:auto;text-align:center;width:100%}.route-complete-card h3{color:#1f2937;font-size:18px;margin:0 0 8px}.route-complete-card p{color:#4b5563;font-size:14px;line-height:1.5;margin:8px 0}.route-complete-card .route-dialog-subtle{color:#9ca3af;font-size:12px}.route-complete-actions{display:flex;gap:8px;margin-top:14px}.route-complete-actions button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;flex:1 1;font-size:14px;font-weight:600;justify-content:center;padding:10px;text-align:center}.route-complete-actions .btn-primary{background:#3b82f6;color:#fff}.route-complete-actions .btn-primary:hover{background:#2563eb}.route-complete-actions .btn-secondary{background:#f3f4f6;background:var(--surface-hover,#f3f4f6);border:1px solid #e5e7eb;color:#1f2937}.route-complete-actions .btn-secondary:hover{background:#e5e7eb}.dark-mode .route-complete-card{background:#1f2937}.dark-mode .route-complete-card h3{color:#f3f4f6}.dark-mode .route-complete-card p{color:#d1d5db}.dark-mode .route-complete-actions .btn-secondary{background:#111827;border-color:#374151;color:#f3f4f6}.route-nav-overlay{background:#0b1220;color:#f3f4f6;inset:0;position:absolute}.route-nav-loading{background:#0b1220}.route-nav-map{inset:0;position:absolute}.route-nav-float{align-items:center;-webkit-appearance:none;appearance:none;background:var(--bg-card);border:none;border-radius:10px;box-shadow:0 2px 8px #0000001a;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:16px;height:44px;justify-content:center;transition:background .15s ease,transform .15s ease;width:44px}.route-nav-float:hover{background:var(--bg-hover)}.route-nav-float:active{transform:scale(.97)}.route-nav-float.active{background:var(--accent);color:#fff}.route-nav-float-tr{display:flex;gap:8px;position:absolute;right:16px;top:16px;z-index:5}.route-nav-seeded-notice{align-items:center;background:#111827d9;border:1px solid #ffffff1f;border-radius:999px;color:#f9fafb;display:flex;font-size:12px;gap:8px;left:50%;line-height:1.3;max-width:min(92vw,420px);padding:5px 8px 5px 14px;position:absolute;top:72px;transform:translateX(-50%);z-index:4}.route-nav-seeded-notice-close{align-items:center;background:#ffffff1f;border:none;border-radius:50%;color:#f9fafb;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:11px;height:22px;justify-content:center;width:22px}.route-nav-user-dot{background:#4285f4;border:2px solid #fff;border-radius:50%;box-shadow:0 0 6px #4285f4;height:14px;width:14px}.route-nav-locate-float{align-items:center;-webkit-appearance:none;appearance:none;background:#374151eb;border:1px solid #ffffff2e;border-radius:50%;bottom:calc(12px + env(safe-area-inset-bottom));box-shadow:0 2px 8px #00000059;color:#60a5fa;cursor:pointer;display:inline-flex;font-size:16px;height:44px;justify-content:center;position:absolute;right:12px;transition:background .15s ease,transform .15s ease;width:44px;z-index:5}.route-nav-locate-float--raised{bottom:calc(64px + env(safe-area-inset-bottom))}.route-nav-locate-float:hover{background:#4b5563f2}.route-nav-locate-float:active{transform:scale(.97)}.route-nav-dropdown{background:#111827;border:1px solid #ffffff1f;border-radius:12px;box-shadow:0 8px 24px #00000080;color:#f3f4f6;display:flex;flex-direction:column;overflow:hidden;position:absolute;right:16px;top:68px;z-index:6}.route-nav-dropdown-stops{max-height:calc(100vh - 220px);width:min(340px,calc(100vw - 24px))}.route-nav-dropdown-options{max-height:calc(100vh - 100px);overflow-y:auto;width:260px}.route-nav-dropdown-header{align-items:center;border-bottom:1px solid #ffffff14;display:flex;justify-content:space-between;padding:12px 14px}.route-nav-dropdown-header h3{color:#f3f4f6;flex:1 1;font-size:14px;font-weight:600;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-nav-dropdown-count{font-feature-settings:"tnum";color:#9ca3af;flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;margin-right:8px}.route-nav-dropdown-close{-webkit-appearance:none;appearance:none;background:#0000;border:none;color:#9ca3af;cursor:pointer;font-size:14px;padding:4px}.route-nav-dropdown-close:hover{color:#f3f4f6}.route-nav-stoplist-list{flex:1 1;list-style:none;margin:0;overflow-y:auto;padding:6px 0}.route-nav-stoplist-list li button{align-items:center;background:#0000;border:none;color:#e5e7eb;cursor:pointer;display:flex;font-size:13px;gap:12px;padding:10px 14px;text-align:left;width:100%}.route-nav-stoplist-list li button:hover{background:#ffffff0d}.route-nav-stoplist-list li.done button{color:#6b7280}.stop-num{align-items:center;background:#3b82f6;border-radius:50%;color:#fff;display:inline-flex;flex-shrink:0;font-size:11px;font-weight:700;height:24px;justify-content:center;width:24px}.stop-num.done{background:#374151;color:#9ca3af}.stop-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop-seeded-tag{background:#3b82f629;border-radius:999px;color:#93c5fd;flex-shrink:0;font-size:10px;font-weight:600;letter-spacing:.02em;margin-left:auto;padding:2px 8px}.route-nav-option{align-items:center;color:#e5e7eb;cursor:pointer;display:flex;font-size:13px;gap:10px;padding:7px 14px}.route-nav-option:hover{background:#ffffff0a}.route-nav-option input[type=checkbox]{accent-color:#2563eb;cursor:pointer;height:16px;width:16px}.route-nav-section{border-top:1px solid #ffffff14;padding:12px 14px}.route-nav-section:first-child{border-top:none}.route-nav-section-options{padding-left:0;padding-right:0}.route-nav-section-options .route-nav-section-title{padding:0 14px}.route-nav-section-title{align-items:center;color:#9ca3af;display:flex;font-size:11px;font-weight:600;justify-content:space-between;letter-spacing:.05em;margin-bottom:10px;text-transform:uppercase}.route-nav-section-title.clickable{cursor:pointer}.route-nav-style-row{display:flex;gap:6px}.route-nav-style-btn{-webkit-appearance:none;appearance:none;background:#1f2937;border:1px solid #ffffff26;border-radius:6px;color:#e5e7eb;cursor:pointer;flex:1 1;font-size:12px;font-weight:500;padding:8px 6px}.route-nav-style-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}.route-nav-legend-row{align-items:center;color:#e5e7eb;display:flex;font-size:12px;gap:10px;margin-bottom:8px}.route-nav-legend-row:last-child{margin-bottom:0}.route-nav-legend-dot{border-radius:50%;flex-shrink:0;height:12px;margin:0 2px;width:12px}.route-nav-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.route-nav-chip{-webkit-appearance:none;appearance:none;background:#1f2937;border:1px solid #ffffff26;border-radius:6px;color:#e5e7eb;cursor:pointer;font-size:12px;font-weight:500;padding:6px 10px}.route-nav-chip.active{background:#2563eb;border-color:#2563eb;color:#fff}.route-nav-radio-row{align-items:center;color:#e5e7eb;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 0}.route-nav-radio-row input[type=radio]{accent-color:#2563eb;cursor:pointer;height:16px;width:16px}.routes-employee-page{display:flex;flex-direction:column;gap:16px;margin:0 auto;max-width:1100px;padding:24px}.routes-employee-page .section-card{background:#fff;background:var(--bg-card,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;padding:20px}.routes-employee-page .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.routes-employee-page .section-title{align-items:center;display:flex;font-size:16px;gap:8px;margin:0}.route-cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.route-employee-card{background:#fff;background:var(--bg-card,#fff);border:1px solid #d1d5db;border:1px solid var(--border-color,#d1d5db);border-radius:12px;box-shadow:0 1px 2px #0f172a0a;display:flex;flex-direction:column;overflow:hidden;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.route-employee-card:hover:not(.blocked){border-color:#0071e3;border-color:var(--accent,#0071e3);box-shadow:0 4px 14px #0071e326;transform:translateY(-2px)}.route-employee-card:hover:not(.blocked) .route-card-arrow{color:#0071e3;color:var(--accent,#0071e3);transform:translateX(2px)}.route-employee-card.open{border-color:#0071e3;border-color:var(--accent,#0071e3);box-shadow:0 4px 14px #0071e326}.route-employee-card.viewed{border-color:#10b981}.route-employee-card.starting{border-color:#0071e3;border-color:var(--accent,#0071e3);box-shadow:0 4px 14px #0071e326}.route-employee-card.completed{background:#f0fdf4;border-color:#86efac}.route-employee-card.completed .route-card-title{color:#065f46}.route-employee-card.completed .route-card-stats .stat{color:#047857}.route-employee-card.blocked{box-shadow:none;opacity:.5}.route-employee-card.blocked .route-card-button{cursor:not-allowed}.route-employee-card.starting .route-card-button{cursor:progress}.route-employee-card.viewed .route-card-button{cursor:default}.route-card-top-right{align-items:center;display:flex;flex-shrink:0;gap:8px}.route-card-arrow{color:#9ca3af;color:var(--text-muted,#9ca3af);height:13px;transition:color .15s ease,transform .15s ease;width:13px}.route-card-spinner{animation:route-card-spin .9s linear infinite;margin-right:4px}@keyframes route-card-spin{to{transform:rotate(1turn)}}.route-card-button{-webkit-appearance:none;appearance:none;background:#0000;color:inherit;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:10px;padding:16px;text-align:left;width:100%}.route-card-button:focus-visible{outline:2px solid #3b82f6;outline-offset:-2px}.route-card-menu{background:#f9fafb;background:var(--surface-hover,#f9fafb);border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);display:flex;flex-direction:column}.menu-item{align-items:flex-start;-webkit-appearance:none;appearance:none;background:#0000;border:none;color:#1f2937;cursor:pointer;display:flex;font:inherit;gap:12px;padding:12px 16px;text-align:left;transition:background .12s ease;width:100%}.menu-item+.menu-item{border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb)}.menu-item:hover{background:#eff6ff}.menu-item>svg{color:#3b82f6;flex-shrink:0;margin-top:3px}.menu-item.primary>svg{color:#2563eb}.menu-item-label{font-size:14px;font-weight:600}.menu-item-desc{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;margin-top:2px}.badge-info{background:#d1fae5;color:#047857}.route-card-top{justify-content:space-between}.route-card-title,.route-card-top{align-items:center;display:flex;gap:8px}.route-card-title{color:#1f2937;font-size:15px;font-weight:600}.route-card-stats{color:#6b7280;color:var(--text-muted,#6b7280);display:flex;flex-wrap:wrap;font-size:13px;gap:12px}.route-card-stats .stat{align-items:center;display:flex;gap:4px}.route-card-footer{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);color:#92400e;display:flex;font-size:12px;font-weight:500;gap:6px;padding-top:8px}.badge{background:#f3f4f6;border-radius:999px;color:#6b7280;font-size:10px;font-weight:600;padding:2px 8px;text-transform:uppercase}.badge-warn{background:#fef3c7;color:#92400e}.badge-success{align-items:center;background:#d1fae5;color:#065f46;display:inline-flex;gap:4px}.badge-success svg{height:9px;width:9px}.dark-mode .route-employee-card.completed{background:#052e16;border-color:#065f46}.dark-mode .route-employee-card.completed .route-card-title{color:#6ee7b7}.dark-mode .route-employee-card.completed .route-card-stats .stat{color:#34d399}.sessions-list{display:flex;flex-direction:column;gap:8px}.session-row{grid-gap:12px;align-items:center;background:#f9fafb;background:var(--surface-hover,#f9fafb);border-radius:8px;display:grid;font-size:13px;gap:12px;grid-template-columns:120px 1fr auto;padding:10px 12px}.session-date{color:#1f2937;font-weight:600}.session-times{color:#6b7280;color:var(--text-muted,#6b7280)}.session-stats{align-items:center;display:flex;gap:8px}.history-show-more{background:#f9fafb;background:var(--surface-hover,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;color:#1f2937;color:var(--text,#1f2937);cursor:pointer;font-size:13px;font-weight:600;margin-top:12px;padding:10px 12px;width:100%}.history-show-more:hover{background:#f3f4f6;background:var(--surface,#f3f4f6)}.dark-mode .history-show-more{background:#252525;background:var(--bg-input,#252525);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d);color:#e5e7eb;color:var(--text-primary,#e5e7eb)}.dark-mode .history-show-more:hover{background:#1a1a1a;background:var(--bg-card,#1a1a1a)}.routes-employee-page .empty-state{align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:flex;flex-direction:column;gap:6px;padding:32px 16px;text-align:center}.routes-employee-page .empty-hint{color:#9ca3af;font-size:12px}.routes-employee-page .empty-state a{color:#3b82f6;text-decoration:underline}.dark-mode .route-employee-card{box-shadow:0 1px 2px #0006}.dark-mode .route-card-title{color:#f3f4f6}.dark-mode .session-row{background:#252525;background:var(--bg-input,#252525)}.dark-mode .session-date{color:#f3f4f6;color:var(--text-primary,#f3f4f6)}.dark-mode .route-card-menu{background:#111827;border-top-color:#374151}.dark-mode .menu-item{border-color:#374151;color:#f3f4f6}.dark-mode .menu-item+.menu-item{border-top-color:#374151}.dark-mode .menu-item:hover{background:#1e3a8a}.dark-mode .menu-item-desc{color:#9ca3af}.dark-mode .badge-info{background:#064e3b;color:#6ee7b7}.active-session-card{background:#fff;background:var(--bg-card,#fff);border:1px solid #e8e8e8;border:1px solid var(--border-color,#e8e8e8);border-radius:12px;box-shadow:0 1px 3px #0f172a0f;overflow:hidden}.active-session-banner{align-items:center;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border-color,#e8e8e8);color:#86868b;color:var(--text-secondary,#86868b);display:flex;font-size:13px;font-weight:600;gap:8px;padding:12px 20px}.active-session-banner svg{color:#0071e3;color:var(--accent,#0071e3)}.active-session-banner strong{color:#1d1d1f;color:var(--text-primary,#1d1d1f)}.active-session-body{display:flex;flex-direction:column;gap:12px;padding:16px 20px}.active-session-title{align-items:center;color:#1d1d1f;color:var(--text-primary,#1d1d1f);display:flex;font-size:17px;font-weight:600;gap:8px}.active-session-title svg{color:#0071e3;color:var(--accent,#0071e3)}.active-session-stats{color:#86868b;color:var(--text-secondary,#86868b);display:flex;font-size:14px;gap:20px}.active-session-stats div{align-items:center;display:flex;gap:6px}.active-session-actions{display:flex;gap:8px}.active-session-actions button{flex:1 1;justify-content:center}.day-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.day-tab{background:#f9fafb;border:1px solid #e5e7eb;border-radius:999px;color:#6b7280;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;padding:8px 14px;transition:background .12s ease,color .12s ease,border-color .12s ease}.day-tab:hover{background:#eff6ff;color:#1d4ed8}.day-tab.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.dark-mode .day-tab{background:#111827;border-color:#374151;color:#9ca3af}.dark-mode .day-tab:hover{background:#1e3a8a;color:#dbeafe}.dark-mode .day-tab.active{background:#2563eb;border-color:#60a5fa;color:#fff}.re-skeleton-block{background:#e5e7eb;border-radius:4px;display:inline-block;overflow:hidden;position:relative}.re-skeleton-block:after{animation:re-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes re-skeleton-shimmer{to{transform:translateX(100%)}}.re-skeleton-title{height:22px;margin-bottom:8px;width:140px}.re-skeleton-subtitle{height:13px;max-width:360px;width:60%}.re-skeleton-section-title{height:16px;width:160px}.re-skeleton-card{cursor:default;display:flex;flex-direction:column;gap:10px;padding:16px}.re-skeleton-card:hover{border-color:#e5e7eb;border-color:var(--border,#e5e7eb)}.re-skeleton-card-title{height:16px;width:55%}.re-skeleton-card .route-card-stats{gap:12px}.re-skeleton-stat{height:12px;width:90px}.re-skeleton-session-row{background:#f9fafb;background:var(--surface-hover,#f9fafb)}.re-skeleton-session-date{height:14px;width:100%}.re-skeleton-session-times{height:12px;width:70%}.re-skeleton-session-stats{height:12px;justify-self:end;width:80px}.dark-mode .re-skeleton-block{background:#ffffff14}.dark-mode .re-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.re-skeleton-block:after{animation:none}}@media (max-width:600px){.routes-employee-page{gap:12px;padding:12px}.routes-employee-page .section-card{padding:14px}.routes-employee-page .section-header{margin-bottom:8px}.session-row{column-gap:10px;grid-template-columns:auto 1fr;padding:10px;row-gap:4px}.session-times{font-size:12px;white-space:nowrap}.session-stats{flex-wrap:wrap;font-size:12px;grid-column:1/-1}}.invoice-history-container{background-color:var(--bg-primary);box-sizing:border-box;margin:0;max-width:100%;overflow-y:auto;padding:24px;width:100%}.invoice-history-container .page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.invoice-history-container .page-title{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 4px}.invoice-history-container .page-subtitle{color:var(--text-secondary);font-size:15px;margin:0}.invoice-filters{margin-bottom:20px}.invoice-filters .search-container{max-width:400px;position:relative}.invoice-filters .search-icon{color:var(--text-muted);font-size:14px;left:14px;position:absolute;top:50%;transform:translateY(-50%)}.invoice-filters .search-input{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:12px 14px 12px 40px;transition:all .2s ease;width:100%}.invoice-filters .search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.invoice-filters .search-input::placeholder{color:var(--text-muted)}.invoice-filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.invoice-filters-row+.invoice-filters-row{margin-top:12px}.invoice-filter-select{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;min-width:180px;padding:12px 14px;transition:all .2s ease}.invoice-filter-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.invoice-status-chips{display:flex;gap:6px}.invoice-status-chip{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:6px 14px;transition:all .2s ease}.invoice-status-chip:hover{border-color:var(--text-muted)}.invoice-status-chip.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.period-dates{display:block;font-size:11px;font-weight:400;margin-top:1px;opacity:.85}.invoice-clear-filters{align-items:center;background-color:#ff3b301a;border:none;border-radius:8px;color:#ff3b30;cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:500;gap:5px;padding:6px 12px;transition:all .2s ease}.invoice-clear-filters:hover{background-color:#ff3b3033}.invoices-section{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.invoices-list{padding:0}.invoice-card{border-bottom:1px solid var(--border-color);transition:all .2s ease}.invoice-card:last-child{border-bottom:none}.invoice-card:hover{background-color:var(--bg-hover)}.invoice-card.expanded{background-color:var(--bg-input)}.invoice-row{align-items:center;cursor:pointer;display:flex;gap:16px;justify-content:space-between;padding:16px 20px}.invoice-main-info{flex:1 1;min-width:0}.invoice-header-line{align-items:center;display:flex;gap:10px;margin-bottom:4px}.invoice-number{color:var(--text-primary);font-size:15px;font-weight:600}.invoice-status-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;text-transform:uppercase}.invoice-status-badge.generated{background-color:#8e8e9326;color:var(--text-muted)}.invoice-status-badge.sent{background-color:#34c75926;color:var(--success)}.invoice-status-badge.viewed{background-color:#0071e326;color:var(--accent)}.invoice-status-badge.paid{background-color:#34c75926;color:var(--success)}.invoice-meta{color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:13px;gap:14px}.invoice-company{font-weight:500}.invoice-actions{align-items:center;display:flex;flex-shrink:0;gap:12px}.invoice-total{color:var(--text-primary);font-size:16px;font-weight:700}.mark-paid-btn{align-items:center;background-color:initial;border:1px solid var(--success);border-radius:8px;color:var(--success);cursor:pointer;display:flex;font-family:inherit;font-size:12px;font-weight:600;gap:5px;padding:6px 12px;transition:all .2s ease;white-space:nowrap}.mark-paid-btn:hover{background-color:var(--success);color:#fff;transform:translateY(-1px)}.pdf-btn{align-items:center;background-color:#ff3b301a;border-radius:8px;color:#ff3b30;display:flex;height:36px;justify-content:center;text-decoration:none;transition:all .2s ease;width:36px}.pdf-btn:hover{background-color:#ff3b3033;transform:translateY(-1px)}.invoice-card .expand-icon{color:var(--text-muted);flex-shrink:0;font-size:14px;transition:transform .2s ease}.invoice-card .expand-icon.rotated{transform:rotate(180deg)}.invoice-expanded{background-color:var(--bg-primary);border-top:1px solid var(--border-color);padding:16px 20px 20px}.line-items-table{border-collapse:collapse;font-size:13px;margin-bottom:16px;width:100%}.line-items-table th{background-color:var(--bg-card);border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-weight:600;padding:8px 12px;text-align:left;text-transform:uppercase}.line-items-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:10px 12px}.line-items-table tfoot td{border-bottom:none;border-top:2px solid var(--border-color);padding-top:12px}.download-pdf-btn{align-items:center;background-color:var(--accent);border:none;border-radius:8px;color:#fff;display:inline-flex;font-size:13px;font-weight:500;gap:8px;padding:10px 18px;text-decoration:none;transition:all .2s ease}.download-pdf-btn:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.no-invoices{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;padding:60px 25px}.no-invoices svg{margin-bottom:14px;opacity:.4}.no-invoices p{font-size:15px;margin:0}.invoice-history-container .pagination-controls{align-items:center;border-top:1px solid var(--border-color);display:flex;gap:16px;justify-content:center;padding:20px}.invoice-history-container .pagination-btn{align-items:center;background-color:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:inherit;font-size:14px;font-weight:500;gap:6px;padding:10px 18px;transition:all .2s ease}.invoice-history-container .pagination-btn:hover:not(:disabled){background-color:var(--accent-hover)}.invoice-history-container .pagination-btn:disabled{background-color:var(--bg-input);color:var(--text-muted);cursor:not-allowed}.invoice-history-container .pagination-info{color:var(--text-secondary);font-size:14px;font-weight:500}.invoice-history-container .loading-container{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}@media (max-width:768px){.invoice-history-container{padding:16px}.invoice-history-container .page-title{font-size:24px}.invoice-filters .search-container{max-width:none}.invoice-filters-row{align-items:stretch;flex-direction:column}.invoice-filter-select{min-width:0;min-width:auto;width:100%}.invoice-status-chips{-webkit-overflow-scrolling:touch;overflow-x:auto;padding-bottom:2px}.invoice-row{align-items:flex-start;flex-direction:column;gap:10px;padding:14px 16px}.invoice-actions{justify-content:space-between;width:100%}.invoice-meta{flex-direction:column;gap:4px}.line-items-table{font-size:12px}.line-items-table td,.line-items-table th{padding:8px 6px}}@media (max-width:480px){.invoice-history-container{padding:12px}.invoice-history-container .page-title{font-size:20px}.invoice-row{padding:12px}}.inv-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.inv-skeleton-block:after{animation:inv-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes inv-skeleton-shimmer{to{transform:translateX(100%)}}.inv-skeleton-title{height:28px;margin-bottom:10px;width:140px}.inv-skeleton-subtitle{height:14px;width:90px}.inv-skeleton-search{border-radius:8px;display:block;height:40px;max-width:320px;width:100%}.inv-skeleton-chip{border-radius:999px;height:32px;width:72px}.inv-skeleton-num{height:15px;width:120px}.inv-skeleton-badge{border-radius:999px;height:20px;width:54px}.inv-skeleton-company{height:13px;width:130px}.inv-skeleton-period{height:13px;width:170px}.inv-skeleton-total{flex-shrink:0;height:18px;width:70px}.dark-mode .inv-skeleton-block{background:#ffffff14}.dark-mode .inv-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.inv-skeleton-block:after{animation:none}}.billing-page{color:var(--text-primary);margin:0 auto;max-width:1080px;padding:20px 16px 60px}.billing-header{display:flex;justify-content:space-between;margin-bottom:6px}.billing-title-row{align-items:center;display:flex;gap:10px}.billing-title{font-size:22px;font-weight:600;margin:0}.billing-role-pill{background:#0071e31a;border-radius:8px;color:var(--accent);font-size:11px;font-weight:500;padding:3px 8px}.billing-subtitle{color:var(--text-secondary);font-size:13px;margin:4px 0 18px}.billing-cycle-banner{align-items:center;background:linear-gradient(135deg,#0071e314,#34c7590d);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:16px;padding:12px 16px}.billing-cycle-banner b{font-weight:600}.billing-cycle-pulse{animation:billing-pulse 2s infinite;background:var(--success);border-radius:50%;box-shadow:0 0 0 0 #34c75999;height:8px;width:8px}.billing-cycle-sep{color:var(--text-muted)}@keyframes billing-pulse{0%{box-shadow:0 0 0 0 #34c75980}70%{box-shadow:0 0 0 8px #34c75900}to{box-shadow:0 0 0 0 #34c75900}}.billing-kpi-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:18px}.billing-kpi{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:14px 16px}.billing-kpi.warn{border-color:#f5a62366}.billing-kpi-label{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.billing-kpi-value{font-feature-settings:"tnum";font-size:24px;font-variant-numeric:tabular-nums;font-weight:600;letter-spacing:-.01em;margin-top:6px}.billing-kpi-sub{color:var(--text-secondary);font-size:12px;margin-top:4px}@media (max-width:800px){.billing-kpi-grid{grid-template-columns:repeat(2,1fr)}}.billing-period-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.billing-period-tabs{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;display:flex;gap:2px;padding:3px}.billing-period-tab{background:#0000;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:12.5px;font-weight:500;padding:6px 14px}.billing-period-tab.active{background:var(--accent);color:#fff}.billing-date-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:12.5px;padding:6px 10px}.billing-date-sep{color:var(--text-muted)}.billing-period-range{color:var(--text-secondary);font-size:12.5px;margin-left:auto}.billing-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:4px;margin-bottom:14px}.billing-tab{align-items:center;background:#0000;border:0;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:8px;margin:0 12px 0 0;padding:10px 4px;position:relative;transition:color .15s}.billing-tab.active,.billing-tab:hover{color:var(--text-primary)}.billing-tab.active{font-weight:600}.billing-tab.active:after{background:var(--accent);border-radius:2px 2px 0 0;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.billing-tab-count{font-feature-settings:"tnum";background:var(--bg-hover);border-radius:10px;color:var(--text-secondary);font-size:11px;font-variant-numeric:tabular-nums;font-weight:600;padding:1px 7px}.billing-tab.active .billing-tab-count{background:#0071e31f;color:var(--accent)}.billing-section-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;margin-bottom:18px;overflow:hidden}.billing-section-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 16px}.billing-section-title{font-size:14px;font-weight:600}.billing-section-sub{color:var(--text-secondary);font-size:12px}.billing-table-wrap{overflow-x:auto}.billing-table{border-collapse:collapse;font-size:13px;width:100%}.billing-table th{background:var(--bg-hover);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;padding:10px 16px;text-align:left;text-transform:uppercase}.billing-table td{border-top:1px solid var(--border-color);padding:12px 16px;vertical-align:middle}.billing-table tr:hover td{background:var(--bg-hover)}.billing-table .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.billing-table th.num{text-align:right}.billing-company-name{font-weight:600}.billing-company-sub{color:var(--text-secondary);font-size:11.5px;margin-top:2px}.billing-freq-select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:12.5px;font-weight:500;padding:5px 8px}.billing-freq-select:disabled{cursor:not-allowed;opacity:.5}.billing-freq-badge{background:#f5a6231f;border-radius:6px;color:#b36200;display:inline-block;font-size:11px;margin-left:8px;padding:2px 7px;white-space:nowrap}.dark-mode .billing-freq-badge{color:#ffb74d}.billing-inv-filters{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px}.billing-search-wrap{flex:1 1;min-width:200px;position:relative}.billing-search-icon{color:var(--text-muted);font-size:12px;left:12px;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.billing-search-input{color:var(--text-primary);font-size:12.5px;padding:6px 12px 6px 32px;width:100%}.billing-chip,.billing-search-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:18px}.billing-chip{color:var(--text-secondary);cursor:pointer;font-size:12px;padding:5px 11px}.billing-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.billing-company-filter{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:12.5px;padding:5px 10px}.billing-empty{align-items:center;color:var(--text-secondary);font-size:13px;gap:10px;padding:40px 16px}.billing-empty,.billing-invoice-list{display:flex;flex-direction:column}.billing-invoice{border-top:1px solid var(--border-color)}.billing-invoice:first-child{border-top:0}.billing-invoice-row{align-items:center;cursor:pointer;display:flex;gap:12px;padding:12px 16px;transition:background-color .15s}.billing-invoice-row:hover{background:var(--bg-hover)}.billing-invoice-main{flex:1 1;min-width:0}.billing-invoice-head{align-items:center;display:flex;gap:10px}.billing-invoice-num{font-feature-settings:"tnum";font-size:13px;font-variant-numeric:tabular-nums;font-weight:600}.billing-invoice-meta{color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:12px;gap:10px;margin-top:3px}.billing-invoice-period{color:var(--text-muted)}.billing-invoice-freq{background:var(--bg-input);border-radius:5px;color:var(--text-secondary);font-size:10.5px;padding:1px 6px}.billing-invoice-actions{align-items:center;display:flex;gap:10px}.billing-invoice-total{font-feature-settings:"tnum";font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}.billing-paid-btn{align-items:center;background:#34c7591a;border:1px solid #34c7594d;border-radius:8px;color:#248a3d;cursor:pointer;display:inline-flex;font-size:11.5px;font-weight:500;gap:5px;padding:4px 10px}.billing-paid-btn:hover{background:#34c75933}.dark-mode .billing-paid-btn{color:#81c784}.billing-pdf-btn{align-items:center;background:var(--bg-hover);border-radius:8px;color:var(--text-secondary);display:inline-flex;height:32px;justify-content:center;text-decoration:none;width:32px}.billing-pdf-btn:hover{background:var(--accent);color:#fff}.billing-chevron{color:var(--text-muted);transition:transform .2s}.billing-chevron.rotated{transform:rotate(180deg)}.billing-invoice-expanded{background:var(--bg-hover);border-top:1px solid var(--border-color);padding:0 16px 16px}.billing-lineitems{border-collapse:collapse;font-size:12.5px;margin-top:12px;width:100%}.billing-lineitems td,.billing-lineitems th{border-bottom:1px solid var(--border-color);padding:8px 12px}.billing-lineitems th{color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.04em;text-align:left;text-transform:uppercase}.billing-lineitems .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.billing-lineitems th.num{text-align:right}.billing-lineitems tfoot td{border-bottom:0;padding-top:10px}.billing-download-pdf{align-items:center;background:var(--accent);border-radius:8px;color:#fff;display:inline-flex;font-size:12.5px;font-weight:500;gap:6px;margin-top:12px;padding:6px 12px;text-decoration:none}.billing-download-pdf:hover{background:var(--accent-hover)}.billing-pill{align-items:center;border-radius:20px;display:inline-flex;font-size:11.5px;font-weight:500;gap:5px;padding:3px 9px}.billing-pill-dot{border-radius:50%;height:6px;width:6px}.billing-pill.paid{background:#34c7591f;color:#248a3d}.billing-pill.paid .billing-pill-dot{background:var(--success)}.billing-pill.unpaid{background:#f5a6231f;color:#b36200}.billing-pill.unpaid .billing-pill-dot{background:var(--warning)}.dark-mode .billing-pill.paid{color:#81c784}.dark-mode .billing-pill.unpaid{color:#ffb74d}.billing-pagination{align-items:center;border-top:1px solid var(--border-color);display:flex;gap:14px;justify-content:center;padding:14px 16px}.billing-page-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:12.5px;gap:6px;padding:6px 12px}.billing-page-btn:hover:not(:disabled){background:var(--bg-hover)}.billing-page-btn:disabled{cursor:not-allowed;opacity:.4}.billing-page-info{color:var(--text-secondary);font-size:12.5px}.billing-modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.billing-modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 20px 50px #00000040;max-width:480px;padding:24px;position:relative;width:100%}.billing-modal-close{align-items:center;background:#0000;border:0;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;height:32px;justify-content:center;position:absolute;right:12px;top:12px;width:32px}.billing-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.billing-modal-title{font-size:17px;font-weight:600;margin:0 0 12px;padding-right:32px}.billing-modal-body{color:var(--text-secondary);font-size:13.5px;line-height:1.5;margin:0 0 8px}.billing-modal-body b{color:var(--text-primary)}.billing-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.billing-modal-cancel,.billing-modal-confirm{border:1px solid var(--border-color);border-radius:8px;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px}.billing-modal-cancel{background:var(--bg-card);color:var(--text-primary)}.billing-modal-cancel:hover{background:var(--bg-hover)}.billing-modal-confirm{background:var(--accent);border-color:var(--accent);color:#fff}.billing-modal-confirm:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.bl-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:inline-block;overflow:hidden;position:relative}.bl-skeleton-block:after{animation:bl-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes bl-skeleton-shimmer{to{transform:translateX(100%)}}.bl-skeleton-title{height:28px;margin-bottom:10px;width:140px}.bl-skeleton-subtitle{height:14px;width:280px}.bl-skeleton-banner{border-radius:10px;display:block;height:44px;width:100%}.bl-skeleton-kpi-label{height:12px;margin-bottom:12px;width:120px}.bl-skeleton-kpi-value{height:24px;margin-bottom:10px;width:80px}.bl-skeleton-kpi-sub{height:11px;width:100px}.bl-skeleton-section-title{height:16px;margin-bottom:8px;width:130px}.bl-skeleton-section-sub{height:12px;width:220px}.bl-skeleton-inv-num{display:block;height:15px;margin-bottom:8px;width:120px}.bl-skeleton-inv-meta{display:block;height:12px;width:200px}.bl-skeleton-inv-total{height:18px;width:70px}.dark-mode .bl-skeleton-block{background:#ffffff14}.dark-mode .bl-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.bl-skeleton-block:after{animation:none}}.settings-page{margin:0 auto;max-width:800px}.settings-content{padding:0}.settings-row{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:16px 22px}.settings-row:last-child{border-bottom:none}.settings-row.clickable{cursor:pointer;transition:background-color .2s ease}.settings-row.clickable:hover{background:var(--bg-hover)}.settings-label{color:var(--text-primary);font-size:14px;font-weight:500;margin-bottom:2px}.settings-description{color:var(--text-secondary);font-size:12px}.settings-value{color:var(--text-secondary);font-size:14px;text-align:right}.settings-value.editable{align-items:center;border-radius:6px;cursor:pointer;display:inline-flex;gap:8px;margin:-4px -8px;padding:4px 8px;transition:background-color .2s ease}.settings-value.editable:hover{background:var(--bg-hover)}.edit-name-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;padding:4px}.edit-name-btn:hover{color:var(--accent)}.settings-edit-field{align-items:center;display:flex;gap:6px}.settings-edit-field input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;min-width:200px;padding:6px 10px}.settings-edit-field input:focus{border-color:var(--accent);outline:none}.edit-action{align-items:center;background:none;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:6px 8px;transition:all .15s ease}.edit-action.save:hover{background:var(--accent);border-color:var(--accent);color:#fff}.edit-action.cancel:hover{background:var(--bg-hover);color:var(--danger)}.edit-action:disabled{cursor:not-allowed;opacity:.5}.role-badge{background:var(--bg-input);border-radius:6px;color:var(--text-primary);display:inline-block;font-size:12px;font-weight:500;padding:4px 10px;text-transform:capitalize}.settings-toggle{background:var(--bg-input);border:1px solid var(--border-color);border-radius:12px;flex-shrink:0;height:24px;position:relative;transition:background-color .3s ease;width:44px}.settings-toggle.active{background:var(--accent);border-color:var(--accent)}.settings-toggle .toggle-knob{background:var(--bg-card);border-radius:50%;box-shadow:0 1px 3px #0003;height:18px;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:18px}.settings-toggle.active .toggle-knob{transform:translateX(20px)}.settings-toggle.toggle-disabled{cursor:default;opacity:.75}.theme-options{display:flex;gap:8px}.theme-option{align-items:center;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:13px;gap:6px;padding:8px 14px;transition:all .2s ease}.theme-option:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-option.active{background:var(--accent);border-color:var(--accent);color:#fff}.theme-option svg{height:14px;width:14px}.settings-page .section-title{align-items:center;display:flex;gap:10px}.danger-card{border-color:#ff3b3033}.danger-card .settings-label{color:var(--danger)}.section-card.section-card--collapsible{overflow:visible}.section-header--toggle{cursor:pointer;position:relative;-webkit-user-select:none;user-select:none}.section-header--toggle:hover{background:var(--bg-hover)}.section-header--toggle{border-radius:14px 14px 0 0}.section-header--toggle[aria-expanded=false]{border-bottom:none;border-radius:14px}.section-header--toggle:focus-visible{outline:2px solid #f0b400;outline:2px solid var(--accent,#f0b400);outline-offset:-2px}.section-chevron{color:var(--text-muted);flex:0 0 auto;transition:transform .2s ease}.section-chevron.is-open{transform:rotate(180deg)}.settings-info{align-items:center;color:var(--text-muted);cursor:default;display:inline-flex;margin-left:6px}.settings-info svg{height:13px;width:13px}.settings-info:focus{color:var(--text-primary);outline:none}.settings-info-tooltip{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000001f;color:var(--text-secondary);display:none;font-size:12px;font-weight:400;left:22px;line-height:1.4;max-width:min(300px,calc(100vw - 48px));padding:10px 12px;position:absolute;top:calc(100% + 8px);white-space:normal;width:-webkit-max-content;width:max-content;z-index:10}.settings-info:focus .settings-info-tooltip,.settings-info:focus-within .settings-info-tooltip,.settings-info:hover .settings-info-tooltip{display:block}.common-notes-empty{color:var(--text-muted);font-size:13px;padding:14px 22px 4px}.common-notes-chips{display:flex;flex-wrap:wrap;gap:7px;padding:16px 22px 4px}.common-notes-chip{align-items:center;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;display:inline-flex;gap:4px;line-height:1.3;padding:3px 5px 3px 10px}.common-notes-text{color:var(--text-primary);font-size:13.5px}.common-notes-remove{align-items:center;background:#0000;border:none;border-radius:50%;color:var(--text-muted);cursor:pointer;display:inline-flex;flex:none;height:18px;justify-content:center;min-height:0;min-width:0;padding:0;transition:background-color .15s ease,color .15s ease;width:18px}.common-notes-remove svg{display:block;height:11px;width:11px}.common-notes-remove:hover{background:#ff3b3024;color:var(--danger)}.common-notes-add{display:flex;gap:10px;padding:14px 22px 18px}.common-notes-add input{background:var(--bg-card);background:var(--bg-input,var(--bg-card));border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:14px;padding:10px 12px}.common-notes-add input:focus{border-color:#f0b400;border-color:var(--accent,#f0b400);outline:none}.common-notes-add-btn{align-items:center;background:var(--bg-hover);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:14px;gap:6px;padding:10px 16px;white-space:nowrap}.common-notes-add-btn:disabled{cursor:not-allowed;opacity:.5}.demo-subhead{color:var(--text-primary);font-size:13px;font-weight:600;padding:14px 22px 0}.demo-fullapp{border-top:1px solid var(--border-color);margin-top:12px}.demo-hint{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0;padding:16px 22px 4px}.demo-cred-card{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:12px;margin:4px 22px 8px;padding:10px 14px}.demo-cred-title{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:6px}.demo-cred-meta{color:var(--text-secondary);font-weight:400}.demo-login{border-top:1px solid var(--border-color);padding:6px 0}.demo-login:first-of-type{border-top:none}.demo-login-role{color:var(--text-secondary);font-size:12px;margin-bottom:4px;text-transform:capitalize}.demo-cred-line{align-items:center;display:flex;gap:8px}.demo-cred-line+.demo-cred-line{margin-top:4px}.demo-cred-text{color:var(--text-primary);flex:1 1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-copy-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:12px;gap:5px;height:28px;min-height:0;min-width:0;padding:0 10px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.demo-copy-btn:hover{color:var(--text-primary)}.demo-copy-btn.is-copied{background:#2f8f4e1f;background:var(--success-bg,#2f8f4e1f);border-color:#2f8f4e;border-color:var(--success,#2f8f4e);color:#2f8f4e;color:var(--success,#2f8f4e)}.demo-cred-counts{color:var(--text-secondary);font-size:12px;margin-top:8px}.demo-cred-actions{display:flex;gap:8px;margin-top:10px}@media (max-width:768px){.settings-row{align-items:flex-start;flex-direction:column;gap:12px}.settings-value{text-align:left}.settings-row button{justify-content:center;width:100%}.theme-options{width:100%}.theme-option{flex:1 1;justify-content:center}}.app-shell-skeleton{pointer-events:none;-webkit-user-select:none;user-select:none}.ass-block{background:var(--border-color);border-radius:6px;display:inline-block;flex-shrink:0;overflow:hidden;position:relative}.ass-block:after{animation:ass-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#fff0,#ffffff73 50%,#fff0);content:"";inset:0;position:absolute;transform:translateX(-100%)}.dark-mode .ass-block:after{background:linear-gradient(90deg,#fff0,#ffffff14 50%,#fff0)}@keyframes ass-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.ass-block:after{animation:none}}.ass-logo{height:22px;width:96px}.ass-nav-icon{border-radius:5px;height:18px;width:18px}.ass-nav-label{height:12px}.ass-avatar{border-radius:50%;height:36px;width:36px}.app-shell-skeleton .user-info{display:flex;flex-direction:column;gap:6px}.ass-user-name{height:12px;width:90px}.ass-user-email{height:10px;width:120px}.ass-header{display:flex;flex-direction:column;gap:10px;margin-bottom:32px}.ass-title{height:28px;width:240px}.ass-subtitle{height:14px;width:180px}.ass-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:28px}.ass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;gap:12px;padding:20px}.ass-card-icon{border-radius:10px;height:40px;width:40px}.ass-card-value{height:24px;width:60px}.ass-card-label{height:12px;width:90px}.ass-panel{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;display:flex;flex-direction:column;gap:18px;padding:24px}.ass-panel-title{height:18px;margin-bottom:4px;width:160px}.ass-row{align-items:center;display:flex;gap:14px}.ass-row-icon{border-radius:8px;height:36px;width:36px}.ass-row-lines{display:flex;flex:1 1;flex-direction:column;gap:8px}.ass-row-line{height:14px;width:40%}.ass-row-sub{height:11px;width:60%}.ass-row-tail{border-radius:8px;height:32px;width:72px}@media (max-width:768px){.ass-cards{grid-template-columns:1fr 1fr}.ass-title{width:180px}}.auth-form-container{align-items:center;background:var(--bg-primary);display:flex;justify-content:center;min-height:100dvh;padding:20px}.auth-form-wrapper{animation:slideIn .3s ease-out;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 4px 24px #00000014;max-width:400px;padding:40px;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dark-mode .auth-form-wrapper{box-shadow:0 4px 24px #0000004d}.auth-form-wrapper h2{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 8px;text-align:center}.auth-form-wrapper .subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:32px;text-align:center}.form-group{margin-bottom:20px}.form-group label{color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin-bottom:8px}.form-group input,.form-group select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;box-sizing:border-box;color:var(--text-primary);font-family:inherit;font-size:14px;outline:none;padding:12px 16px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a}.form-group input::placeholder{color:var(--text-muted)}.error{background:#ff3b301a;border:1px solid #ff3b3033;border-radius:10px;color:var(--danger)}.error,.success{font-size:13px;margin-bottom:20px;padding:12px 16px;text-align:center}.success{background:#34c7591a;border:1px solid #34c75933;border-radius:10px;color:var(--success)}.invite-notice{background:#0071e31a;border:1px solid #0071e333;border-radius:10px;color:var(--accent);font-size:13px;margin-bottom:20px;padding:12px 16px;text-align:center}.invite-notice strong{display:block;margin-bottom:4px}.auth-form-wrapper .btn-primary{margin-bottom:0;margin-top:8px}.auth-form-wrapper .btn-primary,.auth-form-wrapper .btn-secondary{font-size:15px;justify-content:center;padding:14px 20px;width:100%}.auth-form-wrapper .btn-secondary{margin-top:12px}.forgot-password-link{margin-top:16px;text-align:center}.link-button{background:none;border:none;color:var(--accent);cursor:pointer;font-family:inherit;font-size:13px;padding:0;text-decoration:none;transition:color .2s ease}.link-button:hover{color:var(--accent-hover);text-decoration:underline}.signup-link{border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:13px;margin-top:24px;padding-top:24px;text-align:center}.signup-link a{color:var(--accent);font-weight:500;text-decoration:none}.signup-link a:hover{color:var(--accent-hover);text-decoration:underline}.role-selection{margin-bottom:20px}.role-buttons{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr;margin-top:10px}.role-button{background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:14px;text-align:center;transition:all .2s ease}.role-button.selected{background:#0071e31a;border-color:var(--accent);color:var(--accent)}.dark-mode .role-button.selected{background:#0a84ff26}.role-button:hover{border-color:var(--border-hover)}.role-description{color:var(--text-secondary);font-size:12px;margin-top:8px;text-align:center}.auth-logo{margin-bottom:32px;text-align:center}.auth-logo h1{color:var(--text-primary);font-size:28px;font-weight:700;letter-spacing:-.5px;margin:0}.auth-logo span{color:var(--accent)}@media (max-width:480px){.auth-form-wrapper{border:none;border-radius:0;box-shadow:none;display:flex;flex-direction:column;justify-content:center;max-width:none;min-height:100dvh;padding:32px 24px}.auth-form-container{padding:0}.form-group input{font-size:16px}.role-buttons{grid-template-columns:1fr}}.password-input-wrapper{position:relative}.password-input-wrapper input{padding-right:44px}.password-toggle{align-items:center;background:none;border:none;color:var(--text-muted);cursor:pointer;display:flex;font-size:15px;padding:4px;position:absolute;right:12px;top:50%;transform:translateY(-50%);transition:color .2s ease}.password-toggle:hover{color:var(--text-primary)}.rp-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:6px;display:block;overflow:hidden;position:relative}.rp-skeleton-block:after{animation:rp-skeleton-shimmer 1.4s ease-in-out infinite;background:linear-gradient(90deg,#e5e7eb00,#fff9 50%,#e5e7eb00);content:"";inset:0;position:absolute;transform:translateX(-100%)}@keyframes rp-skeleton-shimmer{to{transform:translateX(100%)}}.rp-skeleton-heading{height:24px;margin-bottom:20px;width:180px}.rp-skeleton-subtitle{height:14px;margin-bottom:24px;max-width:260px;width:100%}.rp-skeleton-label{height:13px;margin-bottom:8px;width:110px}.rp-skeleton-button,.rp-skeleton-input{border-radius:8px;height:44px;width:100%}.rp-skeleton-button{margin-top:4px}.dark-mode .rp-skeleton-block{background:#ffffff14}.dark-mode .rp-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}@media (prefers-reduced-motion:reduce){.rp-skeleton-block:after{animation:none}}