@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}.route-kind-pill{align-items:center;background:#2563eb1f;border:1px solid #2563eb66;border-radius:999px;color:#2563eb;display:inline-flex;flex:none;font-size:10.5px;font-weight:600;letter-spacing:.01em;padding:1px 7px}.dark-mode .route-kind-pill{background:#60a5fa29;border-color:#60a5fa73;color:#93c5fd}.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-x:hidden;overflow-y:auto;padding:24px 0 12px;position:fixed;transition:background-color .3s ease,border-color .3s ease,transform .3s ease,width .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}.logo span{color:var(--accent)}.nav-menu{display:flex;flex:1 1;flex-direction:column}.nav-item{align-items:center;border-left:3px solid #0000;box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:400;gap:12px;min-height:45px;padding:12px 24px;text-decoration:none;transition:color .2s ease,background-color .2s ease,border-left-color .2s ease;white-space:nowrap}.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;transition:padding .3s ease}.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(.auth-form-container){padding:0}.main-content:has(.map-container){height:100vh;height:100dvh;overflow:hidden}body:has(.map-container){overflow:hidden;overscroll-behavior:none}.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}.sidebar-collapse-btn{align-items:center;background:#0000;border:none;border-top:1px solid var(--border-color);box-sizing:border-box;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:12px;min-height:46px;padding:12px 24px;transition:color .2s ease,background-color .2s ease,padding .3s ease;white-space:nowrap;width:100%}.sidebar-collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-collapse-btn+.user-profile{border-top:none;margin-top:0}.sidebar-collapse-btn svg{flex-shrink:0;height:16px;width:16px}@media (min-width:769px){.sidebar.collapsed{width:72px}.sidebar-collapse-btn{padding-left:27.5px}.user-profile{padding-left:18px}.sidebar.collapsed .logo{overflow:hidden;padding-left:0;padding-right:0;visibility:hidden}.sidebar.collapsed .nav-item,.sidebar.collapsed .sidebar-collapse-btn{font-size:0;gap:0;padding-right:0}.sidebar.collapsed .sidebar-collapse-label,.sidebar.collapsed .user-info{display:none}.sidebar.collapsed .user-profile{gap:0;padding-right:0}.sidebar.collapsed .logout-btn{display:none}.main-content.sidebar-collapsed{margin-left:72px}}.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}.content-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr}.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-collapse-btn{display:none}.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{--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:calc(100dvh - 12px);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-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;overscroll-behavior:contain;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-attr--badged{color:#111827;color:var(--text-primary,#111827);font-size:13.5px;line-height:1.45;margin-top:6px}.bottom-sheet-attr-badge{align-items:center;background:#f5a62329;border-radius:5px;color:#8a5b10;display:inline-flex;font-size:11px;font-weight:600;letter-spacing:.04em;margin-right:6px;padding:1px 6px;text-transform:uppercase;vertical-align:1px}.dark-mode .bottom-sheet-attr-badge{color:#f0c976}.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-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{border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb)}.bottom-sheet-btn.note-btn,.bottom-sheet-btn.shortcut-btn{background:#f3f4f6;background:var(--bg-input,#f3f4f6);color:#111827;color:var(--text-primary,#111827)}.bottom-sheet-btn.shortcut-btn{border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:12px;font-size:15px;height:52px}.bottom-sheet-btn.shortcut-btn svg{height:17px;width:17px}.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}.bottom-sheet-common-note.bottom-sheet-route-note,.bottom-sheet-common-note.bottom-sheet-route-note:nth-child(2n),.bottom-sheet-common-note.bottom-sheet-route-note:nth-child(odd){align-items:center;background:#2563eb1a;border-color:#2563eb73;color:#111827;color:var(--text-primary,#111827);display:inline-flex;font-weight:500;gap:8px}.bottom-sheet-common-note.bottom-sheet-route-note:hover{background:#2563eb2b;border-color:#2563ebb3}.bottom-sheet-common-note.bottom-sheet-route-note.is-picked,.bottom-sheet-common-note.bottom-sheet-route-note.is-picked:hover{background:#0071e3;background:var(--accent,#0071e3);border-color:#0071e3;border-color:var(--accent,#0071e3);color:#fff}.bottom-sheet-common-note.bottom-sheet-route-note.is-picked svg{color:#fff}.bottom-sheet-common-note.bottom-sheet-route-note svg{color:#2563eb;flex:none;height:13px;width:13px}.bottom-sheet-route-confirm{background:#2563eb14;border:1px solid #2563eb66;border-radius:12px;margin-bottom:4px;padding:14px 15px}.bottom-sheet-route-confirm-title{align-items:flex-start;color:#111827;color:var(--text-primary,#111827);display:flex;font-size:15px;font-weight:600;gap:8px;line-height:1.4}.bottom-sheet-route-confirm-title svg{color:#2563eb;flex:none;height:14px;margin-top:3px;width:14px}.bottom-sheet-route-confirm-body{color:#4b5563;color:var(--text-secondary,#4b5563);font-size:13.5px;line-height:1.45;margin:8px 0 0}.bottom-sheet-route-confirm-suppress{align-items:center;color:#4b5563;color:var(--text-secondary,#4b5563);cursor:pointer;display:flex;font-size:13px;gap:8px;margin-top:12px}.bottom-sheet-route-confirm-suppress input{accent-color:#2563eb;flex:none;height:16px;margin:0;width:16px}.bottom-sheet-route-confirm.bottom-sheet-route-blocked{background:#b4530917;border-color:#b4530966}.bottom-sheet-route-blocked .bottom-sheet-route-confirm-title svg{color:#b45309}.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}}.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}.demo-form{align-items:flex-end;display:flex;flex-wrap:wrap;gap:12px;padding:12px 22px 18px}.demo-field{display:flex;flex:1 1 200px;flex-direction:column;gap:6px;min-width:0}.demo-field--narrow{flex:0 1 130px}.demo-field label{color:var(--text-secondary);font-size:12px;font-weight:600}.demo-field input,.demo-field select{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:14px;height:38px;min-height:0;padding:0 12px}.demo-field select{appearance:none;-webkit-appearance:none;padding-right:28px}.demo-field input:focus,.demo-field select:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);outline:none}.demo-submit{align-items:center;background:#3b82f6;background:var(--primary-color,#3b82f6);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:14px;font-weight:600;gap:8px;height:38px;justify-content:center;min-height:0;padding:0 16px}.demo-submit:disabled{cursor:not-allowed;opacity:.5}.demo-empty{color:var(--text-secondary);font-size:13px;margin:0;padding:0 22px 18px}.admin-dashboard{margin:0 auto;max-width:1100px;padding:24px 16px 48px}.admin-dashboard h1{color:var(--text-primary);font-size:24px;margin:0 0 6px}.admin-dashboard h2{color:var(--text-primary);font-size:16px;margin:28px 0 12px}.admin-clients{display:flex;flex-direction:column;gap:8px}.admin-client{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.admin-client-head{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;gap:10px;min-height:0;padding:12px 14px;text-align:left;width:100%}.admin-client-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s ease}.admin-client.is-open .admin-client-chevron{transform:rotate(90deg)}.admin-client-name{color:var(--text-primary);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-client-meta{color:var(--text-muted);flex-shrink:0;font-size:12.5px;margin-left:auto}.admin-client-body{padding:4px 14px 14px}.admin-client-row{color:var(--text-secondary);display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:3px 0}.admin-client-row span:last-child{color:var(--text-primary)}.admin-client-toggle-row{align-items:center;border-top:1px solid var(--border-color);margin-top:8px;padding-top:10px}.admin-client-actions{display:inline-flex;flex-shrink:0;gap:8px}.admin-view-as{border-radius:8px;font-size:13px;height:32px;min-height:0;padding:0 12px}.admin-view-as svg{height:13px;width:13px}.admin-client-toggle-row+.admin-client-toggle-row{margin-top:4px;padding-top:8px}.admin-client-hint{color:var(--text-muted);display:block;font-size:11.5px;line-height:1.4;margin-top:2px;max-width:30ch}.admin-switch{background:var(--border-hover);border:none;border-radius:13px;cursor:pointer;flex-shrink:0;height:25px;min-height:0;padding:0;position:relative;transition:background .2s ease;width:42px}.admin-switch.on{background:var(--success)}.admin-switch:disabled{cursor:not-allowed;opacity:.5}.admin-switch-knob{background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000004d;height:19px;left:3px;position:absolute;top:3px;transition:transform .2s ease;width:19px}.admin-switch.on .admin-switch-knob{transform:translateX(17px)}.admin-denied{color:var(--text-secondary);padding:48px 24px;text-align:center}@media (max-width:768px){.demo-form{align-items:stretch;flex-direction:column}.demo-submit{width:100%}}.demo-tenant{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;margin:0 22px 6px;overflow:hidden}.demo-tenant-head{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:10px;height:40px;min-height:0;padding:0 12px;text-align:left;width:100%}.demo-tenant-head:hover{background:var(--bg-hover)}.demo-tenant-chevron{color:var(--text-secondary);flex-shrink:0;font-size:11px;transition:transform .15s ease}.demo-tenant.is-open .demo-tenant-chevron{transform:rotate(90deg)}.demo-tenant-name{font-weight:600}.demo-tenant-meta,.demo-tenant-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-tenant-meta{color:var(--text-secondary);flex-shrink:1;font-size:12px;margin-left:auto;min-width:0}.demo-tenant-body{border-top:1px solid var(--border-color);padding:4px 12px 10px}.demo-tenant-counts{color:var(--text-secondary);font-size:12px;padding:6px 2px}.demo-login-list{list-style:none;margin:0;padding:0}.demo-login-row{grid-gap:10px;align-items:center;border-top:1px solid var(--border-color);display:grid;gap:10px;grid-template-columns:minmax(90px,1.1fr) minmax(0,2.2fr) minmax(0,.8fr) auto;padding:5px 2px}.demo-login-row:first-child{border-top:none}.demo-login-who{color:var(--text-secondary)}.demo-login-email,.demo-login-pass,.demo-login-who{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-login-email,.demo-login-pass{color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.demo-login-pass{color:var(--text-secondary)}.demo-login-copies{display:flex;gap:4px}.demo-icon-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:11px;height:26px;justify-content:center;min-height:0;min-width:0;padding:0;transition:color .15s ease,border-color .15s ease;width:26px}.demo-icon-btn:hover{color:var(--text-primary)}.demo-icon-btn.is-copied{border-color:#2f8f4e;border-color:var(--success,#2f8f4e);color:#2f8f4e;color:var(--success,#2f8f4e)}.demo-tenant-actions{display:flex;gap:8px;padding-top:8px}.demo-text-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;font-size:12px;gap:6px;height:28px;min-height:0;min-width:0;padding:0 10px}.demo-text-btn:hover{color:var(--text-primary)}.demo-text-btn.is-danger:hover{border-color:#d14343;border-color:var(--danger,#d14343);color:#d14343;color:var(--danger,#d14343)}.demo-text-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:720px){.demo-login-row{gap:2px 10px;grid-template-areas:"who copies" "email copies" "pass copies";grid-template-columns:minmax(0,1fr) auto}.demo-login-who{grid-area:who}.demo-login-email{grid-area:email}.demo-login-pass{grid-area:pass}.demo-login-copies{align-self:center;grid-area:copies}}.tenant-switch{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-top:20px;padding:14px 16px}.tenant-switch-current{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:8px;min-width:0}.tenant-switch-id{background:var(--bg-card);border:1px solid var(--border-color);border-radius:999px;color:var(--text-primary);font-size:13px;font-weight:600;overflow:hidden;padding:4px 10px;text-overflow:ellipsis;white-space:nowrap}.tenant-switch-actions{display:flex;flex-wrap:wrap;gap:8px}.tenant-switch-actions .demo-submit--secondary{background:#0000;border:1px solid var(--border-color);color:var(--text-primary)}@media (max-width:640px){.tenant-switch{align-items:stretch;flex-direction:column}.tenant-switch-actions .demo-submit{flex:1 1}}.prod-archive-toggle{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:13px;gap:8px;height:38px;min-height:0;white-space:nowrap}.prod-archive-toggle input{accent-color:#3b82f6;accent-color:var(--primary-color,#3b82f6);height:16px;margin:0;min-height:0;width:16px}.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-rose:#a83a63;--pp-rose-wash:#fbecf2;--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-rose:#f0a2c0;--pp-rose-wash:#351d28;--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-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.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-avatar.homeowner{background:var(--pp-rose-wash);border-radius:10px;color:var(--pp-rose)}.pp-avatar.homeowner svg{height:18px;width:18px}.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-badge.homeowner{background:var(--pp-rose-wash);color:var(--pp-rose)}.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}.mso-overlay{background-color:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column;inset:0;position:fixed;z-index:400}.mso-topbar{align-items:center;background-color:var(--bg-card);border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px}.mso-title{display:flex;flex-direction:column;line-height:1.15;margin-right:auto;min-width:0}.mso-title strong{font-size:14px;font-weight:600}.mso-count{color:var(--text-secondary);font-size:12px;white-space:nowrap}.mso-close,.mso-seg-btn,.mso-toggle{align-items:center;background-color:var(--bg-input);border:1px solid var(--border-color);border-radius:9px;box-sizing:border-box;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:34px;justify-content:center;min-height:0;min-width:0;padding:0 12px;transition:border-color .15s ease,background-color .15s ease;white-space:nowrap}.mso-close{padding:0;width:34px}.mso-close:hover,.mso-seg-btn:hover,.mso-toggle:hover{border-color:var(--accent)}.mso-seg{display:inline-flex;gap:4px}.mso-seg-btn.on,.mso-toggle.on{background-color:var(--accent);border-color:var(--accent);color:#fff}.mso-map-wrap{flex:1 1;min-height:0;position:relative}.mso-draw,.mso-map{inset:0;position:absolute}.mso-draw{height:100%;touch-action:none;width:100%;z-index:1}.mso-draw.draw{cursor:crosshair}.mso-draw.pan{pointer-events:none}.mso-shape{fill:#0a84ff26;stroke:#0a84ff;stroke-width:1.5;stroke-dasharray:5 3}.mso-hint{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;box-shadow:0 4px 16px #0000001f;color:var(--text-secondary);font-size:12px;left:12px;max-width:calc(100% - 70px);padding:6px 12px;pointer-events:none;position:absolute;text-align:left;top:12px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.mso-hint-unmapped{color:var(--warning);display:block}.mso-map-failed{align-items:center;background-color:var(--bg-primary);color:var(--text-secondary);display:flex;inset:0;justify-content:center;padding:24px;position:absolute;text-align:center}@media (max-width:600px){.mso-seg-label{display:none}.mso-seg-btn,.mso-toggle{padding:0;width:38px}.mso-topbar{gap:6px;padding:8px 10px}.mso-hint-kbd{display:none}}@media (min-width:900px){.mso-close,.mso-seg-btn,.mso-toggle{font-size:12px;height:30px;padding:0 10px}.mso-close{padding:0;width:30px}}.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:disabled{cursor:not-allowed;opacity:.5}.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-hint{color:var(--text-secondary);font-size:12px;line-height:1.45;margin:6px 0 0}.drawer-field-hint-warn{color:var(--warning)}.drawer-inline-btn{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:500;gap:8px;margin-top:10px;padding:8px 14px;transition:background .15s ease,border-color .15s ease}.drawer-inline-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.drawer-inline-btn:disabled{cursor:not-allowed;opacity:.5}.drawer-inline-btn svg{color:var(--text-secondary);height:13px;width:13px}.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{align-items:center;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-saved-note{color:var(--success);font-size:13px;font-weight:500;white-space:nowrap}.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-points{color:var(--text-muted);font-size:12px;line-height:1.6;list-style:disc;margin:0 auto 16px;max-width:340px;padding-left:18px;text-align:left}.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}.map-select-label{display:none}.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}}.upload-modal-wide{max-width:640px}.csv-map{display:flex;flex-direction:column;gap:14px}.csv-map-file{align-items:center;display:flex;gap:12px}.csv-map-file-icon{background:var(--bg-hover);border-radius:8px;color:var(--accent);flex-shrink:0;height:32px;padding:6px;width:32px}.csv-map-filename{color:var(--text-primary);font-size:14px;font-weight:500}.csv-map-filemeta{color:var(--text-secondary);font-size:12px}.csv-map-change-file{color:var(--accent);cursor:pointer;font-size:12px;font-weight:500;margin-left:auto}.csv-map-change-file:hover{text-decoration:underline}.csv-map-intro{color:var(--text-secondary);font-size:13px;line-height:1.5;margin:0}.csv-map-list{border:1px solid var(--border-color);border-radius:10px;display:flex;flex-direction:column;max-height:46vh;overflow-y:auto}.csv-map-row{align-items:flex-start;border-bottom:1px solid var(--border-color);display:flex;gap:16px;justify-content:space-between;padding:12px 14px}.csv-map-row:last-child{border-bottom:none}.csv-map-field{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.csv-map-label{align-items:center;color:var(--text-primary);display:flex;font-size:13px;font-weight:600;gap:8px}.csv-map-required{background:#0071e31a;border-radius:4px;color:var(--accent);font-size:10px;font-weight:600;letter-spacing:.03em;padding:2px 6px;text-transform:uppercase}.csv-map-rule{color:var(--text-muted);font-size:12px;line-height:1.45}.csv-map-pick{align-items:flex-end;display:flex;flex-direction:column;flex-shrink:0;gap:4px;width:190px}.csv-map-select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:var(--text-primary);cursor:pointer;font-size:13px;height:34px;min-height:0;padding:0 8px;width:100%}.csv-map-select:focus{border-color:var(--accent);outline:none}.csv-map-sample{color:var(--text-muted);font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.csv-map-ignored{color:var(--text-muted);font-size:12px;line-height:1.5;margin:0}.csv-map-conflict{background-color:var(--bg-input);border:1px solid var(--warning);border-radius:8px;margin-top:12px;padding:12px}.csv-map-conflict-text{color:var(--text-secondary);font-size:12px;line-height:1.5;margin:0 0 8px}.csv-map-conflict-pick{max-width:320px}.csv-map-conflict-pick button.on{color:var(--text-primary)}@media screen and (max-width:600px){.csv-map-row{flex-direction:column;gap:8px}.csv-map-pick{align-items:stretch;width:100%}.csv-map-sample{text-align:left}}.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}}.photo-preview-overlay{align-items:center;background:#000000e6;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:9999}.photo-preview-content{max-height:90vh;max-width:90vw;position:relative}.photo-preview-img{border-radius:8px;display:block;max-height:90vh;max-width:100%;object-fit:contain;transition:filter .3s ease}.photo-preview-img.is-preview{filter:blur(8px)}.photo-preview-close{align-items:center;background:#fff;border:none;border-radius:50%;color:#1d1d1f;cursor:pointer;display:flex;font-size:22px;height:36px;justify-content:center;line-height:1;position:absolute;right:0;top:-46px;transition:background .2s ease,color .2s ease;width:36px}.photo-preview-close:hover{background:#ef4444;background:var(--danger,#ef4444);color:#fff}.photo-preview-download{align-items:center;background:#0000008c;border:1px solid #ffffff40;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:15px;height:40px;justify-content:center;padding:0;position:absolute;right:10px;top:10px;transition:background .2s ease,border-color .2s ease;width:40px;z-index:2}.photo-preview-download:hover{background:#000000bf;border-color:#fff}.photo-preview-close:focus-visible,.photo-preview-download:focus-visible{outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:2px}@media (max-width:640px){.photo-preview-close{right:8px;top:8px}.photo-preview-download{right:52px;top:8px}}@media (prefers-reduced-motion:reduce){.photo-preview-img{transition:none}}.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}.filter-chip.ws-route-chip{background:var(--bg-input);border-color:#0000;border-radius:11px;gap:7px;height:46px;min-height:0;padding:0 14px}.filter-chip.ws-route-chip:hover{color:var(--text-primary)}.filter-chip.ws-route-chip.active{border-color:var(--accent);color:var(--accent)}.ws-route-menu{width:260px}.ws-route-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-route-count{font-feature-settings:"tnum";color:var(--text-muted);flex-shrink:0;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600}.ws-route-hint{color:var(--text-muted);font-size:12px;margin:6px 6px 2px}.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.route-btn{background:var(--accent);color:#fff}.epd-icon-btn.route-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}@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}.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}.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}@media (max-width:480px){.po-panel{max-width:100vw;width:100vw}}.route-progress,.rpp-ribbon{--rp-ok-solid:#34c759;--rp-ok:#1f8f4c;--rp-ok-tint:#34c75921;--rp-issue-solid:#e0a11b;--rp-issue:#a9740b;--rp-issue-tint:#e0a11b26;--rp-bad-solid:#ef4444;--rp-bad:#c22f2f;--rp-bad-tint:#ef44441c;--rp-neutral-solid:#a3a8b0}.dark-mode .route-progress,.dark-mode .rpp-ribbon{--rp-ok-solid:#56d597;--rp-ok:#7fe3af;--rp-issue-solid:#ebb63e;--rp-issue:#f3cd6a;--rp-bad-solid:#f0777a;--rp-bad:#f6999b;--rp-neutral-solid:#7c828c}.route-progress{background-color:var(--bg-primary);box-sizing:border-box;overflow-y:auto;padding:24px;width:100%}.route-progress .page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.route-progress .page-title{color:var(--text-primary);font-size:28px;font-weight:700;letter-spacing:-.02em;margin:0 0 4px}.route-progress .page-subtitle{color:var(--text-secondary);font-size:15px;margin:0}.rpp-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-left:auto}.rpp-updated{color:var(--text-secondary);font-size:12.5px}.rpp-refresh{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:7px;height:34px;min-height:0;padding:0 13px;transition:border-color .15s ease,background .15s ease}.rpp-refresh:hover{background:var(--bg-hover);border-color:#cfd4da;border-color:var(--border-hover,#cfd4da)}.rpp-refresh:disabled{cursor:default;opacity:.6}.rpp-refresh svg{color:var(--text-secondary);font-size:12px}.rpp-refresh.is-refreshing svg{animation:rpp-spin .8s linear infinite}@keyframes rpp-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.rpp-refresh.is-refreshing svg{animation:none}}.rpp-daytabs{background:var(--bg-hover);border-radius:9px;display:inline-flex;padding:3px}.rpp-daytab{background:#0000;border:0;border-radius:7px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;height:28px;min-height:0;padding:0 14px}.rpp-daytab.on{box-shadow:0 1px 2px #00000014;color:var(--text-primary)}.rpp-daytab.on,.rpp-hero{background:var(--bg-card)}.rpp-hero{border:1px solid var(--border-color);border-radius:14px;margin-bottom:18px;padding:22px 24px}.rpp-hero-top{align-items:flex-end;gap:20px;justify-content:space-between}.rpp-count,.rpp-hero-top{display:flex;flex-wrap:wrap}.rpp-count{align-items:baseline;gap:10px}.rpp-count-big{font-feature-settings:"tnum";color:var(--text-primary);font-size:40px;font-variant-numeric:tabular-nums;font-weight:750;letter-spacing:-.03em;line-height:1}.rpp-count-of{color:var(--text-secondary);font-size:16px;font-weight:500}.rpp-count-pct{font-feature-settings:"tnum";color:var(--rp-ok);font-size:15px;font-variant-numeric:tabular-nums;font-weight:650}.rpp-hero-aside{color:var(--text-secondary);font-size:13px;text-align:right}.rpp-hero-aside b{color:var(--text-primary);font-weight:650}.rpp-hero-aside .warn b{color:var(--rp-bad)}.rpp-hero-aside .ok b{color:var(--rp-ok)}.rpp-bar{background:var(--bg-hover);border-radius:7px;display:flex;height:12px;margin:16px 0 0;overflow:hidden}.rpp-bar>span{display:block;height:100%}.rpp-seg-ok{background:var(--rp-ok-solid)}.rpp-seg-issue{background:var(--rp-issue-solid)}.rpp-seg-bad{background:var(--rp-bad-solid)}.rpp-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:14px}.rpp-legend-item{font-feature-settings:"tnum";align-items:center;color:var(--text-secondary);display:inline-flex;font-size:13px;font-variant-numeric:tabular-nums;gap:7px}.rpp-legend-item b{color:var(--text-primary);font-weight:700}.rpp-dot{border-radius:50%;flex:none;height:9px;width:9px}.rpp-dot-ok{background:var(--rp-ok-solid)}.rpp-dot-issue{background:var(--rp-issue-solid)}.rpp-dot-bad{background:var(--rp-bad-solid)}.rpp-dot-note,.rpp-dot-pend{background:var(--rp-neutral-solid)}.rpp-group{margin-top:22px}.rpp-group-head{align-items:center;display:flex;font-size:13px;gap:9px;letter-spacing:.02em;margin:0 0 10px;text-transform:uppercase}.rpp-group-head,.rpp-group-head .badge{color:var(--text-secondary);font-weight:700}.rpp-group-head .badge{background:var(--bg-hover);border-radius:999px;font-size:11px;letter-spacing:0;padding:2px 8px}.rpp-group-head.attn .badge{background:var(--rp-issue-tint);color:var(--rp-issue)}.rpp-list{display:flex;flex-direction:column;gap:8px}.rpp-item{background:var(--bg-card);border:1px solid var(--border-color);border-radius:11px}summary.rpp-row{align-items:center;cursor:pointer;display:flex;gap:12px;list-style:none;padding:13px 15px}summary.rpp-row::-webkit-details-marker{display:none}summary.rpp-row:hover{background:#7f7f7f0a;border-radius:11px}summary.rpp-row:focus-visible{border-radius:11px;outline:2px solid var(--accent);outline-offset:-2px}.rpp-item[open]>summary.rpp-row{border-bottom:1px solid var(--border-color);border-radius:11px 11px 0 0}.rpp-row-name{color:var(--text-primary);font-size:14.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpp-row-right{align-items:center;display:flex;flex:none;gap:12px;margin-left:auto}.rpp-badge{font-feature-settings:"tnum";align-items:center;color:var(--text-muted);display:inline-flex;font-size:12px;font-variant-numeric:tabular-nums;gap:4px}.rpp-badge svg,.rpp-caret{font-size:12px}.rpp-caret{color:var(--text-muted);flex:none;transition:transform .18s ease}.rpp-item[open]>summary .rpp-caret{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.rpp-caret{transition:none}}.rpp-pill{border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.02em;padding:3px 9px;white-space:nowrap}.rpp-pill-issue{background:var(--rp-issue-tint);color:var(--rp-issue)}.rpp-pill-bad{background:var(--rp-bad-tint);color:var(--rp-bad)}.rpp-pill-pend{background:var(--bg-hover)}.rpp-pill-pend,.rpp-stamp{color:var(--text-secondary)}.rpp-stamp{font-feature-settings:"tnum";font-size:12.5px;font-variant-numeric:tabular-nums}.rpp-stamp b{color:var(--text-primary);font-weight:650}.rpp-row-static{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:11px;display:flex;gap:12px;padding:12px 15px}.rpp-row-static .rpp-row-name{font-weight:550}.rpp-row-static .rpp-pill-pend{margin-left:auto}.rpp-detail{display:flex;flex-direction:column;gap:14px;padding:12px 16px 14px}.rpp-detail-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px 28px}.rpp-notes-col{display:flex;flex:1 1 300px;flex-direction:column;gap:14px;min-width:0}.rpp-photos-col{display:flex;flex:none;flex-wrap:wrap;gap:10px}.rpp-note{display:flex;flex-direction:column;gap:5px;min-width:0}.rpp-note-meta{align-items:center;display:flex;gap:9px}.rpp-note-tag{background:var(--bg-hover);border-radius:999px;color:var(--text-secondary);font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 8px;text-transform:uppercase}.rpp-note-tag.issue{background:var(--rp-issue-tint);color:var(--rp-issue)}.rpp-note-when{font-feature-settings:"tnum";color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums}.rpp-note-text{color:var(--text-primary);font-size:14px;line-height:1.5;margin:0;max-width:58ch}.rpp-detail-muted{color:var(--text-muted);font-size:13px;margin:0}.rpp-thumb{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:11px;cursor:pointer;display:block;height:78px;overflow:hidden;padding:0;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;width:78px}.rpp-thumb img{display:block;height:100%;object-fit:cover;width:100%}.rpp-thumb:hover{border-color:var(--accent);box-shadow:0 6px 16px #10182829;transform:translateY(-1px)}.rpp-thumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rpp-detail-foot{border-top:1px solid var(--border-color);padding-top:12px}.rpp-open-btn{align-items:center;background:#0071e31a;background:var(--accent-soft,#0071e31a);border:0;border-radius:9px;color:var(--accent);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;padding:8px 13px;transition:filter .15s ease}.rpp-open-btn:hover{filter:brightness(1.04) saturate(1.05)}.rpp-open-btn svg{font-size:11px}.rpp-open-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){.rpp-thumb{transition:none}}.rpp-disc{margin-top:18px}.rpp-disc>summary{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:8px;list-style:none;padding:9px 14px;-webkit-user-select:none;user-select:none}.rpp-disc>summary::-webkit-details-marker{display:none}.rpp-disc>summary:hover{border-color:#cfd4da;border-color:var(--border-hover,#cfd4da);color:var(--text-primary)}.rpp-disc>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rpp-disc>summary .rpp-caret{font-size:11px}.rpp-disc[open]>summary .rpp-caret{transform:rotate(90deg)}.rpp-disc[open]>summary{margin-bottom:10px}.rpp-empty{color:var(--text-secondary);padding:40px 20px;text-align:center}.rpp-skeleton-block{animation:rpp-shimmer 1.4s ease infinite;background:linear-gradient(90deg,var(--bg-hover) 25%,var(--border-color) 37%,var(--bg-hover) 63%);background-size:400% 100%;border-radius:8px;display:block}@keyframes rpp-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.rpp-skeleton-block{animation:none}}.rpp-sk-title{height:30px;margin-bottom:8px;width:200px}.rpp-sk-sub{height:15px;width:130px}.rpp-sk-hero{border-radius:14px;height:150px;margin-bottom:18px;width:100%}.rpp-sk-row{border-radius:11px;height:54px;width:100%}.rpp-ribbon,.rpp-ribbon *{box-sizing:border-box}.rpp-ribbon{--rp-ribbon-tint:var(--bg-card);--rp-ribbon-edge:var(--border-color);--rp-ribbon-text:var(--text-primary);background:var(--rp-ribbon-tint);border:1px solid var(--rp-ribbon-edge);border-radius:12px;overflow:hidden}.rpp-ribbon.tone-ok{--rp-ribbon-tint:var(--rp-ok-tint);--rp-ribbon-edge:#34c7595c;--rp-ribbon-text:var(--rp-ok)}.rpp-ribbon.tone-issue{--rp-ribbon-tint:var(--rp-issue-tint);--rp-ribbon-edge:#e0a11b6b;--rp-ribbon-text:var(--rp-issue)}.rpp-ribbon.tone-bad{--rp-ribbon-tint:var(--rp-bad-tint);--rp-ribbon-edge:#ef444466;--rp-ribbon-text:var(--rp-bad)}.rpp-ribbon-row{align-items:center;background:#0000;border:0;color:var(--text-primary);display:flex;font-family:inherit;gap:11px;margin:0;min-height:0;padding:12px 14px;text-align:left;width:100%}button.rpp-ribbon-row{cursor:pointer}.rpp-ribbon-row:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.rpp-ribbon-dot{align-items:center;background:var(--rp-neutral-solid);border-radius:50%;color:var(--bg-card);display:inline-flex;flex:none;font-size:10px;height:19px;justify-content:center;width:19px}.rpp-ribbon-dot.tone-ok{background:var(--rp-ok-solid)}.rpp-ribbon-dot.tone-issue{background:var(--rp-issue-solid)}.rpp-ribbon-dot.tone-bad{background:var(--rp-bad-solid)}.rpp-ribbon-dot.tone-neutral{background:#0000;border:1px solid var(--border-color)}.rpp-ribbon-text{display:flex;flex:1 1;flex-direction:column;gap:1px;min-width:0}.rpp-ribbon-head{color:var(--rp-ribbon-text);font-size:14.5px;font-weight:650}.rpp-ribbon.tone-neutral .rpp-ribbon-head{color:var(--text-primary)}.rpp-ribbon-sub{font-feature-settings:"tnum";color:var(--text-secondary);font-size:12.5px;font-variant-numeric:tabular-nums}.rpp-ribbon-chev{color:var(--text-secondary);flex:none;font-size:12px;transition:transform .16s ease}.rpp-ribbon-chev.open{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.rpp-ribbon-chev{transition:none}}.rpp-ribbon-bar{background:var(--bg-hover);border-radius:4px;flex:none;height:6px;overflow:hidden;width:84px}.rpp-ribbon-bar i{background:var(--rp-ok-solid);display:block;height:100%}.rpp-ribbon-link,.rpp-ribbon-view{background:#0000;border:0;color:var(--accent);cursor:pointer;flex:none;font-family:inherit;font-size:13px;font-weight:600;min-height:0;padding:0}.rpp-ribbon-view{background:var(--bg-card);border:1px solid var(--border-color);border-radius:9px;color:var(--text-primary);height:32px;padding:0 13px}.rpp-ribbon-view:hover{border-color:#cfd4da;border-color:var(--border-hover,#cfd4da)}.rpp-ribbon-link:focus-visible,.rpp-ribbon-view:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rpp-ribbon-detail{display:flex;flex-direction:column;gap:8px;padding:0 14px 12px}.rpp-ribbon-att{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;display:flex;font-size:13.5px;gap:9px;padding:9px 11px}.rpp-ribbon-pip{border-radius:50%;flex:none;height:8px;width:8px}.rpp-ribbon-pip.tone-issue{background:var(--rp-issue-solid)}.rpp-ribbon-pip.tone-bad{background:var(--rp-bad-solid)}.rpp-ribbon-addr{color:var(--text-primary);flex:1 1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rpp-ribbon-status{font-feature-settings:"tnum";color:var(--text-secondary);flex:none;font-size:12.5px;font-variant-numeric:tabular-nums;white-space:nowrap}.rpp-ribbon-status.issue{color:var(--rp-issue)}.rpp-ribbon-status.bad{color:var(--rp-bad)}.rpp-ribbon-more{color:var(--text-secondary);font-size:12.5px;margin:0}.rpp-ribbon-actions{display:flex}@media (max-width:768px){.route-progress{padding:16px}.route-progress .page-title{font-size:24px}.rpp-controls{margin-left:0;width:100%}.rpp-count-big{font-size:34px}.rpp-hero-aside{text-align:left}.rpp-ribbon-att{flex-wrap:wrap}.rpp-ribbon-addr{flex-basis:100%}}.opc-card,.opc-card *{box-sizing:border-box}.opc-card{--opc-ok:#1f8f4c;--opc-issue:#a9740b;--opc-bad:#c22f2f;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;overflow:hidden}.dark-mode .opc-card{--opc-ok:#7fe3af;--opc-issue:#f3cd6a;--opc-bad:#f6999b}.opc-head{align-items:baseline;border-bottom:1px solid var(--border-color);display:flex;gap:12px;justify-content:space-between;padding:14px 18px}.opc-title{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.opc-count{font-feature-settings:"tnum";color:var(--text-secondary);font-size:12.5px;font-variant-numeric:tabular-nums}.opc-body{padding:0 18px}.opc-row{align-items:center;background:#0000;border:0;border-top:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;gap:12px;min-height:0;padding:12px 0;text-align:left;width:100%}.opc-row:first-child{border-top:0}.opc-row:hover .opc-name{color:var(--accent)}.opc-row:focus-visible{border-radius:8px;outline:2px solid var(--accent);outline-offset:-2px}.opc-thumb{border:1px solid var(--border-color);border-radius:9px;flex:none;height:38px;object-fit:cover;width:38px}.opc-thumb,.opc-thumb.empty{background:var(--bg-hover)}.opc-main{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.opc-name{color:var(--text-primary);font-size:14px;font-weight:600}.opc-last,.opc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opc-last{font-feature-settings:"tnum";color:var(--text-secondary);font-size:12.5px;font-variant-numeric:tabular-nums}.opc-lead{font-weight:600}.opc-lead.tone-ok{color:var(--opc-ok)}.opc-lead.tone-issue{color:var(--opc-issue)}.opc-lead.tone-bad{color:var(--opc-bad)}.opc-right{align-items:center;display:flex;flex:none;gap:10px}.opc-sched{display:flex;gap:5px}.opc-chip{background:var(--bg-hover);border-radius:6px;color:var(--text-secondary);font-size:11px;font-weight:600;padding:2px 7px;white-space:nowrap}.opc-chip.recycle{background:#34c75921;color:var(--opc-ok)}.opc-next{font-size:12.5px;min-width:72px;text-align:right}.opc-badge,.opc-next{color:var(--text-secondary);white-space:nowrap}.opc-badge{background:var(--bg-hover);border-radius:999px;font-size:11px;font-weight:600;padding:3px 9px}.opc-badge.attn{background:#ef44441f;color:var(--opc-bad)}.opc-chev{color:var(--text-secondary);flex:none;font-size:12px}.opc-foot{border-top:1px solid var(--border-color);padding:0}.opc-viewall{align-items:center;background:#0000;border:0;color:var(--accent);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:6px;height:44px;justify-content:center;min-height:0;padding:0 16px;width:100%}.opc-viewall svg{font-size:11px}.opc-viewall:hover{background:var(--bg-hover)}.opc-viewall:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media (max-width:620px){.opc-sched{display:none}.opc-next{min-width:0}.opc-body{padding:0 14px}.opc-head{padding:13px 14px}}.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:repeat(auto-fit,minmax(280px,1fr))}.property-owner-dashboard .rpp-ribbon{margin-bottom:20px}.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{display:flex;flex-direction:column;gap:12px;padding:16px}.action-card{align-items:center;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;display:flex;font-family:inherit;gap:14px;padding:16px;text-align:left;transition:all .2s ease;width:100%}.action-card:hover{background-color:var(--bg-hover);border-color:var(--accent)}.action-icon{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:18px;height:40px;justify-content:center;width:40px}.action-icon.primary{background-color:#0071e31f;color:var(--accent)}.action-icon.completed{background-color:#34c7591f;color:var(--success)}.action-info{flex:1 1}.action-title{color:var(--text-primary);font-size:15px;font-weight:600;margin-bottom:2px}.action-desc{color:var(--text-secondary);font-size:13px}.action-arrow{color:var(--text-muted);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{display:block;height:28px;margin-bottom:10px;width:240px}.pod-skeleton-subtitle{display:block;height:14px;width:280px}.pod-skeleton-section-title{height:18px;width:180px}.pod-skeleton-ribbon{border-radius:12px;display:block;height:45px;margin-bottom:20px;width:100%}.pod-skeleton-properties{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:0 18px}.pod-skeleton-prop-head{border-bottom:1px solid var(--border-color);padding:14px 0}.pod-skeleton-prop-row{align-items:center;border-top:1px solid var(--border-color);display:flex;gap:12px;padding:12px 0}.pod-skeleton-prop-row:first-of-type{border-top:0}.pod-skeleton-prop-thumb{border-radius:9px;flex:none;height:38px;width:38px}.pod-skeleton-prop-text{flex:1 1;min-width:0}.pod-skeleton-prop-name{display:block;height:14px;margin-bottom:6px;width:140px}.pod-skeleton-prop-last{display:block;height:12px;max-width:100%;width:190px}.pod-skeleton-prop-next{flex:none;height:12px;width:72px}.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}}.homeowner-portal{box-sizing:border-box;margin:0 auto;max-width:960px;padding:24px;width:100%}.ho-head{align-items:flex-end;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;margin-bottom:20px}.ho-title{color:var(--text-primary);font-size:28px;font-weight:700;letter-spacing:-.02em;margin:0}.ho-sub{color:var(--text-secondary);font-size:14px;margin:3px 0 0}.ho-sub--tight{font-size:13px;margin-top:8px}.ho-homes{display:flex;flex-wrap:wrap;gap:7px}.ho-home-pill{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;padding:8px 13px;transition:all .15s ease;white-space:nowrap}.ho-home-pill:hover{border-color:var(--border-hover);color:var(--text-primary)}.ho-home-pill.on{background:var(--bg-hover);border-color:var(--accent);color:var(--accent);font-weight:600}.ho-grid{grid-gap:18px;align-items:start;display:grid;gap:18px;grid-template-columns:1.45fr 1fr}.ho-col{display:flex;flex-direction:column;gap:18px;min-width:0}@media (max-width:820px){.homeowner-portal{padding:16px 16px 32px}.ho-grid{grid-template-columns:1fr}.ho-title{font-size:24px}}.ho-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;padding:18px}.ho-card--flush{overflow:hidden;padding:0}.ho-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.ho-label{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.07em;margin:0 0 8px;text-transform:uppercase}.ho-label--inset{padding:16px 18px 0}.ho-addr{color:var(--text-primary);font-size:17px;font-weight:600;letter-spacing:-.015em;margin:0}.ho-addr-sub{color:var(--text-secondary);font-size:13px;margin:2px 0 0}.ho-chip{align-items:center;border-radius:8px;display:inline-flex;flex-shrink:0;font-size:12px;font-weight:600;gap:6px;height:26px;padding:0 10px;white-space:nowrap}.ho-dot{background:currentColor;border-radius:50%;height:7px;width:7px}.ho-chip.ok{background:#34c75921;color:#1c8b3c}.ho-chip.warn{background:#f5a62326;color:#9a6408}.ho-chip.mute{background:var(--bg-hover);color:var(--text-secondary)}.dark-mode .ho-chip.ok{color:#4cd471}.dark-mode .ho-chip.warn{color:#f0b64d}.ho-big-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px}.ho-big{color:var(--text-primary);font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.15;margin:0}.ho-rel{color:var(--text-secondary);font-size:14px;font-weight:500}.ho-services{display:flex;flex-direction:column;gap:10px;list-style:none;margin:18px 0 0;padding:0}.ho-service{gap:12px}.ho-service,.ho-service-ic{align-items:center;display:flex}.ho-service-ic{background:#0071e31a;border-radius:10px;color:var(--accent);flex-shrink:0;height:36px;justify-content:center;width:36px}.ho-service-ic svg{height:16px;width:16px}.ho-service-txt{flex:1 1;min-width:0}.ho-service-name{color:var(--text-primary);display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}.ho-service-sub{color:var(--text-secondary);display:block;font-size:12.5px}.ho-service-tick{align-items:center;color:var(--accent);display:flex;flex-shrink:0}.ho-service-tick svg{height:15px;width:15px}.ho-service--off .ho-service-ic{background:var(--bg-hover);color:var(--text-muted)}.ho-service--off .ho-service-name{color:var(--text-secondary);font-weight:500}.ho-service-skip{color:var(--text-muted);flex-shrink:0;font-size:12px;font-weight:500;white-space:nowrap}.ho-row{gap:12px}.ho-row,.ho-stat-ic{align-items:center;display:flex}.ho-stat-ic{border-radius:10px;flex-shrink:0;height:36px;justify-content:center;width:36px}.ho-stat-ic svg{height:16px;width:16px}.ho-stat-ic.ok{background:#34c75921;color:#1c8b3c}.ho-stat-ic.bad{background:#ff3b301f;color:#c9302a}.ho-stat-ic.mute{background:var(--bg-hover);color:var(--text-secondary)}.dark-mode .ho-stat-ic.ok{color:#4cd471}.dark-mode .ho-stat-ic.bad{color:#ff6b62}.ho-row-title{color:var(--text-primary);display:block;font-size:14.5px;font-weight:600;letter-spacing:-.01em}.ho-row-sub{color:var(--text-secondary);display:block;font-size:13px}.ho-note{background:#f5a6231f;border-radius:11px;margin-top:14px;padding:13px}.ho-note-head{align-items:center;color:#9a6408;display:flex;font-size:11px;font-weight:700;gap:7px;letter-spacing:.06em;text-transform:uppercase}.dark-mode .ho-note-head{color:#f0b64d}.ho-note-head svg{height:12px;width:12px}.ho-note-text{color:var(--text-primary);font-size:13.5px;line-height:1.5;margin:8px 0 0}.ho-note-who{color:var(--text-secondary);font-size:12px;margin:9px 0 0}.ho-visits{list-style:none;margin:0;padding:0}.ho-visit-item{border-top:1px solid var(--border-color)}.ho-visit-item:first-child{border-top:0}.ho-visit{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;gap:12px;padding:12px 18px;text-align:left;transition:background .15s ease;width:100%}.ho-visit:hover:not(:disabled){background:var(--bg-hover)}.ho-visit:disabled{cursor:default}.ho-pip{border-radius:50%;flex-shrink:0;height:8px;width:8px}.ho-pip.ok{background:var(--success)}.ho-pip.bad{background:var(--danger)}.ho-pip.note{background:var(--warning)}.ho-visit-date{flex:1 1;font-size:13.5px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ho-visit-state{font-size:12.5px;white-space:nowrap}.ho-visit-count,.ho-visit-state{color:var(--text-secondary);flex-shrink:0}.ho-visit-count{align-items:center;display:inline-flex;font-size:12px;font-weight:500;gap:5px}.ho-visit-caret,.ho-visit-count svg{height:12px;width:12px}.ho-visit-caret{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease}.ho-visit-item.is-open .ho-visit-caret{transform:rotate(180deg)}.ho-visit-detail{display:flex;flex-direction:column;gap:12px;padding:0 18px 16px}.ho-visit-time{color:var(--text-secondary);font-size:12.5px;margin:0}.ho-visit-note{background:var(--bg-hover);border-radius:10px;padding:11px 13px}.ho-visit-note-text{color:var(--text-primary);font-size:13.5px;line-height:1.5;margin:0}.ho-visit-note-who{color:var(--text-secondary);font-size:12px;margin:7px 0 0}.ho-visit-photos{display:flex;flex-wrap:wrap;gap:8px}.ho-visit-thumb{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;flex-shrink:0;height:76px;min-height:0;overflow:hidden;padding:0;width:76px}.ho-visit-thumb img{display:block;height:100%;object-fit:cover;width:100%}.ho-visit-thumb:hover{border-color:var(--border-hover)}@media (max-width:400px){.ho-visit{gap:9px;padding:12px 14px}.ho-visit-detail{padding:0 14px 16px}}.ho-more{align-items:center;background:none;border:none;color:var(--accent);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13.5px;font-weight:600;gap:7px;margin-top:14px;min-height:0;padding:0}.ho-more svg{height:11px;width:11px}.ho-more:hover{text-decoration:underline}.ho-back{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:inherit;font-size:13.5px;font-weight:500;gap:7px;margin-bottom:16px;min-height:0;padding:0}.ho-back:hover{color:var(--text-primary)}.ho-back svg{height:12px;width:12px}.ho-history{display:flex;flex-direction:column;gap:10px}.ho-history-month{color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.07em;margin:14px 0 4px;text-transform:uppercase}.ho-history>div:first-child .ho-history-month{margin-top:0}.ho-sk-back{height:16px;margin-bottom:16px;width:110px}.ho-pause{display:flex;flex-direction:column}.ho-btn{align-items:center;border:none;border-radius:12px;cursor:pointer;display:flex;font-family:inherit;font-size:15px;font-weight:600;gap:9px;justify-content:center;min-height:46px;transition:filter .15s ease,background .15s ease,border-color .15s ease;width:100%}.ho-btn svg{height:15px;width:15px}.ho-btn:disabled{cursor:not-allowed;opacity:.55}.ho-btn--primary{background:var(--accent);color:#fff}.ho-btn--primary:hover:not(:disabled){filter:brightness(1.07)}.ho-btn--ghost{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary)}.ho-btn--ghost:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-hover)}.ho-btn--quiet{background:var(--bg-hover);color:var(--text-primary)}.ho-helper{color:var(--text-secondary);font-size:12.5px;line-height:1.45;margin:10px 4px 0;text-align:center}.ho-overlay{align-items:center;background:#00000073;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.ho-dialog{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 30px 70px -30px #00000080;max-width:420px;padding:24px;width:100%}.ho-dialog h2{color:var(--text-primary);font-size:19px;font-weight:700;letter-spacing:-.02em;margin:0 0 8px}.ho-dialog p{color:var(--text-secondary);font-size:14px;line-height:1.55;margin:0 0 20px}.ho-dialog-actions{display:flex;gap:10px}.ho-dialog-actions .ho-btn{flex:1 1;font-size:14.5px;min-height:44px}@media (max-width:480px){.ho-dialog-actions{flex-direction:column-reverse}}.ho-empty{color:var(--text-secondary);padding:64px 24px;text-align:center}.ho-empty svg{color:var(--text-muted);margin-bottom:16px}.ho-empty h2{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 8px}.ho-empty p{font-size:14px;line-height:1.6;margin:0 auto;max-width:44ch}.ho-sk{animation:ho-pulse 1.4s ease-in-out infinite;background:var(--bg-hover);border-radius:8px;display:block}.ho-sk-title{height:30px;margin-bottom:8px;width:180px}.ho-sk-sub{height:16px;width:240px}.ho-sk-label{height:12px;margin-bottom:12px;width:90px}.ho-sk-big{height:30px;margin-bottom:16px;width:200px}.ho-sk-week{height:50px;width:100%}.ho-sk-row{height:36px;width:100%}@keyframes ho-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion:reduce){.ho-sk{animation:none}}.ho-grid--even{grid-template-columns:1fr 1fr}@media (max-width:820px){.ho-grid--even{grid-template-columns:1fr}}.ho-card--tint{background:#0071e314;border-color:#0000}.ho-label--spaced{margin-top:22px}.ho-chip.info{background:#0071e31a;color:var(--accent)}.ho-chip svg{height:11px;width:11px}.ho-price{align-items:baseline;display:flex;gap:8px;margin-top:6px}.ho-price-amt{font-feature-settings:"tnum";color:var(--text-primary);font-size:34px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:-.035em}.ho-price-per{color:var(--text-secondary);font-size:14px;font-weight:500}.ho-kv{border-top:1px solid var(--border-color);display:flex;font-size:14px;gap:12px;justify-content:space-between;padding:10px 0}.ho-kv:first-child{border-top:0;padding-top:0}.ho-kv-k{color:var(--text-secondary)}.ho-kv-v{color:var(--text-primary);font-weight:500;text-align:right}.ho-table-scroll{overflow-x:auto}.ho-table{border-collapse:collapse;font-size:13.5px;width:100%}.ho-table th{color:var(--text-muted);font-size:10.5px;font-weight:600;letter-spacing:.07em;text-align:left;text-transform:uppercase}.ho-table td,.ho-table th{border-bottom:1px solid var(--border-color);padding:13px 18px;white-space:nowrap}.ho-table td{color:var(--text-primary)}.ho-table tbody tr:last-child td{border-bottom:0}.ho-table .ho-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.ho-td-strong{font-weight:600}.ho-td-muted{color:var(--text-secondary)}.ho-link{align-items:center;color:var(--accent);display:inline-flex;font-weight:500;gap:6px;text-decoration:none}.ho-link:hover{text-decoration:underline}.ho-link svg{height:12px;width:12px}@media (max-width:560px){.ho-hide-sm{display:none}.ho-table td,.ho-table th{padding:12px 13px}}.ho-btn--inline{margin:18px auto 0;min-width:160px;padding:0 20px;width:auto}.route-sketch{aspect-ratio:440/120;background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;max-width:440px;overflow:hidden;width:100%}.route-sketch svg{display:block;height:100%;width:100%}.route-sketch .water{fill:#0071e314}.dark-mode .route-sketch .water{fill:#2997ff24}.route-sketch .road{fill:none;stroke:var(--border-hover);stroke-width:2;stroke-dasharray:4 6;stroke-dashoffset:-8;stroke-linecap:round}.route-sketch .stop{fill:var(--border-hover)}.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}}.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-empty-day{align-items:center;display:flex;flex-direction:column;gap:6px;margin-bottom:24px;padding:8px 0 24px;text-align:center}.dashboard-empty-day-sketch{margin-bottom:12px}.dashboard-empty-day-title{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.dashboard-empty-day-line{color:var(--text-secondary);font-size:13px;margin:0;min-height:1.45em}.dashboard-empty-day-line .link-button{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;min-height:0;padding:0}.dashboard-empty-day-line .link-button:hover{text-decoration:underline}.dashboard-routes-skeleton .dashboard-route-card{cursor:default}.dashboard-routes-skeleton .dashboard-route-card-info{display:flex;flex-direction:column;gap:8px;min-width:0}.dashboard-skeleton-block{background:var(--border-color);border-radius:6px;display:block;max-width:100%;overflow:hidden;position:relative}.dashboard-skeleton-block:after{animation:dashboard-skeleton-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 .dashboard-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff14 50%,#fff0)}@keyframes dashboard-skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.dashboard-skeleton-block:after{animation:none}}.dashboard-skeleton-title{height:18px;width:160px}.dashboard-skeleton-name{height:18px;width:140px}.dashboard-skeleton-meta{height:14px;width:90px}.dashboard-skeleton-action{border-radius:8px;flex-shrink:0;height:32px;width:64px}.dashboard-routes-section{margin-bottom:24px}.dashboard-routes-section .section-title{align-items:center;display:inline-flex;gap:8px}.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;box-sizing:border-box;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.static{cursor:default}.dashboard-route-card.static:hover{background:var(--bg-primary);border-color:var(--border-color);box-shadow:none;transform:none}.dashboard-route-card.static.active:hover{background:#0071e30f;border-color:var(--accent)}.dark-mode .dashboard-route-card.static.active:hover{background:#2997ff1f}.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:disabled{cursor:default}.dashboard-route-card.completed .dashboard-route-card-meta{color:var(--success)}.dashboard-route-card.completed .dashboard-route-card-action{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-secondary);padding:7px 13px}.dashboard-route-card.completed:hover:not(:disabled) .dashboard-route-card-action{background:var(--bg-hover)}.dashboard-route-card-action.quiet{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;font-family:inherit;padding:7px 13px}.dashboard-route-card-action.quiet:hover{border-color:var(--border-hover);color:var(--text-primary)}.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:flex;font-size:15px;font-weight:600;gap:10px;min-width:0}.dashboard-route-card-name>span{min-width:0}.dashboard-route-card-name>svg{flex-shrink:0}.dashboard-route-card-name>svg:not(.dashboard-route-ring){color:var(--accent);height:14px;margin:0 4px;width:14px}.dashboard-route-ring{height:22px;width:22px}.dashboard-route-ring circle{fill:none;stroke-width:3}.dashboard-route-ring .track{stroke:var(--border-hover)}.dashboard-route-ring .fill{stroke:var(--accent);stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .4s ease}.dashboard-route-ring.complete .fill{stroke:var(--success)}.dashboard-route-ring.complete .track{stroke:var(--success);opacity:.25}@media (prefers-reduced-motion:reduce){.dashboard-route-ring .fill{transition:none}}.dashboard-route-card-meta{font-feature-settings:"tnum";align-items:center;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:12px;font-variant-numeric:tabular-nums;gap:6px}.dashboard-route-card-meta>span{align-items:center;display:inline-flex;gap:6px}.dashboard-route-card-sep{color:var(--text-muted)}.dashboard-route-card-unassigned{color:var(--warning);font-weight:500}.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}.filters-section{padding:12px}}.route-progress-summary{--rp-ok-solid:#34c759;--rp-ok:#1f8f4c;--rp-issue-solid:#e0a11b;--rp-issue:#a9740b;--rp-issue-tint:#e0a11b26;--rp-bad-solid:#ef4444;--rp-bad:#c22f2f;--rp-bad-tint:#ef44441c;--rp-neutral:#a3a8b0;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:12px;padding:14px 16px}.dark-mode .route-progress-summary{--rp-ok-solid:#56d597;--rp-ok:#7fe3af;--rp-issue-solid:#ebb63e;--rp-issue:#f3cd6a;--rp-bad-solid:#f0777a;--rp-bad:#f6999b;--rp-neutral:#7c828c;background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.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;color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;padding:2px 8px}.dark-mode .rps-toggle-day{background:#ffffff14}.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-tab:focus-visible{outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:2px}.dark-mode .rps-tabs{background:#ffffff14}.dark-mode .rps-tab.active{background:#ffffff1f;box-shadow:none}.rps-bar,.rps-minibar{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:999px;display:flex;overflow:hidden}.dark-mode .rps-bar,.dark-mode .rps-minibar{background:#ffffff14}.rps-bar{height:9px;width:100%}.rps-minibar{flex:none;height:7px;width:88px}.rps-seg{height:100%}.rps-seg-ok{background:var(--rp-ok-solid)}.rps-seg-issue{background:var(--rp-issue-solid)}.rps-seg-bad{background:var(--rp-bad-solid)}.rps-dot{border-radius:50%;display:inline-block;flex:none;height:8px;width:8px}.rps-dot-ok{background:var(--rp-ok-solid)}.rps-dot-issue{background:var(--rp-issue-solid)}.rps-dot-bad{background:var(--rp-bad-solid)}.rps-dot-pend{background:var(--rp-neutral)}.rps-agg{display:flex;flex-direction:column;gap:9px}.rps-agg-top{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.rps-agg-count{font-feature-settings:"tnum";color:#4b5563;color:var(--text-secondary,#4b5563);font-size:14px;font-variant-numeric:tabular-nums}.rps-agg-count b{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:20px;font-weight:750}.rps-agg-legend,.rps-agg-routes{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px}.rps-agg-legend{display:flex;flex-wrap:wrap;gap:14px}.rps-agg-legend span{font-feature-settings:"tnum";align-items:center;display:inline-flex;font-variant-numeric:tabular-nums;gap:6px}.rps-routes{display:flex;flex-direction:column;gap:8px}.rps-route{background:#f9fafb;background:var(--bg-secondary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:11px}.dark-mode .rps-route{background:#ffffff08;border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.rps-route-head{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:11px 13px;width:100%}.rps-route-head:hover{background:#7f7f7f0d;border-radius:11px}.rps-route-head:focus-visible{border-radius:11px;outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:-2px}.rps-route.open .rps-route-head{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border,#e5e7eb);border-radius:11px 11px 0 0}.dark-mode .rps-route.open .rps-route-head{border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.rps-route-name{font-size:13.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rps-route-right{align-items:center;display:flex;flex:none;gap:12px;margin-left:auto}.rps-route-count{font-feature-settings:"tnum";font-size:12.5px;font-variant-numeric:tabular-nums}.rps-caret,.rps-route-count{color:#6b7280;color:var(--text-muted,#6b7280)}.rps-caret{flex:none;height:11px;transition:transform .18s ease;width:11px}.rps-route.open>.rps-route-head .rps-caret,details.rps-stop[open]>summary .rps-caret{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.rps-caret{transition:none}}.rps-stops{background:#e5e7eb;background:var(--border,#e5e7eb);border-radius:0 0 11px 11px;display:flex;flex-direction:column;gap:1px;overflow:hidden}.dark-mode .rps-stops{background:#2d2d2d;background:var(--border-color,#2d2d2d)}.rps-stop{background:#fff;background:var(--surface,#fff)}.dark-mode .rps-stop{background:#1a1a1a;background:var(--bg-card,#1a1a1a)}.rps-stop.tone-issue{background:var(--rp-issue-tint)}.rps-stop.tone-bad{background:var(--rp-bad-tint)}summary.rps-stop-row{align-items:center;cursor:pointer;display:flex;gap:10px;list-style:none;padding:10px 13px}summary.rps-stop-row::-webkit-details-marker{display:none}summary.rps-stop-row:hover{background:#7f7f7f0a}summary.rps-stop-row:focus-visible{outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:-2px}.rps-stop-name{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rps-stop-right{align-items:center;display:flex;flex:none;gap:10px;margin-left:auto}.rps-notebadge{font-feature-settings:"tnum";align-items:center;color:#6b7280;color:var(--text-muted,#6b7280);display:inline-flex;font-size:11.5px;font-variant-numeric:tabular-nums;gap:3px}.rps-notebadge svg{height:11px;width:11px}.rps-pill{border-radius:999px;font-size:11px;font-weight:700;padding:3px 9px;white-space:nowrap}.rps-pill-issue{background:var(--rp-issue-tint);color:var(--rp-issue)}.rps-pill-bad{background:var(--rp-bad-tint);color:var(--rp-bad)}.rps-pill-pend{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);color:#4b5563;color:var(--text-secondary,#4b5563)}.dark-mode .rps-pill-pend{background:#ffffff14}.rps-stamp{font-feature-settings:"tnum";color:#6b7280;color:var(--text-muted,#6b7280);font-size:12px;font-variant-numeric:tabular-nums}.rps-stamp b{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-weight:650}.rps-stop-detail{display:flex;flex-direction:column;gap:9px;padding:2px 13px 13px 31px}.rps-note{align-items:flex-start;display:flex;gap:9px}.rps-note-tag{background:#f3f4f6;background:var(--bg-secondary,#f3f4f6);border-radius:6px;color:#4b5563;color:var(--text-secondary,#4b5563);flex:none;font-size:10px;font-weight:700;letter-spacing:.03em;margin-top:1px;padding:3px 7px;text-transform:uppercase}.dark-mode .rps-note-tag{background:#ffffff14}.rps-note-tag.issue{background:var(--rp-issue-tint);color:var(--rp-issue)}.rps-note-body{display:flex;flex-direction:column;gap:2px;min-width:0}.rps-note-text{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:13px;line-height:1.5}.rps-note-when{color:#6b7280;color:var(--text-muted,#6b7280);font-size:11.5px}.rps-detail-meta,.rps-detail-muted{color:#6b7280;color:var(--text-muted,#6b7280);font-size:12.5px;margin:0}.rps-thumbs{display:flex;flex-wrap:wrap;gap:8px}.rps-thumb{background:none;border:1px solid #e5e7eb;border:1px solid var(--border,#e5e7eb);border-radius:8px;cursor:pointer;display:block;height:58px;overflow:hidden;padding:0;transition:border-color .15s ease;width:58px}.dark-mode .rps-thumb{border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.rps-thumb img{display:block;height:100%;object-fit:cover;width:100%}.rps-thumb:hover{border-color:#0071e3;border-color:var(--accent,#0071e3)}.rps-thumb:focus-visible{outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:2px}.rps-showmore{-webkit-appearance:none;appearance:none;background:#fff;background:var(--surface,#fff);border:0;border-top:1px solid #e5e7eb;border-top:1px solid var(--border,#e5e7eb);color:#4b5563;color:var(--text-secondary,#4b5563);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;padding:10px;width:100%}.dark-mode .rps-showmore{background:#1a1a1a;background:var(--bg-card,#1a1a1a);border-color:#2d2d2d;border-color:var(--border-color,#2d2d2d)}.rps-showmore:hover{color:#1a1a1a;color:var(--text-primary,#1a1a1a)}.rps-showmore:focus-visible{outline:2px solid #0071e3;outline:2px solid var(--accent,#0071e3);outline-offset:-2px}.rps-skeleton{display:flex;flex-direction:column;gap:10px}.rps-skeleton-block{background:#e5e7eb;background:var(--bg-secondary,#e5e7eb);border-radius:8px;display:inline-block;overflow:hidden;position:relative}.dark-mode .rps-skeleton-block{background:#ffffff14}.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%)}.dark-mode .rps-skeleton-block:after{background:linear-gradient(90deg,#fff0,#ffffff1f 50%,#fff0)}.rps-skeleton-agg{border-radius:10px;height:46px;width:100%}.rps-skeleton-route{border-radius:11px;height:44px;width:100%}@keyframes rps-skeleton-shimmer{to{transform:translateX(100%)}}@media (prefers-reduced-motion:reduce){.rps-skeleton-block:after{animation:none}}@media (max-width:640px){.rps-minibar{width:64px}.rps-route-name,.rps-stop-name{max-width:46vw}}.react-calendar{background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em;max-width:100%;width:350px}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{margin:.5em;width:50%}.react-calendar,.react-calendar *,.react-calendar :after,.react-calendar :before{box-sizing:border-box}.react-calendar button{border:0;margin:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{background:none;min-width:44px}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:focus,.react-calendar__navigation button:enabled:hover{background-color:#e6e6e6}.react-calendar__month-view__weekdays{font:inherit;font-size:.75em;font-weight:700;text-align:center;text-transform:uppercase}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{align-items:center;display:flex;font:inherit;font-size:.75em;font-weight:700;justify-content:center}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__century-view__decades__decade--neighboringCentury,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__month-view__days__day--neighboringMonth{color:#757575}.react-calendar__century-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__year-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{background:none;line-height:16px;font:inherit;font-size:.833em;max-width:100%;padding:10px 6.6667px;text-align:center}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__century-view__decades__decade--neighboringCentury:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__month-view__days__day--neighboringMonth:disabled{color:#cdcdcd}.react-calendar__tile:enabled:focus,.react-calendar__tile:enabled:hover{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:focus,.react-calendar__tile--now:enabled:hover{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:focus,.react-calendar__tile--hasActive:enabled:hover{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:focus,.react-calendar__tile--active:enabled:hover{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}.employee-sessions-panel{background:var(--bg-card);border:1px solid var(--border-color);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:var(--text-primary);cursor:pointer;display:inline-flex;font-family:inherit;gap:8px;padding:0}.esp-toggle svg{color:var(--text-secondary);height:12px;width:12px}.esp-toggle-label{font-size:14px;font-weight:600}.esp-empty{color:var(--text-secondary);font-size:13px}.esp-employees{display:flex;flex-direction:column;gap:6px}.esp-employee{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px}.esp-employee.open{background:var(--bg-hover)}.esp-employee-header{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;gap:10px;padding:10px 12px;text-align:left;width:100%}.esp-employee-header svg{color:var(--text-secondary);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:var(--bg-hover);border-radius:10px;color:var(--text-secondary);flex:0 0 auto;font-size:11px;padding:2px 8px}.esp-employee.open .esp-employee-count{background:var(--bg-card)}.esp-sessions{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;padding:8px 12px 12px}.esp-session-row{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);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{align-items:center;color:var(--text-primary);display:flex;font-size:13px;font-weight:600;gap:6px;min-width:0}.esp-session-route-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esp-session-meta{align-items:center;color:var(--text-secondary);display:inline-flex;flex-wrap:wrap;font-size:12px;gap:6px}.esp-dot{color:var(--text-muted)}.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-credit{gap:4px}.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:var(--text-secondary)}.esp-load-more{align-self:center;-webkit-appearance:none;appearance:none;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;font-size:12px;font-weight:500;margin-top:4px;padding:8px 12px}.esp-load-more:hover{background:var(--bg-hover)}.esp-empty-row,.esp-error,.esp-loading{color:var(--text-secondary);font-size:12px;padding:6px 10px}.esp-error{color:#b91c1c}.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-error{color:#fca5a5}.esp-toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;row-gap:8px}.esp-seg{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;gap:2px;height:34px;margin-right:4px;padding:3px}.esp-seg,.esp-seg-btn{box-sizing:border-box;display:inline-flex}.esp-seg-btn{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;border-radius:12px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;height:100%;min-height:0;min-width:0;padding:0 11px;transition:background .15s ease,color .15s ease;white-space:nowrap}.esp-seg-btn:hover{color:var(--text-primary)}.esp-seg-btn.active{background:#0071e31a;color:var(--accent)}.dark-mode .esp-seg-btn.active{background:#2997ff29}.esp-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:180px;padding:0 26px 0 12px;transition:border-color .15s ease;width:auto}.esp-select:hover{border-color:var(--border-hover)}.esp-select:focus{border-color:var(--accent);box-shadow:none;outline:none}.esp-export{align-items:center;-webkit-appearance:none;appearance:none;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;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:34px;margin-left:auto;min-height:0;min-width:0;padding:0 13px;transition:border-color .15s ease,color .15s ease;white-space:nowrap}.esp-export svg{height:11px;width:11px}.esp-export:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.esp-export:disabled{cursor:default;opacity:.6}.esp-note{background:var(--bg-hover);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:11px;margin-bottom:8px;padding:8px 10px}.esp-days{display:flex;flex-direction:column;gap:6px}.esp-day{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px}.esp-day.open{background:var(--bg-hover)}.esp-day-header{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;gap:10px;padding:10px 12px;text-align:left;width:100%}.esp-day-header svg{color:var(--text-secondary);flex:0 0 auto;height:11px;width:11px}.esp-day-date{flex:0 0 auto;font-size:13px;font-weight:600}.esp-day-meta{align-items:center;color:var(--text-secondary);display:flex;flex:1 1 auto;font-size:11px;gap:6px}.esp-day-crew{border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:6px;padding:8px 12px 12px}.esp-crew{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px}.esp-crew-header{align-items:center;-webkit-appearance:none;appearance:none;background:#0000;border:0;color:var(--text-primary);cursor:pointer;display:flex;font-family:inherit;gap:8px;padding:8px 10px;text-align:left;width:100%}.esp-crew-header svg{color:var(--text-secondary);flex:0 0 auto;height:10px;width:10px}.esp-crew-name{flex:0 1 auto;font-size:12px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.esp-crew-meta{align-items:center;color:var(--text-secondary);display:flex;flex:1 1 auto;font-size:11px;gap:6px}.esp-crew .esp-sessions{padding:6px 10px 10px}.esp-range{display:inline-flex;flex-shrink:0;position:relative}.esp-range.open{z-index:100}.esp-range-chip{align-items:center;-webkit-appearance:none;appearance:none;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;font-family:inherit;font-size:13px;font-weight:500;gap:6px;height:34px;line-height:1;min-height:0;min-width:0;padding:0 13px;transition:border-color .15s ease,color .15s ease;white-space:nowrap}.esp-range-chip svg{height:11px;width:11px}.esp-range-chip:hover{border-color:var(--border-hover);color:var(--text-primary)}.esp-range-chip.active,.esp-range.open .esp-range-chip{background:#0071e31a;border-color:var(--accent);color:var(--accent)}.dark-mode .esp-range-chip.active,.dark-mode .esp-range.open .esp-range-chip{background:#2997ff29}.esp-range-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.esp-range-pop{background:var(--bg-card);border:1px solid var(--border-color);border-radius:14px;box-shadow:0 8px 24px #0000001f;left:0;max-width:calc(100vw - 24px);padding:10px;position:absolute;top:calc(100% + 8px);width:300px;z-index:100}.dark-mode .esp-range-pop{box-shadow:0 8px 24px #00000080}.esp-range-foot{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:8px 2px 0}.esp-range-hint,.esp-range-reset{color:var(--text-secondary);font-size:12px}.esp-range-reset{-webkit-appearance:none;appearance:none;background:#0000;border:1px solid var(--border-color);border-radius:14px;box-sizing:border-box;cursor:pointer;font-family:inherit;font-weight:500;height:28px;min-height:0;min-width:0;padding:0 10px;white-space:nowrap}.esp-range-reset:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.esp-range-reset:disabled{cursor:default;opacity:.5}.esp-range-pop .react-calendar{background:#0000;border:0;color:var(--text-primary);font-family:inherit;line-height:1.2;width:100%}.esp-range-pop .react-calendar__navigation{height:32px;margin-bottom:4px}.esp-range-pop .react-calendar__navigation button{border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:13px;font-weight:600;min-height:0;min-width:32px}.esp-range-pop .react-calendar__navigation button:enabled:focus,.esp-range-pop .react-calendar__navigation button:enabled:hover{background:#0071e314}.esp-range-pop .react-calendar__navigation button:disabled{background:#0000;color:var(--text-secondary);opacity:.4}.esp-range-pop .react-calendar__month-view__weekdays{color:var(--text-secondary);font-size:10px;font-weight:600}.esp-range-pop .react-calendar__month-view__weekdays abbr{text-decoration:none}.esp-range-pop .react-calendar__tile{border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:12px;height:34px;min-height:0;min-width:0;padding:0}.esp-range-pop .react-calendar__month-view__days__day--neighboringMonth{color:var(--text-secondary);opacity:.5}.esp-range-pop .react-calendar__tile:disabled{background:#0000;color:var(--text-secondary);opacity:.35}.esp-range-pop .react-calendar__tile:enabled:focus,.esp-range-pop .react-calendar__tile:enabled:hover{background:#0071e31a}.esp-range-pop .react-calendar__tile--now{background:#0000;font-weight:700}.esp-range-pop .react-calendar__tile--active,.esp-range-pop .react-calendar__tile--active:enabled:focus,.esp-range-pop .react-calendar__tile--active:enabled:hover,.esp-range-pop .react-calendar__tile--hover{background:#0071e324;border-radius:0;color:var(--accent)}.esp-range-pop .react-calendar__tile--hoverStart,.esp-range-pop .react-calendar__tile--rangeStart{border-radius:8px 0 0 8px}.esp-range-pop .react-calendar__tile--hoverEnd,.esp-range-pop .react-calendar__tile--rangeEnd{border-radius:0 8px 8px 0}.esp-range-pop .react-calendar__tile--hoverBothEnds,.esp-range-pop .react-calendar__tile--rangeBothEnds{border-radius:8px}.esp-range-pop .react-calendar__tile--rangeEnd,.esp-range-pop .react-calendar__tile--rangeEnd:enabled:hover,.esp-range-pop .react-calendar__tile--rangeStart,.esp-range-pop .react-calendar__tile--rangeStart:enabled:hover{background:var(--accent);color:#fff}.dark-mode .esp-range-pop .react-calendar__tile--active,.dark-mode .esp-range-pop .react-calendar__tile--hover{background:#2997ff33}.dark-mode .esp-range-pop .react-calendar__tile--rangeEnd,.dark-mode .esp-range-pop .react-calendar__tile--rangeEnd:enabled:hover,.dark-mode .esp-range-pop .react-calendar__tile--rangeStart,.dark-mode .esp-range-pop .react-calendar__tile--rangeStart:enabled:hover{background:var(--accent);color:#fff}@media screen and (min-width:900px){.esp-export,.esp-range-chip,.esp-seg,.esp-select{height:30px}.esp-export,.esp-range-chip,.esp-seg-btn{font-size:12px}.esp-select{font-size:12px!important}.esp-export,.esp-range-chip,.esp-seg-btn{padding:0 10px}}.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.up{bottom:calc(100% + 4px);top:auto}.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}.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}.route-dropdown-menu.inline{box-shadow:none;margin-top:4px;position:static}.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-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}.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{align-items:center;display:inline-flex;flex:0 0 auto;font-size:13px;gap:6px;justify-content:center;min-width:96px;padding:8px 18px;white-space:nowrap}.editor-actions .btn-primary.is-saved{background:#059669;border-color:#059669;color:#fff}.dark-mode .editor-actions .btn-primary.is-saved{background:#10b981;border-color:#10b981;color:#06281f}.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}.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{height:100%;position:relative;width:100%}.editor-source-choice{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:6px}.editor-source-btn{background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;gap:3px;min-height:0;min-width:0;padding:10px 12px;text-align:left;transition:background .12s ease,border-color .12s ease}.editor-source-btn.active{background:#2563eb17;border-color:#2563eb8c}.editor-source-title{color:var(--text-primary);font-size:13.5px;font-weight:600}.editor-source-help{color:var(--text-muted);font-size:11.5px;line-height:1.35}.editor-source-note{color:var(--text-muted);font-size:12px;line-height:1.4;margin-top:8px}.pending-task-block{display:flex;flex-direction:column;gap:10px}.pending-task-list{background:var(--border-color);border:1px solid var(--border-color);border-radius:9px;display:flex;flex-direction:column;gap:1px;list-style:none;margin:0;overflow:hidden;padding:0}.pending-task-row{background:var(--bg-card)}.pending-task-row.open{background:var(--bg-input)}.pending-task-line{align-items:center;display:flex;gap:6px}.pending-task-toggle{align-items:center;background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:flex;flex:1 1;font:inherit;font-size:13.5px;gap:8px;height:34px;min-height:0;min-width:0;padding:0 4px 0 10px;text-align:left}.pending-task-toggle:hover{background:var(--bg-input)}.pending-task-chev{color:var(--text-muted);flex:none;height:10px;transition:transform .15s ease;width:10px}.pending-task-chev.open{transform:rotate(180deg)}.pending-task-address{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-task-detail{display:flex;flex-direction:column;gap:7px;padding:2px 12px 10px 28px}.pending-task-note-entry{display:flex;flex-direction:column;gap:1px}.pending-task-note{color:var(--text-secondary);font-size:12.5px}.pending-task-meta{color:var(--text-muted);font-size:11.5px}.pending-task-pager{align-items:center;display:flex;gap:8px}.pending-task-pager-count{font-feature-settings:"tnum";color:var(--text-muted);font-size:12px;font-variant-numeric:tabular-nums;margin-right:auto}.pending-task-pager-btn{font-size:12.5px;height:28px;min-height:0;padding:0 11px}.pending-task-remove{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-muted);cursor:pointer;display:inline-flex;flex:none;height:30px;justify-content:center;margin-right:4px;min-height:0;min-width:0;padding:0;transition:background-color .15s ease,color .15s ease;width:30px}.pending-task-remove:hover{background:#ff3b3024;color:var(--danger)}.pending-task-remove svg{height:12px;width:12px}@media (max-width:520px){.editor-source-choice{grid-template-columns:1fr}}.route-row .badge.badge-warn{background:#b4530924;border-color:#b4530973;color:#b45309}.route-kind-tag{align-items:center;background:#2563eb1f;border:1px solid #2563eb66;border-radius:999px;color:#2563eb;display:inline-flex;flex:none;font-size:11px;font-weight:600;letter-spacing:.01em;padding:2px 8px}.rm-tabs{border-bottom:1px solid var(--border-color);display:flex;gap:2px;margin:4px 0 0}.rm-tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:var(--text-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:600;gap:7px;height:38px;margin-bottom:-1px;min-height:0;min-width:0;padding:0 14px;transition:color .12s ease,border-color .12s ease}.rm-tab:hover{color:var(--text-secondary)}.rm-tab.active{border-bottom-color:#2563eb;color:var(--text-primary)}.rm-tab-count{font-feature-settings:"tnum";background:var(--bg-input);border:1px solid var(--border-color);border-radius:999px;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums;padding:1px 6px}.rm-tab.active .rm-tab-count{background:#2563eb21;border-color:#2563eb66;color:#2563eb}.rm-tablewrap{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;overflow-x:auto;position:relative}.rm-table{border-collapse:collapse;font-size:13.5px;min-width:680px;width:100%}.rm-table th:first-child{width:40%}.rm-table th:nth-child(2){width:24%}.rm-table th:nth-child(3){width:36%}.rm-table td,.rm-table th{border-bottom:1px solid var(--border-color);padding:9px 10px;text-align:left;white-space:nowrap}.rm-table thead th{background:var(--bg-input);color:var(--text-muted);font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.rm-table tbody tr:last-child td{border-bottom:none}.rm-row{cursor:pointer}.rm-row.open>td,.rm-row:hover>td{background:var(--bg-input)}.rm-row.inactive .rm-name-text{color:var(--text-muted)}.rm-name{align-items:center;display:flex;flex-wrap:wrap;gap:7px}.rm-name-text{color:var(--text-primary);font-weight:600}.rm-color-swatch{border-radius:3px;box-shadow:0 0 0 1px #0f172a1f;display:inline-block;flex:none;height:10px;width:10px}.rm-dim{color:var(--text-secondary)}.rm-warn-text{color:#b45309;color:var(--warning,#b45309)}.rm-waiting-note{color:var(--text-secondary);font-size:12.5px}.rm-acts{text-align:right;width:34px}.rm-chev{color:var(--text-muted);transition:transform .15s ease}.rm-chev.open{transform:rotate(180deg)}.rm-sub>td{background:var(--bg-input);padding:0;white-space:normal}.rm-detail{align-items:stretch;display:grid;grid-template-columns:190px minmax(0,1fr) 330px}.rm-detail.queue{grid-template-columns:320px minmax(0,1fr) 330px}.rm-detail-side{border-right:1px solid var(--border-color);display:flex;flex-direction:column;min-width:0;padding:12px 12px 14px}.rm-rail-label{color:var(--text-muted);font-size:11px;letter-spacing:.06em;padding:0 6px 8px;text-transform:uppercase}.rm-rail{display:flex;flex-direction:column;gap:5px}.rm-railday{align-items:center;background:var(--bg-card);border:1px solid var(--border-color);border-radius:7px;color:var(--text-secondary);cursor:pointer;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:8px;height:36px;justify-content:space-between;min-height:0;padding:0 10px;text-align:left;transition:background .12s ease,color .12s ease,border-color .12s ease;width:100%}.rm-railday:hover{background:#2563eb17;border-color:#2563eb6b;color:#2563eb}.rm-railday:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}.rm-railday.selected{background:#2563eb;border-color:#2563eb;color:#fff}.rm-railday-count{font-feature-settings:"tnum";align-items:center;color:var(--text-muted);display:inline-flex;font-variant-numeric:tabular-nums;gap:5px}.rm-railday.selected .rm-railday-count{color:#fff}.rm-railday-flag{background:#b45309;background:var(--warning,#b45309);border-radius:50%;height:5px;width:5px}.rm-railday.selected .rm-railday-flag{background:#fff}.rm-rail-total{border-top:1px solid var(--border-color);color:var(--text-muted);font-size:12px;margin:auto 0 0;padding-top:10px}.rm-rail-total strong{font-feature-settings:"tnum";color:var(--text-primary);font-variant-numeric:tabular-nums}.rm-detail-map{display:flex;flex-direction:column;gap:9px;min-width:0;padding:12px 14px 14px}.rm-detail-map-head{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.rm-detail-day{color:var(--text-primary);font-size:14px;font-weight:700}.rm-detail-day-sub{font-feature-settings:"tnum";color:var(--text-muted);font-size:12.5px;font-variant-numeric:tabular-nums;font-weight:500;margin-left:8px}.rm-detail-map-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.rm-detail-map-actions .optimize-status{padding:0}.rm-calc-btn{align-items:center;display:inline-flex;font-size:12.5px;gap:6px;height:30px;min-height:0;padding:0 12px}.rm-calc-btn.is-stale{border:1px solid #f59e0b;box-shadow:0 0 0 3px #f59e0b2e}.rm-calc-btn.is-stale:hover:not(:disabled){box-shadow:0 0 0 4px #f59e0b40}.rm-detail-map-canvas{border:1px solid var(--border-color);border-radius:8px;flex:1 1;min-height:442px;overflow:hidden;position:relative}.rm-detail-form{border-left:1px solid var(--border-color);display:flex;flex-direction:column;gap:11px;min-width:0;padding:12px 16px 16px}.rm-detail-form-title{color:var(--text-muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.rm-detail-form .editor-actions{border-top:1px solid var(--border-color);margin-top:auto;padding-top:12px}.rm-delete-btn{margin-left:auto}.rm-tablewrap,.routes-manage-body,.routes-manage-list{min-width:0}@media (max-width:1180px){.rm-detail,.rm-detail.queue{grid-template-columns:190px minmax(0,1fr)}.rm-detail-form{border-left:none;border-top:1px solid var(--border-color);grid-column:1/-1}}@media (max-width:760px){.rm-detail,.rm-detail.queue{grid-template-columns:1fr}.rm-detail-side{border-bottom:1px solid var(--border-color);border-right:none}.rm-rail-total{margin-top:10px}.rm-detail-map-canvas{min-height:338px}.rm-table{min-width:0}.rm-table td,.rm-table th{white-space:normal}.rm-table th:first-child,.rm-table th:nth-child(2),.rm-table th:nth-child(3){width:auto}}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@media (max-width:700px){.rm-tab{font-size:13.5px;padding:0 11px}}.editor-source-note-icon{opacity:.7;vertical-align:-1px}.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-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-main{display:flex;flex-direction:column;gap:2px;min-width:0}.session-route{align-items:center;display:flex;gap:6px;min-width:0}.session-route-name{color:#1f2937;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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,.dark-mode .session-route-name{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}}.route-card-title .route-card-icon--on-demand{color:#2563eb}.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;max-width:100%;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{display:block;height:28px;margin-bottom:10px;width:140px}.inv-skeleton-subtitle{display:block;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-unassigned-note{background-color:var(--bg-input);border-bottom:1px solid var(--border-color);line-height:1.5;margin:0;padding:10px 16px}.billing-empty,.billing-unassigned-note{color:var(--text-secondary);font-size:13px}.billing-empty{align-items:center;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);color:var(--text-secondary)}.billing-invoice-freq,.billing-invoice-owner{border-radius:5px;font-size:10.5px;padding:1px 6px}.billing-invoice-owner{background:#007aff1a;color:#0a66c2}.dark-mode .billing-invoice-owner{color:#64b5f6}.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;max-width:100%;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{display:block;height:24px;margin-bottom:8px;width:140px}.bl-skeleton-subtitle{display:block;height:14px;margin-bottom:18px;width:280px}.bl-skeleton-banner{border-radius:10px;display:block;height:44px;margin-bottom:16px;width:100%}.bl-skeleton-kpi-label{display:block;height:12px;margin-bottom:8px;width:120px}.bl-skeleton-kpi-value{display:block;height:26px;margin-bottom:6px;width:80px}.bl-skeleton-kpi-sub{display:block;height:12px;width:100px}.bl-skeleton-period-tabs{border-radius:10px;height:35px;width:350px}.bl-skeleton-period-range{height:13px;margin-left:auto;width:150px}.bl-skeleton-tab{height:15px;margin:11px 24px 11px 0;width:92px}.bl-skeleton-section-title{display:block;height:16px;margin-bottom:6px;width:130px}.bl-skeleton-section-sub{display:block;height:12px;width:220px}.bl-skeleton-inv-num{display:block;height:15px;margin-bottom:6px;width:120px}.bl-skeleton-inv-meta{display:block;height:12px;width:200px}.bl-skeleton-inv-total{flex-shrink:0;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-list{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:16px 22px 4px}.common-notes-row{align-items:center;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-wrap:wrap;gap:8px 10px;line-height:1.3;padding:8px 8px 8px 12px}.common-notes-row.is-route-note{background:#2563eb14;border-color:#2563eb6b}.common-notes-text{align-items:center;color:var(--text-primary);display:inline-flex;flex:1 1 auto;font-size:13.5px;gap:7px;min-width:0}.common-notes-route-icon{color:#2563eb;flex:none;height:12px;width:12px}.common-notes-route-toggle{align-items:center;background:#0000;border:none;color:var(--text-muted);cursor:pointer;display:inline-flex;flex:none;font-size:12px;gap:7px;height:26px;min-height:0;min-width:0;padding:0 4px}.common-notes-route-toggle:disabled{cursor:not-allowed;opacity:.45}.common-notes-route-toggle.active{color:#2563eb}.common-notes-route-toggle .settings-toggle-track{background:var(--border-color);border-radius:9px;display:inline-block;flex:none;height:18px;position:relative;transition:background-color .15s ease;width:32px}.common-notes-route-toggle.active .settings-toggle-track{background:#2563eb}.common-notes-route-toggle .toggle-knob{background:#fff;border-radius:50%;height:14px;left:2px;position:absolute;top:2px;transition:transform .15s ease;width:14px}.common-notes-route-toggle.active .toggle-knob{transform:translateX(14px)}.common-notes-hint{color:var(--text-muted);font-size:12px;padding:10px 22px 0}@media (max-width:520px){.common-notes-route-label{display:none}}.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}@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}}.common-notes-crew{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-basis:100%;flex-wrap:wrap;gap:8px;margin-top:2px;padding-top:6px}.common-notes-crew-label{color:var(--text-muted);font-size:12px}.common-notes-crew .route-dropdown{flex:1 1;max-width:320px;min-width:160px}.common-notes-inherit{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px;padding:14px 22px 0}.common-notes-inherit-help{color:var(--text-muted);font-size:12px}.app-shell-skeleton{background:var(--bg-primary);inset:0;overflow:hidden;pointer-events:none;position:fixed;-webkit-user-select:none;user-select:none;z-index:200}.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}.dark-mode .auth-form-container{background:linear-gradient(180deg,#161a21 0,var(--bg-primary) 65%)}.auth-form-wrapper{animation:slideIn .3s ease-out;box-sizing:border-box;max-width:360px;padding:0 8px;width:100%}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.auth-form-wrapper h2{font-weight:400;margin:0 0 40px}.auth-form-wrapper .subtitle,.auth-form-wrapper h2{color:var(--text-secondary);font-size:14px;text-align:center}.auth-form-wrapper .subtitle{margin-bottom:32px}.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-sketch{margin:0 auto 24px}.auth-logo{margin-bottom:10px;text-align:center}.auth-logo h1{color:var(--text-primary);font-size:34px;font-weight:700;letter-spacing:-.5px;line-height:1;margin:0}.auth-logo span{color:var(--accent)}@media (max-width:480px){.auth-form-wrapper{display:flex;flex-direction:column;justify-content:center;max-width:none;min-height:100dvh;padding:0 28px}.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}}