body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.active-call-overlay{align-items:center;background:#0000;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:999999}.active-call-container{background:#fff;border-radius:24px;box-shadow:0 20px 60px #0006;min-width:400px;padding:0;pointer-events:auto;position:relative;text-align:center;-webkit-user-select:none;user-select:none}.call-header{align-items:center;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:24px 24px 0 0;color:#fff;display:flex;justify-content:space-between;padding:16px 24px}.call-header-title{font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.call-header-drag{cursor:grab;-webkit-user-select:none;user-select:none}.call-header-drag:active{cursor:grabbing}.minimize-btn{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:700;height:32px;justify-content:center;transition:all .2s;width:32px}.minimize-btn:hover{background:#ffffff4d;transform:scale(1.05)}.active-call-icon{animation:pulse 2s ease-in-out infinite;font-size:80px;margin:40px 0 20px}.active-call-container h2{color:#666;font-size:20px;font-size:14px;font-weight:600;letter-spacing:1px;margin-bottom:12px;text-transform:uppercase}.active-call-number{color:#4caf50;font-family:monospace;font-size:32px;font-weight:700;margin-bottom:16px}.call-duration{color:#333;font-family:Segoe UI,sans-serif;font-size:48px;font-weight:300;letter-spacing:2px;margin-bottom:40px}.call-controls{display:flex;gap:16px;justify-content:center;margin:32px 0;padding:0 48px 40px}.control-btn{align-items:center;background:#f5f5f5;border:2px solid #0000;border-radius:16px;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-width:100px;padding:20px;transition:all .2s}.control-btn:hover{background:#e8e8e8;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.control-btn.active{background:#4caf50;border-color:#4caf50}.control-btn.active .control-icon,.control-btn.active .control-label{color:#fff}.control-icon{font-size:32px}.control-label{color:#666;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.end-call-btn{background:#f44336;border-color:#f44336}.end-call-btn .control-label{color:#fff}.end-call-btn:hover{background:#d32f2f;border-color:#d32f2f}.hold-indicator{animation:fadeIn .3s ease-in;background:#ff9800;border-radius:8px;color:#fff;font-size:14px;font-weight:600;margin-top:20px;padding:12px 20px}.active-call-minimized{animation:slideInFromLeft .3s ease-out;background:linear-gradient(135deg,#4caf50,#45a049);border-radius:16px;bottom:20px;box-shadow:0 8px 24px #4caf5066;cursor:pointer;left:20px;padding:16px 24px;pointer-events:auto;position:fixed;transition:all .3s;z-index:999999}.active-call-minimized:hover{box-shadow:0 12px 32px #4caf5080;transform:scale(1.05)}.minimized-content{align-items:center;display:flex;gap:12px}.minimized-icon{animation:pulse 2s ease-in-out infinite;font-size:24px}.minimized-info{color:#fff}.minimized-status{font-size:12px;font-weight:600;letter-spacing:.5px;opacity:.9;text-transform:uppercase}.minimized-duration{font-family:monospace;font-size:18px;font-weight:700}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-100px)}to{opacity:1;transform:translateX(0)}}body.dark-mode .active-call-container{background:#2d2d2d;color:#fff}body.dark-mode .active-call-container h2{color:#aaa}body.dark-mode .call-duration{color:#fff}body.dark-mode .control-btn{background:#3d3d3d;border-color:#3d3d3d}body.dark-mode .control-btn:hover{background:#4d4d4d}body.dark-mode .control-label{color:#aaa}body.dark-mode .minimize-btn{background:#3d3d3d;color:#aaa}body.dark-mode .minimize-btn:hover{background:#4d4d4d}@media (max-width:480px){.active-call-container{min-width:auto;padding:32px 24px;width:90%}.call-controls{flex-direction:row;flex-wrap:wrap}.control-btn{min-width:80px;padding:16px}.control-icon{font-size:28px}.control-label{font-size:11px}.active-call-minimized{bottom:12px;left:12px;padding:12px 16px}}.toast{align-items:center;animation:slideInRight .3s ease-out,fadeIn .3s ease-out;background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 8px 24px #00000026;display:flex;gap:12px;max-width:500px;min-width:300px;padding:16px 20px;position:fixed;right:20px;top:20px;z-index:10000}.toast.removing{animation:slideOutRight .3s ease-out,fadeOut .3s ease-out}@keyframes slideOutRight{0%{transform:translateX(0)}to{transform:translateX(400px)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.toast-icon{align-items:center;border-radius:50%;display:flex;flex-shrink:0;font-size:18px;font-weight:700;height:32px;justify-content:center;width:32px}.toast-success .toast-icon{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.toast-error .toast-icon{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.toast-warning{border-left-color:#f59e0b}.toast-warning .toast-icon{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.toast-info{border-left-color:#3b82f6}.toast-info .toast-icon{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.toast-message{color:#1e293b;flex:1 1;font-size:15px;font-weight:500;line-height:1.4}.toast-close{background:#0000;color:#94a3b8;flex-shrink:0;line-height:1}.toast-close:hover{background:#f1f5f9;color:#64748b}.toast-container{display:flex;flex-direction:column;gap:12px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.toast-container .toast{pointer-events:all}body.dark-mode .toast{background:#1e293b;box-shadow:0 8px 24px #0006}body.dark-mode .toast-message{color:#e2e8f0}body.dark-mode .toast-close{color:#64748b}body.dark-mode .toast-close:hover{background:#334155;color:#94a3b8}@media (max-width:768px){.toast{max-width:none;min-width:auto}.toast,.toast-container{left:10px;right:10px;top:10px}@keyframes slideInRight{0%{opacity:0;transform:translateY(-100px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100px)}}}.incoming-call-overlay{align-items:center;animation:fadeIn .3s ease;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:999999}.incoming-call-container{animation:slideUp .3s ease;background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000004d;padding:40px;text-align:center}.incoming-call-icon{animation:pulse 1.5s ease-in-out infinite;font-size:80px;margin-bottom:20px}.incoming-call-title{color:#333;font-size:24px;font-weight:600;margin-bottom:12px}.incoming-call-number{color:#2196f3;font-size:32px;font-weight:700;margin-bottom:20px}.incoming-call-time{color:#666;font-size:18px;margin-bottom:30px}.incoming-call-actions{display:flex;gap:16px;justify-content:center}.incoming-call-btn{border:none;border-radius:12px;cursor:pointer;font-size:18px;font-weight:600;min-width:140px;padding:16px 32px;transition:all .2s}.reject-btn{background:#f44336;color:#fff}.reject-btn:hover{background:#d32f2f;transform:scale(1.05)}.accept-btn{background:#4caf50;color:#fff}.accept-btn:hover{background:#45a049;transform:scale(1.05)}body.dark-mode .incoming-call-container{background:#2d2d2d;color:#fff}body.dark-mode .incoming-call-title{color:#fff}@media (max-width:480px){.incoming-call-container{margin:20px;padding:30px 20px}.incoming-call-icon{font-size:60px}.incoming-call-number{font-size:24px}.incoming-call-btn{font-size:16px;min-width:120px;padding:12px 24px}}.login-container{align-items:center;background:linear-gradient(135deg,#0052cc,#003d99);display:flex;justify-content:center;min-height:100vh}.login-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:420px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-logo{display:block;height:auto;margin-bottom:20px;margin-left:auto;margin-right:auto;max-width:200px;width:100%}.login-header h1{color:#0052cc;font-size:28px;margin:0 0 8px}.login-header p{color:#666;font-size:14px;margin:0}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#333}.form-group input{border:1px solid #ddd;border-radius:6px;font-size:14px;padding:12px;transition:border-color .3s}.form-group input:focus{border-color:#0052cc;outline:none}.role-selector{display:flex;gap:8px}.role-btn{background:#fff;border:2px solid #ddd;border-radius:6px;color:#666;cursor:pointer;flex:1 1;font-weight:600;padding:12px;transition:all .3s}.role-btn:hover{border-color:#0052cc;color:#0052cc}.role-btn.active{background:#0052cc;border-color:#0052cc;color:#fff}.error-message{background:#fee;border-radius:6px;color:#c33;text-align:center}.login-btn{background:#0052cc;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:background .3s}.login-btn:hover:not(:disabled){background:#003d99}.login-btn:disabled{cursor:not-allowed;opacity:.6}.demo-credentials{color:#999;font-size:12px;text-align:center}@media (max-width:768px){.login-container{padding:20px}.login-box{margin:0;padding:24px}.login-logo{margin-bottom:16px;max-width:150px}.login-header h1{font-size:24px}.login-header p,.role-btn{font-size:13px}.role-btn{padding:10px 16px}.form-group label{font-size:13px}.form-group input{font-size:14px}.login-btn{font-size:15px}}.app-header{background:#fff;border-bottom:1px solid #e5e7eb;height:64px;justify-content:space-between;padding:0 24px 0 0;position:-webkit-sticky;position:sticky;top:0;transition:all .2s ease;z-index:80}.app-header,.header-left{align-items:center;display:flex}.header-left{flex:1 1;gap:16px;min-width:0}.mobile-menu-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#374151;cursor:pointer;display:none;flex-shrink:0;height:40px;justify-content:center;transition:all .2s ease;width:40px}.mobile-menu-btn:hover{background:#f3f4f6;color:#111827}.mobile-menu-btn:active{background:#e5e7eb}.header-title-wrapper{display:flex;flex-direction:column;min-width:0;padding-left:24px}.header-title{color:#111827;font-size:18px;font-weight:600;letter-spacing:-.02em}.header-subtitle,.header-title{line-height:1.4;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-subtitle{color:#6b7280;font-size:13px;font-weight:400}.header-right{gap:12px}.header-right,.icon-btn{align-items:center;display:flex;flex-shrink:0}.icon-btn{background:#0000;border:none;border-radius:8px;color:#6b7280;cursor:pointer;height:36px;justify-content:center;transition:all .2s ease;width:36px}.icon-btn:hover{background:#f3f4f6;color:#111827}.icon-btn:active{background:#e5e7eb}.user-menu{align-items:center;border-left:1px solid #e5e7eb;display:flex;gap:12px;padding-left:12px}.user-info{align-items:flex-end;display:flex;flex-direction:column}.user-name{color:#111827;font-size:14px;font-weight:600;line-height:1.3}.user-role{color:#6b7280;font-size:12px;font-weight:400;line-height:1.3;text-transform:capitalize}.logout-btn{align-items:center;background:#111827;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease;white-space:nowrap}.logout-btn:hover{background:#1f2937;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.logout-btn:active{box-shadow:0 2px 6px #0000001a;transform:translateY(0)}.logout-btn svg{flex-shrink:0}body.dark-mode .app-header{background:#111827;border-bottom-color:#1f2937}body.dark-mode .mobile-menu-btn{color:#d1d5db}body.dark-mode .mobile-menu-btn:hover{background:#1f2937;color:#f9fafb}body.dark-mode .mobile-menu-btn:active{background:#374151}body.dark-mode .header-title{color:#f9fafb}body.dark-mode .header-subtitle,body.dark-mode .icon-btn{color:#9ca3af}body.dark-mode .icon-btn:hover{background:#1f2937;color:#f9fafb}body.dark-mode .icon-btn:active{background:#374151}body.dark-mode .user-menu{border-left-color:#1f2937}body.dark-mode .user-name{color:#f9fafb}body.dark-mode .user-role{color:#9ca3af}body.dark-mode .logout-btn{background:#f9fafb;color:#111827}body.dark-mode .logout-btn:hover{background:#e5e7eb}@media (max-width:1024px){.app-header{height:60px;padding:0 20px 0 0}.header-title-wrapper{padding-left:20px}.header-title{font-size:17px}.header-subtitle{font-size:12px}.user-info{display:none}.logout-btn{font-size:13px;padding:7px 12px}}@media (max-width:768px){.app-header{height:56px;padding:0 16px}.mobile-menu-btn{display:flex}.header-title-wrapper{padding-left:0}.header-title{font-size:16px}.header-subtitle{font-size:11px}.header-right{gap:8px}.user-menu{padding-left:8px}.logout-btn{gap:0;height:36px;justify-content:center;padding:8px;width:36px}.logout-text{display:none}.logout-btn svg{height:18px;width:18px}}@media (max-width:480px){.app-header{height:56px;padding:0 12px}.header-title{font-size:15px}.header-subtitle{display:none}.icon-btn{height:32px;width:32px}.icon-btn svg{height:18px;width:18px}}.app-sidebar{background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:width .3s cubic-bezier(.4,0,.2,1);width:260px;z-index:90}.app-sidebar.collapsed,.app-sidebar.collapsed:not(.hover-expanded){width:72px}@media (min-width:769px){.app-sidebar.collapsed.hover-expanded{box-shadow:4px 0 12px #00000026;width:260px;z-index:100}.app-sidebar.collapsed.hover-expanded .nav-item-label,.app-sidebar.collapsed.hover-expanded .sidebar-logo,.app-sidebar.collapsed.hover-expanded .sidebar-user-info{opacity:1;width:auto}.app-sidebar.collapsed.hover-expanded .sidebar-nav-item{justify-content:flex-start;padding:10px 12px}.app-sidebar.collapsed.hover-expanded .sidebar-user{justify-content:flex-start;padding:8px}.app-sidebar.collapsed.hover-expanded .sidebar-nav-item.active:before{display:block}.app-sidebar.collapsed:not(.hover-expanded):hover{box-shadow:4px 0 12px #00000026;width:260px;z-index:100}.app-sidebar.collapsed:not(.hover-expanded):hover .nav-item-label,.app-sidebar.collapsed:not(.hover-expanded):hover .sidebar-logo,.app-sidebar.collapsed:not(.hover-expanded):hover .sidebar-user-info{opacity:1;width:auto}.app-sidebar.collapsed:not(.hover-expanded):hover .sidebar-nav-item{justify-content:flex-start;padding:10px 12px}.app-sidebar.collapsed:not(.hover-expanded):hover .sidebar-user{justify-content:flex-start;padding:8px}.app-sidebar.collapsed:not(.hover-expanded):hover .sidebar-nav-item.active:before{display:block}}.sidebar-header{background:linear-gradient(135deg,#4285f4,#357ae8);border-bottom:1px solid #e5e7eb;height:64px;padding:0 20px}.sidebar-brand{align-items:center;display:flex;flex:1 1;min-width:0}.sidebar-logo{color:#fff;font-size:20px;font-weight:700;letter-spacing:2px;transition:opacity .2s ease;white-space:nowrap}.collapsed .sidebar-logo{opacity:0;overflow:hidden;width:0}.sidebar-header-actions{align-items:center;display:flex;gap:8px}.sidebar-collapse-btn{align-items:center;background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;display:none;flex-shrink:0;height:32px;justify-content:center;transition:all .2s ease;width:32px}.sidebar-collapse-btn:hover{background:#ffffff4d;color:#fff}.sidebar-close-btn{align-items:center;background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;display:none;height:32px;justify-content:center;transition:all .2s ease;width:32px}.sidebar-close-btn:hover{background:#ffffff4d;color:#fff}.sidebar-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:16px 12px}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#0000}.sidebar-nav::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#9ca3af}.sidebar-nav-item{align-items:center;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;margin-bottom:2px;overflow:hidden;padding:10px 12px;position:relative;text-decoration:none;transition:all .15s ease}.sidebar-nav-item:hover{background:#f3f4f6;color:#111827}.sidebar-nav-item.active{background:#eff6ff;color:#2563eb}.sidebar-nav-item.active:before{background:#2563eb;border-radius:0 2px 2px 0;content:"";height:20px;left:0;position:absolute;top:50%;transform:translateY(-50%);width:3px}.nav-item-icon{align-items:center;display:flex;flex-shrink:0;height:20px;justify-content:center;width:20px}.nav-item-label{overflow:hidden;text-overflow:ellipsis;transition:opacity .2s ease;white-space:nowrap}.collapsed .nav-item-label{opacity:0;width:0}.collapsed .sidebar-nav-item{justify-content:center;padding:10px}.collapsed .sidebar-nav-item.active:before{display:none}.sidebar-footer{border-top:1px solid #e5e7eb;flex-shrink:0;padding:16px 12px}.sidebar-user{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:8px;transition:all .2s ease}.sidebar-user:hover{background:#f3f4f6}.sidebar-user-avatar{align-items:center;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:36px;justify-content:center;width:36px}.sidebar-user-info{display:flex;flex:1 1;flex-direction:column;min-width:0;transition:opacity .2s ease}.collapsed .sidebar-user-info{opacity:0;overflow:hidden;width:0}.sidebar-user-name{color:#111827;font-size:14px;font-weight:600}.sidebar-user-name,.sidebar-user-role{line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{color:#6b7280;font-size:12px;text-transform:capitalize}.collapsed .sidebar-user{justify-content:center;padding:8px}.sidebar-backdrop{animation:fadeIn .2s ease;background:#00000080;bottom:0;display:none;left:0;position:fixed;right:0;top:0;z-index:85}body.dark-mode .app-sidebar{background:#111827;border-right-color:#1f2937}body.dark-mode .sidebar-header{background:linear-gradient(135deg,#1e3a8a,#2563eb)}body.dark-mode .sidebar-logo{color:#fff}body.dark-mode .sidebar-close-btn,body.dark-mode .sidebar-collapse-btn{background:#ffffff26;color:#fff}body.dark-mode .sidebar-close-btn:hover,body.dark-mode .sidebar-collapse-btn:hover{background:#ffffff40;color:#fff}body.dark-mode .sidebar-nav::-webkit-scrollbar-thumb{background:#374151}body.dark-mode .sidebar-nav::-webkit-scrollbar-thumb:hover{background:#4b5563}body.dark-mode .sidebar-nav-item{color:#9ca3af}body.dark-mode .sidebar-nav-item:hover{background:#1f2937;color:#f9fafb}body.dark-mode .sidebar-nav-item.active{background:#1e3a8a;color:#93c5fd}body.dark-mode .sidebar-nav-item.active:before{background:#3b82f6}body.dark-mode .sidebar-footer{border-top-color:#1f2937}body.dark-mode .sidebar-user:hover{background:#1f2937}body.dark-mode .sidebar-user-name{color:#f9fafb}body.dark-mode .sidebar-user-role{color:#9ca3af}@media (max-width:768px){.app-sidebar{transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:200}.app-sidebar.mobile-open{transform:translateX(0)}.app-sidebar.collapsed,.app-sidebar.collapsed:hover{width:280px}.collapsed .nav-item-label,.collapsed .sidebar-user-info{opacity:1;width:auto}.collapsed .sidebar-nav-item{justify-content:flex-start;padding:10px 12px}.sidebar-close-btn,.sidebar-collapse-btn{display:flex}.sidebar-backdrop,body.mobile-open .sidebar-backdrop{display:block}}.main-content{margin-left:260px;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.app-sidebar.collapsed~.main-content{margin-left:72px}@media (max-width:768px){.app-sidebar.collapsed~.main-content,.main-content{margin-left:0}}@keyframes alertSlideDown{0%{opacity:0;transform:translateY(-100px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes alertPulse{0%,to{box-shadow:0 0 0 0 #f7941db3}50%{box-shadow:0 0 0 20px #f7941d00}}.new-job-alert-overlay{align-items:flex-start;animation:fadeIn .3s ease;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding-top:80px;position:fixed;right:0;top:0;z-index:10000}.new-job-alert{animation:alertSlideDown .5s cubic-bezier(.34,1.56,.64,1);background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:600px;padding:32px;position:relative;width:90%}.alert-icon{animation:alertPulse 2s infinite;font-size:64px;margin-bottom:20px;text-align:center}.alert-content h3{color:#003d5c;font-size:28px;font-weight:700;margin:0 0 24px;text-align:center}.alert-details{background:#f8f9fa;border-radius:12px;margin-bottom:24px;padding:20px}.alert-row{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:10px 0}.alert-row:last-child{border-bottom:none}.alert-label{color:#666;font-size:14px;font-weight:600}.alert-value{color:#003d5c;font-size:15px;font-weight:600}.alert-actions{display:flex;flex-direction:column;gap:12px}.alert-btn{border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:700;padding:14px 24px;transition:all .3s;width:100%}.alert-btn.primary{background:linear-gradient(135deg,#f7941d,#ff9f2e);box-shadow:0 4px 12px #f7941d4d;color:#fff}.alert-btn.primary:hover{box-shadow:0 6px 16px #f7941d66;transform:translateY(-2px)}.alert-btn.secondary{background:linear-gradient(135deg,#003d5c,#0052cc);box-shadow:0 4px 12px #003d5c4d;color:#fff}.alert-btn.secondary:hover{box-shadow:0 6px 16px #003d5c66;transform:translateY(-2px)}.alert-btn.tertiary{background:#fff;border:2px solid #e0e0e0;color:#666}.alert-btn.tertiary:hover{border-color:#003d5c;color:#003d5c}.alert-close{background:none;border:none;color:#999;cursor:pointer;font-size:24px;line-height:1;padding:8px;position:absolute;right:16px;top:16px;transition:color .2s}.alert-close:hover{color:#333}body.dark-mode .new-job-alert{background:#16213e}body.dark-mode .alert-content h3{color:#f7941d}body.dark-mode .alert-details{background:#1a1a2e}body.dark-mode .alert-row{border-bottom-color:#2a2a3e}body.dark-mode .alert-label{color:#999}body.dark-mode .alert-value{color:#e0e0e0}body.dark-mode .alert-btn.tertiary{background:#1a1a2e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .alert-btn.tertiary:hover{border-color:#f7941d;color:#f7941d}@media (max-width:768px){.new-job-alert{padding:24px}.alert-icon{font-size:48px}.alert-content h3{font-size:22px}}.status-badge{border:none;border-radius:6px;display:inline-block;font-size:11px;letter-spacing:.05em;text-transform:uppercase;transition:all .2s ease}.status-new{background:#22c55e;color:#fff}.status-ongoing{background:#f97316;color:#fff}.status-awaiting-report{background:#7c3aed;color:#fff}.status-awaiting-invoice{background:#dc2626;color:#fff}.status-completed{background:#2563eb}.status-default{background:#6b7280;color:#fff}.status-badge:hover{opacity:.9}@media (max-width:768px){.status-badge{font-size:10px;padding:5px 10px}}@media (max-width:480px){.status-badge{font-size:9px;padding:4px 8px}}body.dark-mode .status-new{background:#22c55e;color:#fff}body.dark-mode .status-ongoing{background:#f97316;color:#fff}body.dark-mode .status-completed{background:#2563eb;color:#fff}body.dark-mode .status-awaiting-report{background:#7c3aed;color:#fff}body.dark-mode .status-awaiting-invoice{background:#dc2626;color:#fff}body.dark-mode .status-default{background:#6b7280;color:#fff}.canned-responses-overlay{align-items:center;animation:fadeIn .3s ease;background:#0009;bottom:0;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;width:100%;z-index:99999}.canned-responses-modal{animation:slideIn .3s ease;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:700px;position:relative;width:90%}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.canned-responses-header{align-items:center;background:linear-gradient(135deg,#003d5c,#0052cc);border-bottom:2px solid #f7941d;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;padding:20px 24px}.canned-responses-header h3{color:#fff;font-size:20px;font-weight:700;margin:0}.canned-responses-header .close-btn{background:#fff3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:24px;line-height:1;padding:4px 10px;transition:background .2s}.canned-responses-header .close-btn:hover{background:#ffffff4d}.canned-responses-search{border-bottom:1px solid #e0e0e0;padding:16px 24px}.canned-responses-search input{border:1px solid #e0e0e0;border-radius:8px;font-size:14px;padding:12px 16px;width:100%}.canned-responses-search input:focus{border-color:#003d5c;outline:none}.canned-responses-list{flex:1 1;overflow-y:auto;padding:16px 24px}.canned-response-item{background:#f8f9fa;border-left:4px solid #003d5c;border-radius:12px;margin-bottom:12px;padding:16px;transition:all .2s}.canned-response-item:hover{background:#f0f0f0;transform:translateX(4px)}.response-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.response-header h4{color:#003d5c;font-size:16px;font-weight:700;margin:0}.response-actions{display:flex;gap:8px}.use-btn{background:linear-gradient(135deg,#f7941d,#ff9f2e);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:600;padding:6px 16px;transition:all .2s}.use-btn:hover{box-shadow:0 4px 8px #f7941d4d;transform:translateY(-2px)}.delete-btn{background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:16px;padding:6px 10px;transition:all .2s}.delete-btn:hover{background:#fee;border-color:#f44}.response-preview{color:#666;font-size:14px;line-height:1.5;margin:0;white-space:pre-wrap}.add-response-form{background:#f8f9fa;border-radius:0 0 16px 16px;border-top:1px solid #e0e0e0;padding:20px 24px}.add-response-form input,.add-response-form textarea{border:1px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:14px;margin-bottom:12px;padding:12px 16px;width:100%}.add-response-form input:focus,.add-response-form textarea:focus{border-color:#003d5c;outline:none}.add-response-form textarea{resize:vertical}.form-actions{justify-content:flex-end}.cancel-btn,.save-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.cancel-btn{background:#fff;border:1px solid #e0e0e0;color:#666}.cancel-btn:hover{background:#f5f5f5}.save-btn{background:linear-gradient(135deg,#003d5c,#0052cc);color:#fff}.save-btn:hover{box-shadow:0 4px 8px #003d5c4d;transform:translateY(-2px)}.add-new-btn{background:#fff;border:2px dashed #003d5c;border-radius:8px;color:#003d5c;cursor:pointer;font-size:15px;font-weight:700;margin:16px 24px;padding:12px;transition:all .2s;width:calc(100% - 48px)}.add-new-btn:hover{background:#f8f9fa;border-style:solid}body.dark-mode .canned-responses-modal{background:#16213e}body.dark-mode .canned-responses-search{border-bottom-color:#2a2a3e}body.dark-mode .canned-responses-search input{background:#1a1a2e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .canned-response-item{background:#1a1a2e;border-left-color:#f7941d}body.dark-mode .canned-response-item:hover{background:#1e2538}body.dark-mode .response-header h4{color:#f7941d}body.dark-mode .response-preview{color:#ccc}body.dark-mode .delete-btn{background:#1a1a2e;border-color:#2a2a3e}body.dark-mode .add-response-form{background:#1a1a2e;border-top-color:#2a2a3e}body.dark-mode .add-response-form input,body.dark-mode .add-response-form textarea,body.dark-mode .cancel-btn{background:#16213e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .add-new-btn{background:#16213e;border-color:#f7941d;color:#f7941d}@media (max-width:768px){.canned-responses-overlay{padding:10px}.canned-responses-modal{border-radius:12px;max-height:90vh;max-width:100%;width:100%}.canned-responses-header{padding:16px 20px}.canned-responses-header h3{font-size:18px}.response-header{align-items:flex-start;flex-direction:column;gap:8px}.response-actions{justify-content:flex-end;width:100%}.add-new-btn{margin:12px 20px;width:calc(100% - 40px)}}.call-button-wrapper{display:inline-block}.call-button{align-items:center;background-color:#4caf50;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease}.call-button:hover:not(:disabled){background-color:#45a049;box-shadow:0 2px 4px #0003;transform:translateY(-1px)}.call-button:active:not(:disabled){transform:translateY(0)}.call-button:disabled{cursor:not-allowed;opacity:.6}.call-button.calling{animation:pulse 1.5s ease-in-out infinite;background-color:#ff9800}.call-button-icon{display:inline-block;font-size:16px}.call-button-primary{background-color:#4caf50}.call-button-secondary{background-color:#2196f3}.call-button-secondary:hover:not(:disabled){background-color:#0b7dda}.call-button-icon-only{align-items:center;border-radius:50%;display:flex;height:36px;justify-content:center;padding:8px;width:36px}body.dark-mode .call-button{background-color:#4caf50}@media (max-width:768px){.call-button{font-size:12px;padding:6px 12px}.call-button-icon{font-size:14px}}.dial-pad-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.dial-pad-container{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-width:400px;padding:24px;width:90%}.dial-pad-header{align-items:center;display:flex;justify-content:space-between}.dial-pad-display,.dial-pad-header{margin-bottom:20px}.dial-pad-input{border:2px solid #e0e0e0;border-radius:8px;font-family:monospace;font-size:24px;letter-spacing:1px;outline:none;padding:16px;text-align:center;transition:border-color .2s;width:100%}.dial-pad-input:focus{border-color:#4caf50}.dial-pad-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.dial-pad-hint{color:#666;font-style:italic}.dial-pad-error,.dial-pad-hint{font-size:12px;margin-top:8px;text-align:center}.dial-pad-error{color:#f44336;font-weight:500}.dial-pad-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);margin-bottom:20px}.dial-pad-key{align-items:center;background:#f5f5f5;border:none;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font-size:24px;font-weight:600;justify-content:center;min-height:80px;padding:20px;transition:all .2s}.dial-pad-key:hover:not(:disabled){background:#e0e0e0;transform:scale(1.05)}.dial-pad-key:active:not(:disabled){background:#d0d0d0;transform:scale(.95)}.dial-pad-key:disabled{cursor:not-allowed;opacity:.5}.dial-pad-number{color:#000;font-size:28px}.dial-pad-letters{color:#000;font-size:12px;margin-top:4px}.dial-pad-actions{display:flex;gap:12px}.dial-pad-action-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:16px;font-weight:500;padding:14px;transition:all .2s}.clear-btn{background:#f5f5f5;color:#000}.clear-btn:hover:not(:disabled){background:#e0e0e0}.delete-btn{background:#ff9800;color:#fff}.delete-btn:hover:not(:disabled){background:#f57c00}.call-btn{background:#4caf50;color:#fff;flex:2 1}.call-btn:hover:not(:disabled){background:#45a049}.dial-pad-action-btn:disabled{cursor:not-allowed;opacity:.5}body.dark-mode .dial-pad-container{background:#2d2d2d;color:#fff}body.dark-mode .dial-pad-input{background:#1a1a1a;border-color:#444;color:#fff}body.dark-mode .dial-pad-hint{color:#999}body.dark-mode .dial-pad-key{background:#3d3d3d;color:#fff}body.dark-mode .dial-pad-key:hover:not(:disabled){background:#4d4d4d}body.dark-mode .dial-pad-number{color:#fff}body.dark-mode .dial-pad-letters{color:#aaa}@media (max-width:480px){.dial-pad-container{padding:16px}.dial-pad-key{min-height:70px;padding:16px}.dial-pad-number{font-size:24px}}.job-notes-section{background:#f9fafb;border-radius:12px;margin-bottom:32px;margin-top:24px;padding:20px}.job-notes-title{align-items:center;color:#111827;display:flex;font-size:18px;font-weight:600;gap:8px;margin-bottom:16px}.job-notes-form{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.job-notes-input{border:2px solid #e5e7eb;border-radius:8px;font-family:inherit;font-size:14px;padding:12px;resize:vertical;transition:all .2s;width:100%}.job-notes-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.job-notes-input:disabled{background:#f3f4f6;cursor:not-allowed}.job-notes-submit{align-self:flex-end;background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.job-notes-submit:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.job-notes-submit:disabled{background:#9ca3af;cursor:not-allowed;transform:none}.job-notes-empty,.job-notes-loading{color:#6b7280;font-size:14px;padding:32px;text-align:center}.job-notes-list{display:flex;flex-direction:column;gap:12px}.job-note-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;transition:all .2s}.job-note-item:hover{box-shadow:0 2px 8px #00000014}.job-note-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.job-note-author{color:#111827;gap:10px}.job-note-author,.job-note-avatar{align-items:center;display:flex;font-size:14px}.job-note-avatar{background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:50%;color:#fff;font-weight:600;height:32px;justify-content:center;width:32px}.job-note-timestamp{color:#6b7280;font-size:12px;font-style:italic}.job-note-content{word-wrap:break-word;color:#374151;font-size:14px;line-height:1.6;white-space:pre-wrap}body.dark-mode .job-notes-section{background:#1f2937}body.dark-mode .job-notes-title{color:#f9fafb}body.dark-mode .job-notes-input{background:#111827;border-color:#374151;color:#f9fafb}body.dark-mode .job-notes-input:focus{border-color:#3b82f6}body.dark-mode .job-note-item{background:#111827;border-color:#374151}body.dark-mode .job-note-author{color:#f9fafb}body.dark-mode .job-note-content{color:#d1d5db}@media (max-width:768px){.job-notes-section{padding:16px}.job-notes-input{font-size:16px}}.job-call-log-section{background:#f0f9ff;border-radius:12px;margin-bottom:24px;margin-top:32px;padding:20px}.job-call-log-title{align-items:center;color:#111827;display:flex;font-size:18px;font-weight:600;gap:8px;margin-bottom:16px}.job-call-log-count{color:#6b7280;font-size:14px;font-weight:400}.job-call-log-empty,.job-call-log-loading{color:#6b7280;font-size:14px;padding:32px;text-align:center}.job-call-log-list{display:flex;flex-direction:column;gap:12px}.job-call-log-item{align-items:center;background:#fff;border:1px solid #e0f2fe;border-radius:8px;display:flex;gap:12px;padding:14px 16px;transition:all .2s}.job-call-log-item:hover{border-color:#bae6fd;box-shadow:0 2px 8px #3b82f61a}.job-call-log-icon{flex-shrink:0}.call-icon{align-items:center;border-radius:50%;display:flex;font-size:24px;height:40px;justify-content:center;width:40px}.call-icon.incoming{background:#dcfce7}.call-icon.outgoing{background:#dbeafe}.job-call-log-details{flex:1 1;min-width:0}.job-call-log-number{color:#111827;font-family:monospace;font-size:15px;font-weight:600;margin-bottom:4px}.job-call-log-meta{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:13px;gap:6px}.job-call-log-type{color:#3b82f6;font-weight:500}.job-call-log-separator{color:#d1d5db}.job-call-log-duration{color:#059669;font-weight:500}.job-call-log-admin{color:#6b7280}.job-call-log-timestamp{color:#9ca3af;font-size:12px;font-style:italic;white-space:nowrap}body.dark-mode .job-call-log-section{background:#1e3a8a}body.dark-mode .job-call-log-title{color:#f0f9ff}body.dark-mode .job-call-log-item{background:#1e40af;border-color:#1e3a8a}body.dark-mode .job-call-log-number{color:#f0f9ff}body.dark-mode .call-icon.incoming{background:#065f46}body.dark-mode .call-icon.outgoing{background:#1e3a8a}@media (max-width:768px){.job-call-log-section{padding:16px}.job-call-log-item{align-items:flex-start;flex-direction:column;gap:8px}.job-call-log-timestamp{align-self:flex-end}}.modal-overlay{animation:fadeIn .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0009}.modal-content{animation:slideUp .3s ease-out;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:24px;box-shadow:0 25px 50px -12px #00000040;display:flex;flex-direction:column;max-width:900px;overflow:hidden}.modal-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;flex-shrink:0;overflow:hidden;padding:24px 32px;position:relative}.modal-header:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:1}.modal-header>*{position:relative;z-index:2}.modal-header h2{font-weight:700;margin:0 0 4px}.job-subtitle{font-size:14px;margin:0;opacity:.9}.close-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:50%;color:#fff;font-size:20px;height:40px;transition:all .3s cubic-bezier(.4,0,.2,1);width:40px}.close-btn:hover{background:#ffffff40;box-shadow:0 4px 12px #00000026;transform:scale(1.1) rotate(90deg)}.modal-body{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);flex:1 1;overflow-y:auto;padding:32px}.section{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb3;border:1px solid #fff3;border-radius:16px;margin-bottom:32px;padding:24px;transition:all .3s ease}.section:hover{box-shadow:0 8px 25px #0000001a;transform:translateY(-2px)}.section:last-child{margin-bottom:0}.section h3{border-bottom:2px solid #e2e8f0;color:#1e293b;font-size:18px;font-weight:700;margin:0 0 16px;padding-bottom:12px;position:relative}.section h3:after{border-radius:1px;bottom:-2px;content:"";height:2px;left:0;position:absolute;width:50px}.section h3:after,.update-job-btn{background:linear-gradient(135deg,#667eea,#764ba2)}.update-job-btn{border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-size:15px;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.update-job-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.update-job-btn:hover{box-shadow:0 8px 25px #667eea66;transform:translateY(-3px)}.update-job-btn:hover:before{left:100%}.update-job-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.reset-progress-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:12px;box-shadow:0 4px 15px #ef44444d;color:#fff;cursor:pointer;font-size:15px;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.reset-progress-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.reset-progress-btn:hover:not(:disabled){box-shadow:0 8px 25px #ef444466;transform:translateY(-3px)}.reset-progress-btn:hover:not(:disabled):before{left:100%}.reset-progress-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.complete-btn{background:linear-gradient(135deg,#f093fb,#f5576c);border:none;border-radius:12px;box-shadow:0 4px 15px #f093fb4d;color:#fff;cursor:pointer;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.complete-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.complete-btn:hover{box-shadow:0 8px 25px #f093fb66;transform:translateY(-3px)}.complete-btn:hover:before{left:100%}.complete-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.details-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.detail-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff80;border:1px solid #fff3;border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px;transition:all .3s ease}.detail-item:hover{background:#ffffffb3;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.detail-item .label{color:#64748b;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.detail-item span:not(.label){color:#1e293b;font-size:15px;font-weight:500}.amount-highlight{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;color:#059669!important;font-size:18px!important;font-weight:800}.assign-section{display:flex;flex-direction:column;gap:16px}.engineer-select{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border:2px solid #ffffff4d;border-radius:12px;color:#1e293b;font-size:15px;font-weight:500;padding:16px 20px;transition:all .3s ease;width:100%}.engineer-select:focus{background:#ffffffe6;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.assign-btn{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;box-shadow:0 4px 15px #10b9814d;color:#fff;cursor:pointer;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.assign-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.assign-btn:hover:not(:disabled){box-shadow:0 8px 25px #10b98166;transform:translateY(-3px)}.assign-btn:hover:not(:disabled):before{left:100%}.assign-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.unassign-engineer-btn{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;border-radius:12px;box-shadow:0 4px 15px #ef44444d;color:#fff;cursor:pointer;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.unassign-engineer-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.unassign-engineer-btn:hover:not(:disabled){box-shadow:0 8px 25px #ef444466;transform:translateY(-3px)}.unassign-engineer-btn:hover:not(:disabled):before{left:100%}.unassign-engineer-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.current-assignment{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-left:4px solid #10b981;border-radius:12px;box-shadow:0 2px 8px #10b9811a;color:#166534;font-size:15px;font-weight:500;margin:0;padding:16px 20px}.messages-list{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff9;border:1px solid #fff3;border-radius:16px;gap:16px;margin-bottom:20px;max-height:400px;padding:20px}.no-messages{font-size:15px;font-weight:500;text-align:center}.message-item{border-radius:16px;box-shadow:0 4px 12px #0000001a;max-width:75%;padding:16px 20px;transition:all .3s ease}.message-item:hover{box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.message-item.sent{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:6px;color:#fff;margin-left:auto}.message-item.received{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #ffffff4d;border-bottom-left-radius:6px;color:#1e293b;margin-right:auto}.message-header{margin-bottom:6px}.message-item.sent .message-header strong{color:#ffffffe6;font-size:12px;font-weight:600}.message-item.received .message-header strong{color:#003d5c;font-size:12px;font-weight:700}.message-item.sent .message-header .time{color:#ffffffb3;font-size:10px}.message-item.received .message-header .time{color:#999;font-size:10px}.message-body{word-wrap:break-word;font-size:14px;margin:0}.message-item.sent .message-body{color:#fff}.message-item.received .message-body{color:#333}.message-form{background:#fff9;border:1px solid #fff3;border-radius:16px;padding:16px}.message-form,.message-form input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.message-form input{background:#fffc;border:2px solid #ffffff4d;border-radius:12px;color:#1e293b;flex:1 1;font-size:15px;font-weight:500;padding:16px 20px;transition:all .3s ease}.message-form input:focus{background:#ffffffe6;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}.message-form button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.message-form button:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.message-form button:hover{box-shadow:0 8px 25px #667eea66;transform:translateY(-3px)}.message-form button:hover:before{left:100%}.message-input-actions{margin-bottom:12px}body.dark-mode .modal-overlay{background:#000000b3}body.dark-mode .modal-content{background:#16213e}body.dark-mode .modal-header{background:linear-gradient(135deg,#1a1a2e,#16213e)}body.dark-mode .section h3{border-bottom-color:#2a2a3e;color:#000!important;font-weight:700}body.dark-mode .detail-item .label{color:#000!important;font-weight:600}body.dark-mode .detail-item span:not(.label){color:#000!important;font-weight:500}body.dark-mode .messages-list{background:#1a1a2e}body.dark-mode .message-item.sent{background:linear-gradient(135deg,#1e3a8a,#2563eb)}body.dark-mode .message-item.received{background:#16213e;border-color:#2a2a3e}body.dark-mode .message-item.received .message-header strong{color:#6db3ff}body.dark-mode .message-item.received .message-body{color:#e0e0e0}body.dark-mode .message-form input{background:#1a1a2e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .update-job-btn{background:linear-gradient(135deg,#1e3a8a,#2563eb)}.engineer-actions{display:flex;flex-direction:column;gap:12px}.action-btn{color:#fff;font-size:15px;padding:14px;transition:all .2s;width:100%}.action-btn:hover:not(:disabled){box-shadow:0 4px 12px #0003;transform:translateY(-2px)}.on-route-btn{background:linear-gradient(135deg,#0052cc,#06f)}.on-route-btn:hover:not(:disabled){box-shadow:0 4px 12px #0052cc66}.on-site-btn{background:linear-gradient(135deg,#f7941d,#ff9f2e)}.on-site-btn:hover:not(:disabled){box-shadow:0 4px 12px #f7941d66}.upload-section{background:#f8f9fa;border:2px dashed #e0e0e0;border-radius:8px;margin-top:8px;padding:16px}.upload-label{color:#003d5c;font-size:14px;font-weight:600;margin-bottom:10px}.file-input{background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;font-size:14px;padding:10px;width:100%}.file-input::-webkit-file-upload-button{background:linear-gradient(135deg,#003d5c,#0052cc);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;margin-right:10px;padding:8px 16px}.selected-file{align-items:center;background:#fff;border:1px solid #10b981;border-radius:6px;display:flex;gap:10px;justify-content:space-between;margin-top:12px;padding:10px}.selected-file span{color:#333;flex:1 1;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-btn{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .2s}.upload-btn:hover:not(:disabled){box-shadow:0 4px 12px #10b98166;transform:translateY(-2px)}.upload-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}body.dark-mode .upload-section{background:#1a1a2e;border-color:#2a2a3e}body.dark-mode .upload-label{color:#6db3ff}body.dark-mode .file-input{background:#16213e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .selected-file{background:#16213e;border-color:#10b981}body.dark-mode .selected-file span{color:#e0e0e0}@media (max-width:768px){.modal-content{margin:10px;max-height:95vh;width:95%}.modal-header{padding:16px}.modal-header h2{font-size:18px}.modal-body{padding:16px}.details-grid{grid-template-columns:1fr}.section h3{font-size:16px}.detail-item{font-size:13px}.engineer-select,.status-select{font-size:14px}.assign-btn,.update-btn{font-size:14px;padding:10px 16px}.messages-list{max-height:250px}.message-item{font-size:13px}.message-form input{font-size:14px}.message-form button{font-size:14px;padding:10px 16px}}.complete-job-section{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border-top:2px solid #e5e7eb;margin-top:24px;padding:20px;text-align:center}.complete-job-section .complete-btn{background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:12px;box-shadow:0 4px 12px #dc26264d;color:#fff;cursor:pointer;font-size:16px;font-weight:700;letter-spacing:.5px;min-width:200px;padding:16px 32px;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1)}.complete-job-section .complete-btn:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b);box-shadow:0 8px 20px #dc262666;transform:translateY(-2px)}.complete-job-section .complete-btn:active{box-shadow:0 4px 12px #dc26264d;transform:translateY(0)}.complete-job-section .complete-btn:disabled{background:#9ca3af;box-shadow:none;cursor:not-allowed;transform:none}body.dark-mode .complete-job-section{background:linear-gradient(135deg,#1f2937,#111827);border-top-color:#374151}body.dark-mode .complete-job-section .complete-btn{background:linear-gradient(135deg,#dc2626,#b91c1c);color:#fff}body.dark-mode .complete-job-section .complete-btn:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b)}@media (max-width:768px){.complete-job-section{margin-top:16px;padding:16px}.complete-job-section .complete-btn{font-size:14px;min-width:160px;padding:14px 24px}}.action-buttons-section{margin-top:24px}.action-buttons-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:16px}.action-btn{border:none;font-weight:600;padding:12px 16px;text-align:center;transition:all .3s ease}.action-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.action-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.update-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.unassign-btn{color:#fff}.hold-btn{background:linear-gradient(135deg,#ffecd2,#fcb69f);color:#333}.cancel-btn{background:linear-gradient(135deg,#ff9a9e,#fecfef);color:#333}body.dark-mode .action-btn,body.dark-mode .cancel-btn,body.dark-mode .hold-btn{color:#fff}.progress-timestamps{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-top:16px;padding:16px}.timestamp-item{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:8px 0}.timestamp-item:last-child{border-bottom:none}.timestamp-label{color:#374151;font-size:14px;font-weight:500}.timestamp-value{color:#6b7280;font-size:14px;font-weight:600}body.dark-mode .progress-timestamps{background:#1a1a2e;border-color:#2a2a3e}body.dark-mode .timestamp-item{border-color:#2a2a3e}body.dark-mode .timestamp-label{color:#6db3ff}body.dark-mode .timestamp-value{color:#e0e0e0}.remedial-work-section{border-left:4px solid #f59e0b}.remedial-work-content{display:flex;flex-direction:column;gap:16px}.detail-item.full-width{grid-column:1/-1}.remedial-status{border-radius:6px;display:inline-block;font-size:14px;font-weight:600;padding:4px 12px}.remedial-status.yes{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.remedial-status.no{background:linear-gradient(135deg,#f3f4f6,#e5e7eb);color:#374151}.remedial-description{word-wrap:break-word;background:#fffc;border:2px solid #fde68a;border-radius:8px;color:#1e293b;font-size:14px;line-height:1.6;margin-top:8px;padding:12px 16px;white-space:pre-wrap}.payment-badge{border-radius:8px;display:inline-block;font-size:13px;font-weight:600;padding:6px 14px}.payment-badge.paid{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border:2px solid #10b981;color:#065f46}.payment-badge.pending{background:linear-gradient(135deg,#fed7aa,#fdba74);border:2px solid #f59e0b;color:#92400e}.documents-section{border-left:4px solid #3b82f6}.documents-grid{display:flex;flex-direction:column;gap:20px}.document-group{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff80;border:1px solid #ffffff4d;border-radius:12px;padding:16px;transition:all .3s ease}.document-group:hover{background:#ffffffb3;box-shadow:0 4px 15px #0000001a;transform:translateY(-2px)}.document-group h4{align-items:center;color:#3b82f6;display:flex;font-size:14px;font-weight:700;gap:8px;letter-spacing:.05em;margin:0 0 12px;text-transform:uppercase}.document-list{display:flex;flex-direction:column;gap:8px}.document-link{align-items:center;background:#ffffffe6;border:2px solid #e5e7eb;border-radius:8px;color:#1e293b;display:flex;gap:12px;padding:12px 16px;text-decoration:none;transition:all .3s ease}.document-link:hover{background:#fff;border-color:#3b82f6;box-shadow:0 2px 8px #3b82f633;transform:translateX(4px)}.document-link.certificate{border-color:#10b981}.document-link.certificate:hover{border-color:#059669;box-shadow:0 2px 8px #10b9814d}.doc-icon{flex-shrink:0;font-size:24px}.doc-name{flex:1 1;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-size{color:#6b7280;flex-shrink:0;font-size:12px;font-weight:500}.document-list.photos{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.photo-link{align-items:center;background:#ffffffe6;border:2px solid #e5e7eb;border-radius:8px;color:#1e293b;display:flex;flex-direction:column;gap:8px;padding:12px;text-decoration:none;transition:all .3s ease}.photo-link:hover{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-4px)}.photo-link img{background:#f3f4f6;border-radius:6px;height:100px;object-fit:cover;width:100%}.photo-name{font-size:12px;font-weight:500;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%}.no-documents{color:#9ca3af;font-size:14px;font-style:italic;padding:40px 20px;text-align:center}body.dark-mode .remedial-work-section{border-left-color:#fbbf24}body.dark-mode .remedial-status.yes{background:linear-gradient(135deg,#78350f,#92400e);color:#fef3c7}body.dark-mode .remedial-status.no{background:linear-gradient(135deg,#374151,#4b5563);color:#f3f4f6}body.dark-mode .remedial-description{background:#1a1a2e;border-color:#fbbf24;color:#e0e0e0}body.dark-mode .payment-badge.paid{background:linear-gradient(135deg,#064e3b,#065f46);border-color:#10b981;color:#d1fae5}body.dark-mode .payment-badge.pending{background:linear-gradient(135deg,#78350f,#92400e);border-color:#f59e0b;color:#fed7aa}body.dark-mode .documents-section{border-left-color:#60a5fa}body.dark-mode .document-group{background:#1a1a2e99;border-color:#2a2a3e}body.dark-mode .document-group:hover{background:#1a1a2ecc}body.dark-mode .document-group h4{color:#60a5fa}body.dark-mode .document-link{background:#16213e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .document-link:hover{background:#1a1a2e;border-color:#60a5fa}body.dark-mode .document-link.certificate:hover{border-color:#34d399}body.dark-mode .doc-size{color:#9ca3af}body.dark-mode .photo-link{background:#16213e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .photo-link:hover{border-color:#60a5fa}body.dark-mode .photo-link img{background:#1a1a2e}body.dark-mode .no-documents{color:#6b7280}@media (max-width:768px){.document-list.photos{grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.photo-link img{height:80px}.remedial-description{font-size:13px}.document-link{padding:10px 12px}.doc-name{font-size:13px}}.openrent-actions-section{background:linear-gradient(135deg,#fffbebe6,#fef3c7cc);border-left:4px solid #f59e0b}.openrent-actions-note{background:#fbbf2433;border:1px solid #fbbf24;border-radius:8px;color:#92400e;font-size:13px;font-weight:600;margin:0 0 16px;padding:12px 16px;text-align:center}.openrent-buttons-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.openrent-btn{border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:15px;font-weight:700;overflow:hidden;padding:16px 24px;position:relative;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.openrent-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.openrent-btn:hover:not(:disabled){transform:translateY(-3px)}.openrent-btn:hover:not(:disabled):before{left:100%}.openrent-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.update-appointment-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 4px 15px #3b82f64d}.update-appointment-btn:hover:not(:disabled){box-shadow:0 8px 25px #3b82f666}.complete-job-btn{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 15px #10b9814d}.complete-job-btn:hover:not(:disabled){box-shadow:0 8px 25px #10b98166}.put-on-hold-btn{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 15px #f59e0b4d}.put-on-hold-btn:hover:not(:disabled){box-shadow:0 8px 25px #f59e0b66}.callout-btn{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 15px #ef44444d}.callout-btn:hover:not(:disabled){box-shadow:0 8px 25px #ef444466}.update-spec-btn{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 4px 15px #8b5cf64d}.update-spec-btn:hover:not(:disabled){box-shadow:0 8px 25px #8b5cf666}.unassign-btn{background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 4px 15px #f093fb4d}.unassign-btn:hover:not(:disabled){box-shadow:0 8px 25px #f093fb66}.admin-link-btn{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 15px #ef44444d}.admin-link-btn:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 8px 25px #ef444466}.dial-pad-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 15px #2563eb4d}.dial-pad-btn:hover:not(:disabled){box-shadow:0 8px 25px #2563eb66}body.dark-mode .openrent-actions-section{background:linear-gradient(135deg,#4e230f66,#78350f4d);border-left-color:#fbbf24}body.dark-mode .openrent-actions-note{background:#78350f4d;border-color:#d97706;color:#fef3c7}@media (max-width:768px){.openrent-buttons-grid{grid-template-columns:1fr}.openrent-btn{font-size:14px;padding:14px 20px}.openrent-actions-note{font-size:12px;padding:10px 14px}}.action-modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.action-modal-content{animation:slideUp .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.action-modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:24px}.action-modal-header h3{color:#111827;font-size:1.5rem;font-weight:600;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.modal-close-btn:hover{background:#f3f4f6;color:#111827}.action-modal-body{padding:24px}.action-modal-body .form-group{margin-bottom:20px}.action-modal-body .form-group:last-child{margin-bottom:0}.action-modal-body label{color:#374151;display:block;font-size:.95rem;font-weight:500;margin-bottom:8px}.action-modal-body .form-control{border:1px solid #d1d5db;border-radius:8px;font-size:.95rem;padding:10px 12px;transition:all .2s;width:100%}.action-modal-body .form-control:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.action-modal-body textarea.form-control{font-family:inherit;resize:vertical}.action-modal-body .mb-2{margin-bottom:10px}.action-modal-body .checkbox-label{align-items:center;cursor:pointer;display:flex;gap:10px}.action-modal-body .checkbox-label input[type=checkbox]{cursor:pointer;height:18px;width:18px}.action-modal-body .checkbox-label span{font-weight:400}.action-modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.action-modal-footer button{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 20px;transition:all .2s}.btn-cancel{background:#f3f4f6;color:#374151}.btn-cancel:hover:not(:disabled){background:#e5e7eb}.btn-submit{background:#3b82f6;color:#fff}.btn-submit:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.btn-cancel:disabled,.btn-submit:disabled{cursor:not-allowed;opacity:.5}.toast-notification{align-items:center;animation:slideInRight .3s ease;background:#fff;border-left:4px solid #3b82f6;border-radius:10px;bottom:30px;box-shadow:0 10px 40px #00000026;display:flex;gap:12px;max-width:400px;padding:16px 20px;position:fixed;right:30px;z-index:10001}@keyframes slideInRight{0%{opacity:0;transform:translateX(400px)}to{opacity:1;transform:translateX(0)}}.toast-success{background:#f0fdf4;border-left-color:#10b981}.toast-error{background:#fef2f2;border-left-color:#ef4444}.toast-notification span{color:#111827;flex:1 1;font-size:.95rem;font-weight:500}.toast-close{align-items:center;background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;font-size:24px;height:24px;justify-content:center;padding:0;transition:all .2s;width:24px}.toast-close:hover{background:#0000000d;color:#111827}body.dark-mode .action-modal-content{background:#1f2937}body.dark-mode .action-modal-header{border-bottom-color:#374151}body.dark-mode .action-modal-header h3{color:#f9fafb}body.dark-mode .modal-close-btn{color:#9ca3af}body.dark-mode .modal-close-btn:hover{background:#374151;color:#f9fafb}body.dark-mode .action-modal-footer{border-top-color:#374151}body.dark-mode .action-modal-body label{color:#e5e7eb}body.dark-mode .action-modal-body .form-control{background:#111827;border-color:#374151;color:#f9fafb}body.dark-mode .action-modal-body .form-control:focus{border-color:#3b82f6}body.dark-mode .btn-cancel{background:#374151;color:#e5e7eb}body.dark-mode .btn-cancel:hover:not(:disabled){background:#4b5563}body.dark-mode .toast-notification{background:#1f2937;color:#f9fafb}body.dark-mode .toast-success{background:#064e3b;border-left-color:#10b981}body.dark-mode .toast-error{background:#7f1d1d;border-left-color:#ef4444}body.dark-mode .toast-notification span{color:#f9fafb}@media (max-width:640px){.action-modal-content{border-radius:0;max-height:100vh;max-width:100%}.action-modal-header{padding:16px}.action-modal-header h3{font-size:1.25rem}.action-modal-body{padding:16px}.action-modal-footer{flex-direction:column-reverse;padding:16px}.action-modal-footer button{width:100%}.toast-notification{bottom:20px;left:20px;max-width:none;right:20px}}.calendar-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.calendar-header{margin-bottom:20px}.calendar-header h2{color:#333;font-size:24px;font-weight:600;margin:0}.refresh-btn{background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;font-size:18px;padding:8px 12px;transition:all .2s}.refresh-btn:hover{background:#e0e0e0;transform:rotate(180deg)}.calendar-error,.calendar-loading{color:#666;font-size:16px;padding:40px;text-align:center}.calendar-error{color:#ef4444}.retry-btn{background:#4285f4;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;margin-top:12px;padding:8px 16px}.retry-btn:hover{background:#357ae8}.calendar-view-modes{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.view-mode-btn{background:#f5f5f5;border:2px solid #0000;border-radius:8px;color:#666;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;position:relative;transition:all .2s}.view-mode-btn:hover{background:#e8e8e8;color:#333}.view-mode-btn.active{background:#4285f4;border-color:#357ae8;color:#fff}.count-badge{background:#ef4444;border-radius:12px;color:#fff;font-size:12px;font-weight:700;min-width:24px;padding:4px 8px;position:absolute;right:-8px;text-align:center;top:-8px}.view-mode-btn.active .count-badge{background:#1e3a8a}.calendar-events{display:flex;flex-direction:column;gap:24px}.no-events{background:#f9f9f9;border:2px dashed #ddd;border-radius:8px;color:#999;font-size:16px;padding:60px 20px;text-align:center}.calendar-day-group{border:1px solid #e5e5e5;border-radius:8px;overflow:hidden}.day-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.day-date{font-size:18px;font-weight:600}.day-count{background:#fff3;border-radius:12px;font-size:14px;padding:4px 12px}.day-events{display:flex;flex-direction:column}.calendar-event{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:16px;justify-content:space-between;padding:20px;transition:all .2s}.calendar-event:last-child{border-bottom:none}.calendar-event:hover{background:#f9f9f9}.calendar-event.clickable:hover{background:#f0f7ff;border-left:4px solid #4285f4}.event-left{align-items:flex-start;display:flex;flex:1 1;gap:16px}.event-time{color:#4285f4;flex-shrink:0;font-size:14px;font-weight:700;min-width:120px;padding-top:2px}.event-details{flex:1 1}.event-title{color:#333;font-size:16px;font-weight:600;margin-bottom:6px}.event-location{color:#666;font-size:14px;margin-bottom:4px}.event-right{align-items:flex-end;display:flex;flex-direction:column;gap:8px;min-width:200px}.event-engineer{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;color:#fff;display:flex;font-size:14px;font-weight:600;gap:8px;padding:8px 16px}.engineer-label{font-size:16px}.engineer-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-status{border-radius:16px;font-size:13px;font-weight:600;padding:6px 14px;text-align:center;white-space:nowrap}.status-completed{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.status-in-progress{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.status-on-hold{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.status-pending{background:linear-gradient(135deg,#6b7280,#4b5563);color:#fff}.event-description{border-top:1px solid #f0f0f0;color:#888;font-size:13px;line-height:1.6;margin-top:8px;padding-top:8px;white-space:pre-line}@media (max-width:768px){.calendar-view{padding:16px}.calendar-header h2{font-size:20px}.calendar-view-modes{gap:8px}.view-mode-btn{font-size:14px;padding:10px 16px}.calendar-event{flex-direction:column;gap:8px}.event-time{border-bottom:1px solid #f0f0f0;min-width:auto;padding-bottom:4px}.day-header{align-items:flex-start;flex-direction:column;gap:8px}.day-date{font-size:16px}}.mapboxgl-map{-webkit-tap-highlight-color:rgb(0 0 0/0);font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative}.mapboxgl-canvas{left:0;position:absolute;top:0}.mapboxgl-map:-webkit-full-screen{height:100%;width:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom,.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-left,.mapboxgl-ctrl-right,.mapboxgl-ctrl-top,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.mapboxgl-ctrl-top-left{left:0;top:0}.mapboxgl-ctrl-top{left:50%;top:0;transform:translateX(-50%)}.mapboxgl-ctrl-top-right{right:0;top:0}.mapboxgl-ctrl-right{right:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl-bottom-right{bottom:0;right:0}.mapboxgl-ctrl-bottom{bottom:0;left:50%;transform:translateX(-50%)}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-left{left:0;top:50%;transform:translateY(-50%)}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{float:left;margin:10px 0 0 10px}.mapboxgl-ctrl-top .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:right;margin:10px 10px 0 0}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,.mapboxgl-ctrl-right .mapboxgl-ctrl{float:right;margin:0 10px 10px 0}.mapboxgl-ctrl-bottom .mapboxgl-ctrl{float:left;margin:10px 0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,.mapboxgl-ctrl-left .mapboxgl-ctrl{float:left;margin:0 0 10px 10px}.mapboxgl-ctrl-group{background:#fff;border-radius:4px}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{background-color:initial;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;overflow:hidden;padding:0;width:29px}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:initial}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl-group button:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:only-child{border-radius:inherit}.mapboxgl-ctrl button:not(:disabled):hover{background-color:#0000000d}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23999'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8h-8z'/%3E%3Cpath d='m10.5 16 4 8 4-8h-8z' fill='%23ccc'/%3E%3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg fill='none' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3E%3Cpath d='M3.333 11.667a1.667 1.667 0 1 0 3.334 0v-5h5a1.667 1.667 0 1 0 0-3.334H3.333v8.334ZM26.667 11.667a1.667 1.667 0 1 1-3.334 0v-5h-5a1.667 1.667 0 1 1 0-3.334h8.334v8.334ZM13.334 25c0 .92-.747 1.667-1.667 1.667H3.333v-8.334a1.667 1.667 0 1 1 3.334 0v5h5c.92 0 1.667.746 1.667 1.667ZM18.334 26.667a1.667 1.667 0 1 1 0-3.334h5v-5a1.667 1.667 0 1 1 3.333 0v8.334h-8.334Z' fill='currentColor'/%3E%3C/svg%3E");background-size:26px 26px}.mapboxgl-ctrl button.mapboxgl-ctrl-buildings-toggle.mapboxgl-ctrl-level-button-selected .mapboxgl-ctrl-icon{filter:invert(1) brightness(1)}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath d='m14 5 1 1-9 9-1-1 9-9z' fill='red'/%3E%3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg opacity='.3' stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg opacity='.9' fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:initial;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23000' stroke-width='3'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cg fill='%23fff'%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd' viewBox='0 0 88 23'%3E%3Cdefs%3E%3Cpath id='a' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 0 1 3.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E%3Cpath id='b' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 0 0-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 0 0 4.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 0 1-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 0 1 .3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 0 1-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E%3C/defs%3E%3Cmask id='c'%3E%3Crect width='100%25' height='100%25' fill='%23fff'/%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/mask%3E%3Cg stroke='%23fff' stroke-width='3' fill='%23fff'%3E%3Ccircle mask='url(%23c)' cx='11.5' cy='11.5' r='9.25'/%3E%3Cuse xlink:href='%23b' mask='url(%23c)'/%3E%3C/g%3E%3Cuse xlink:href='%23a'/%3E%3Cuse xlink:href='%23b'/%3E%3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{background-color:#fff;border-radius:12px;box-sizing:initial;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:#0000000d}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{right:0;top:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0;top:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}.mapboxgl-ctrl-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:#000000bf;text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px;white-space:nowrap}.mapboxgl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{border:10px solid #0000;height:0;width:0;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.mapboxgl-popup-close-button{background-color:initial;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.mapboxgl-popup-close-button:hover{background-color:#0000000d}.mapboxgl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:10px 10px 15px;pointer-events:auto;position:relative}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{left:0;opacity:1;position:absolute;top:0;transition:opacity .2s;will-change:transform}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.mapboxgl-user-location-dot:before{animation:mapboxgl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.mapboxgl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{height:0;width:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom:7.5px solid #4aa1eb;content:"";position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid #0000;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid #0000;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{align-items:center;background:#000000b3;color:#fff;display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%;justify-content:center;left:0;opacity:0;pointer-events:none;position:absolute;text-align:center;top:0;transition:opacity .75s ease-in-out;transition-delay:1s;width:100%}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-ctrl-separator{background-color:#e0e0e0;height:1px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button{color:#333;font-size:18px;font-weight:700;height:50px;width:50px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button:hover{background-color:#f5f5f5}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected{background-color:#4a5568;color:#fff}.mapboxgl-ctrl button.mapboxgl-ctrl-level-button-selected:hover{background-color:#2d3748}.route-map-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.route-empty,.route-error,.route-loading{color:#666;padding:60px 20px;text-align:center}.route-loading .spinner{animation:spin 1s linear infinite;border:4px solid #f0f0f0;border-radius:50%;border-top-color:#4285f4;height:50px;margin:0 auto 20px;width:50px}.route-error{color:#ef4444}.route-error .retry-btn{background:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;margin-top:16px;padding:10px 24px}.route-error .retry-btn:hover{background:#357ae8}.route-summary{margin-bottom:24px}.route-summary h3{color:#333;font-size:22px;font-weight:700;margin:0 0 16px}.route-controls{margin-bottom:20px}.control-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-bottom:16px}.control-group{flex-direction:column;gap:8px}.control-group label{color:#333;font-size:14px}.control-input{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:15px;padding:12px 16px;transition:all .2s}.control-input:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.route-location-inputs{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-top:16px}.location-input-group{display:flex;flex-direction:column;gap:8px}.location-input-group label{color:#333;font-size:14px;font-weight:600}.location-input{border:2px solid #e0e0e0;border-radius:8px;font-family:inherit;font-size:15px;padding:12px 16px;transition:all .2s}.location-input:focus{border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.location-input::placeholder{color:#999}.optimize-button-container{display:flex;justify-content:center;margin-top:16px}.optimize-route-btn{background:linear-gradient(135deg,#4285f4,#357ae8);border:none;border-radius:8px;box-shadow:0 2px 8px #4285f44d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 32px;transition:all .2s}.optimize-route-btn:hover:not(:disabled){background:linear-gradient(135deg,#357ae8,#2968d6);box-shadow:0 4px 12px #4285f466;transform:translateY(-2px)}.optimize-route-btn:active:not(:disabled){transform:translateY(0)}.optimize-route-btn:disabled{background:#ccc;box-shadow:none;cursor:not-allowed}.route-stats{display:flex;flex-wrap:wrap;gap:20px}.route-stats .stat{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;flex:1 1;min-width:120px;padding:20px;text-align:center}.route-stats .stat-icon{display:block;font-size:28px;margin-bottom:8px}.route-stats .stat-value{display:block;font-size:32px;font-weight:700;margin-bottom:4px}.route-stats .stat-label{display:block;font-size:14px;opacity:.9}.route-stats .stat-total{background:linear-gradient(135deg,#f59e0b,#d97706);border:2px solid #fbbf24;box-shadow:0 4px 12px #f59e0b4d;font-weight:700}.route-map-wrapper{border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:24px;overflow:hidden}.job-marker{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.job-marker:hover{box-shadow:0 4px 12px #0006;transform:scale(1.15)}.marker-number{color:#fff;font-size:16px;font-weight:700}.end-marker,.start-marker{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;cursor:pointer;display:flex;height:50px;justify-content:center;transition:all .2s;width:50px}.end-marker{background:linear-gradient(135deg,#3b82f6,#2563eb)}.end-marker:hover,.start-marker:hover{box-shadow:0 4px 12px #0006;transform:scale(1.15)}.marker-label{color:#fff;font-size:12px;font-weight:700;line-height:1.2;text-align:center}.route-list{margin-top:24px}.route-list h4{color:#333;font-size:18px;font-weight:600;margin:0 0 16px}.jobs-list{display:flex;flex-direction:column;gap:12px}.route-job-item{align-items:center;background:#f9f9f9;border-radius:8px;display:flex;gap:16px;padding:16px;transition:all .2s}.route-job-item:hover{background:#f0f7ff;transform:translateX(4px)}.job-number{align-items:center;background:linear-gradient(135deg,#4285f4,#357ae8);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:36px;justify-content:center;width:36px}.job-info{flex:1 1}.job-postcode{color:#333;font-size:18px;font-weight:700;margin-bottom:4px}.job-address{color:#666;margin-bottom:4px}.job-time{color:#4285f4;font-size:13px;font-weight:600;margin-bottom:8px}.job-duration-input{align-items:center;display:flex;gap:8px;margin-top:8px}.job-duration-input label{color:#666;font-size:13px;font-weight:600;white-space:nowrap}.duration-input{border:2px solid #e0e0e0;border-radius:6px;font-family:inherit;font-size:14px;font-weight:600;padding:6px 10px;transition:all .2s;width:80px}.duration-input:focus{border-color:#4285f4;box-shadow:0 0 0 2px #4285f41a;outline:none}@media (max-width:768px){.route-map-container{padding:16px}.control-row,.route-location-inputs{gap:12px;grid-template-columns:1fr}.route-stats{gap:12px}.route-stats .stat{min-width:100px;padding:16px}.route-stats .stat-value{font-size:24px}.route-map-wrapper{height:400px!important}.job-marker{height:32px;width:32px}.marker-number{font-size:14px}}.admin-stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.admin-stat-card{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;gap:16px;padding:24px;transition:all .3s ease}.admin-stat-card.clickable{cursor:pointer}.admin-stat-card.clickable:hover{box-shadow:0 8px 16px #0052cc33;transform:translateY(-4px)}.admin-stat-card.highlight{background:linear-gradient(135deg,#f7941d,#ff9f2e);color:#fff}.admin-stat-card.earnings-card{background:linear-gradient(135deg,#10b981,#059669);color:#fff}.admin-stat-card.earnings-card .stat-content h3,.admin-stat-card.earnings-card .stat-content p{color:#fff}.stat-icon{font-size:36px}.stat-content h3{color:#1a1a2e;font-size:32px;margin:0 0 4px}.admin-stat-card.highlight .stat-content h3{color:#fff}.stat-content{flex:1 1}.stat-content p{color:#666;font-size:14px;font-weight:600;margin:0}.stat-content .earnings{color:#10b981;display:block;font-size:18px;font-weight:700;margin-top:4px}.admin-stat-card.highlight .stat-content p{color:#ffffffe6}.charts-grid{grid-gap:24px;gap:24px;margin-bottom:32px}@media (max-width:768px){.charts-grid{grid-template-columns:1fr}.admin-stats-grid{grid-template-columns:repeat(2,1fr)}}.chart-card{background:#fff;box-shadow:0 2px 4px #0000000d}.chart-card h3{color:#1a1a2e;font-size:18px;margin:0 0 20px}.activity-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.activity-section h3{color:#1a1a2e;font-size:18px;margin:0 0 20px}.activity-list{display:flex;flex-direction:column;gap:16px}.activity-item{background:#f9f9f9;border-radius:6px;display:flex;gap:12px;padding:12px}.activity-icon{font-size:24px}.activity-content{flex:1 1}.activity-text{color:#333;font-size:14px;margin:0 0 4px}.activity-time{color:#999;font-size:12px}.no-activity{color:#999;padding:20px;text-align:center}.empty-state{margin-top:32px}@media (max-width:1024px){.charts-grid{grid-template-columns:1fr}}@media (max-width:768px){.main-content{margin-left:0;min-height:100vh;width:100%}.dashboard-container{padding:10px}.stats-grid{gap:6px;grid-template-columns:1fr 1fr}.admin-stat-card{border-radius:6px;padding:10px}.admin-stat-card h3{font-size:18px;margin-bottom:2px}.admin-stat-card p{font-size:10px}.widget-grid{gap:8px;grid-template-columns:1fr;margin-top:12px}.admin-widget-card{border-radius:6px;padding:12px}.admin-widget-card h3{font-size:14px;margin-bottom:4px}.admin-widget-card p{font-size:11px}.charts-grid{grid-gap:10px;display:grid!important;gap:10px;grid-template-columns:1fr!important;margin-top:12px}.chart-card{border-radius:6px;box-sizing:border-box!important;display:block!important;opacity:1!important;padding:12px;visibility:visible!important;width:100%!important}.chart-card h3{font-size:14px;margin-bottom:10px}.chart-card>*{display:block!important;visibility:visible!important}.recharts-wrapper{height:250px!important;max-width:100%!important;min-height:250px!important;position:relative!important;width:100%!important}.recharts-responsive-container,.recharts-surface{max-width:100%!important;overflow:visible!important;width:100%!important}.recharts-responsive-container{height:250px!important;min-height:250px!important;position:relative!important}.chart-card{min-height:280px!important;overflow:visible!important;position:relative!important}.charts-grid .chart-card>div{max-width:100%!important;min-height:250px!important;overflow:visible!important}.charts-grid .chart-card>div,.recharts-bar-chart,.recharts-pie,.recharts-surface svg{height:250px!important;width:100%!important}.recharts-surface svg{overflow:visible!important}.recharts-bar-wrapper,.recharts-pie-wrapper{height:250px!important;width:100%!important}.chart-card .recharts-responsive-container,.chart-card>div{display:block!important;height:250px!important;width:100%!important}}.job-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;cursor:pointer;overflow:hidden;padding:24px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.job-card-new{border-left:4px solid #22c55e!important}.job-card-ongoing{border-left:4px solid #f97316!important}.job-card-completed{border-left:4px solid #2563eb!important}.job-card-awaiting-report{border-left:4px solid #7c3aed!important}.job-card-awaiting-invoice{border-left:4px solid #dc2626!important}.job-card-in-progress{border-left:4px solid #f97316}.job-card-pending,.job-card:not([class*=job-card-new]):not([class*=job-card-ongoing]):not([class*=job-card-completed]):not([class*=job-card-awaiting-report]):not([class*=job-card-awaiting-invoice]){border-left:4px solid #6b7280}.job-card:hover{box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.job-card-new:hover{box-shadow:0 8px 24px #22c55e26}.job-card-ongoing:hover{box-shadow:0 8px 24px #f9731626}.job-card-completed:hover{box-shadow:0 8px 24px #2563eb26}.job-card-awaiting-report:hover{box-shadow:0 8px 24px #7c3aed26}.job-card-awaiting-invoice:hover{box-shadow:0 8px 24px #dc262626}.job-card-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:20px}.job-header-info{flex:1 1;min-width:0}.job-card-header h3{color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0 0 8px}.job-header-details{display:flex;flex-direction:column;gap:6px}.job-id{background:#f8fafc;border-radius:8px;color:#64748b;display:inline-block;font-size:13px;letter-spacing:.01em;padding:4px 10px;width:-webkit-fit-content;width:fit-content}.job-address,.job-id{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.job-address{color:#374151;font-size:14px;font-weight:500;line-height:1.5}.job-card-body{display:flex;flex-direction:column;gap:12px}.job-info-row{align-items:flex-start;display:flex;font-size:14px;gap:12px;line-height:1.5}.job-info-row .label{color:#6b7280;font-size:13px;letter-spacing:.05em;min-width:100px;text-transform:uppercase}.job-info-row .label,.job-info-row .value{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:500}.job-info-row .value{color:#374151;flex:1 1;line-height:1.5}.appointment-row{background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:12px;margin:8px 0;padding:12px 16px}.appointment-row .label{color:#92400e;font-weight:700}.appointment-row .value{color:#92400e;font-weight:600}.job-info-row .amount-value{background:#ecfdf5;border:1px solid #d1fae5;border-radius:8px;color:#059669;font-weight:700;padding:4px 12px}.job-info-row .job-progress-indicator{background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:20px;box-shadow:0 2px 4px #3b82f64d;color:#fff;display:inline-block;font-size:12px;font-weight:700;letter-spacing:.05em;padding:6px 16px;text-transform:uppercase}@media (max-width:768px){.job-card{border-radius:12px;margin-bottom:16px;padding:20px}.job-card-header{flex-direction:column;gap:12px;margin-bottom:16px}.job-card-header h3{font-size:18px;margin-bottom:6px}.job-header-details{gap:4px}.job-id{font-size:12px;padding:3px 8px}.job-address{font-size:13px}.job-card-body{gap:10px}.job-info-row{font-size:13px;gap:8px}.job-info-row .label{font-size:12px;min-width:80px}.appointment-row{margin:6px 0;padding:10px 12px}}@media (max-width:480px){.job-card{border-radius:10px;padding:16px}.job-card-header h3{font-size:16px}.job-info-row{flex-direction:column;gap:4px}.job-info-row .label{font-size:11px;min-width:auto}.job-info-row .value{font-size:12px}}body.dark-mode .job-card{background:#1f2937!important;border:1px solid #4b55634d!important;color:#fff}body.dark-mode .job-card-header h3{color:#fff!important;text-shadow:0 1px 2px #0000004d}body.dark-mode .job-card-body{color:#f9fafb}body.dark-mode .job-info-row .label{color:#d1d5db!important}body.dark-mode .job-info-row .value{color:#fff!important}body.dark-mode .job-id{background:#ffffff1a!important;border:1px solid #fff3;color:#e5e7eb!important}body.dark-mode .job-address{color:#f3f4f6!important}body.dark-mode .job-info-row .amount-value{background:#ecfdf5!important;border:1px solid #d1fae5!important;color:#000!important}body.dark-mode .appointment-row{background:linear-gradient(135deg,#fef3c7,#fde68a)!important;border:1px solid #f59e0b!important}body.dark-mode .appointment-row .label,body.dark-mode .appointment-row .value{color:#92400e!important;font-weight:600}body.dark-mode .job-card-new{border-left:4px solid #22c55e!important}body.dark-mode .job-card-ongoing{border-left:4px solid #f97316!important}body.dark-mode .job-card-completed{border-left:4px solid #2563eb!important}body.dark-mode .job-card-awaiting-report{border-left:4px solid #7c3aed!important}body.dark-mode .job-card-awaiting-invoice{border-left:4px solid #dc2626!important}.remedial-work-form-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:2000}.remedial-work-form{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:500px;padding:32px;width:90%}.remedial-work-form h3{color:#1e293b;font-size:24px;font-weight:700;margin:0 0 8px}.form-description{color:#64748b;font-size:14px;margin:0 0 24px}.radio-group{display:flex;flex-direction:column;gap:12px}.radio-label{align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:16px;transition:all .2s}.radio-label:hover{background:#f1f5f9;border-color:#cbd5e1}.radio-label input[type=radio]{accent-color:#3b82f6;cursor:pointer;height:20px;width:20px}.radio-label input[type=radio]:checked{accent-color:#3b82f6}.radio-label:has(input[type=radio]:checked){background:#eff6ff;border-color:#3b82f6}.radio-text{color:#1e293b;font-size:15px}.radio-text strong{color:#1e293b;font-weight:700}.form-group label{color:#334155}.required{color:#dc2626;font-size:16px}.form-group textarea{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;padding:12px 16px;resize:vertical;transition:all .2s;width:100%}.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s;width:100%}.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-actions{display:flex;gap:12px;margin-top:24px}.cancel-btn,.submit-btn{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:14px 24px;transition:all .2s}.cancel-btn{background:#f1f5f9;color:#64748b}.cancel-btn:hover{background:#e2e8f0}.submit-btn{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.submit-btn:hover{box-shadow:0 8px 20px #3b82f64d;transform:translateY(-2px)}@media (max-width:768px){.remedial-work-form{padding:24px;width:95%}.remedial-work-form h3{font-size:20px}.form-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%}}.job-progress-tracker{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:24px}.job-progress-tracker h3{color:#1a1a1a;font-size:18px;font-weight:600;margin:0 0 24px}.progress-steps{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.progress-step{display:flex;gap:16px;position:relative}.step-indicator{flex-direction:column;position:relative}.step-indicator,.step-number{align-items:center;display:flex}.step-number{background:#e5e7eb;border:3px solid #e5e7eb;border-radius:50%;color:#6b7280;font-size:14px;font-weight:600;height:40px;justify-content:center;transition:all .3s ease;width:40px}.progress-step.completed .step-number{background:#10b981;border-color:#10b981;color:#fff}.progress-step.current .step-number{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 4px #3b82f61a;color:#3b82f6}.step-connector{background:#e5e7eb;height:24px;margin-top:4px;width:3px}.progress-step.completed .step-connector{background:#10b981}.step-content{flex:1 1;padding-top:8px}.step-name{color:#1a1a1a;font-weight:600;margin-bottom:4px}.progress-step.pending .step-name{color:#6b7280}.step-timestamp{color:#6b7280;font-size:12px}.next-action{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;padding:20px}.next-step-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:background .2s;width:100%}.next-step-btn:hover:not(:disabled){background:#2563eb}.next-step-btn:disabled{background:#9ca3af;cursor:not-allowed}.step-instruction{color:#6b7280;font-size:14px;margin:12px 0 0;text-align:center}.job-completed-message{background:linear-gradient(135deg,#10b981,#059669);border-radius:8px;color:#fff;padding:32px;text-align:center}.completed-icon{font-size:48px;margin-bottom:12px}.completed-text{font-size:24px;font-weight:700}.remedial-work-info{display:flex;flex-direction:column;gap:6px;margin-top:8px}.remedial-badge{background:#10b981;border-radius:12px;color:#fff;display:inline-block;font-size:12px;font-weight:600;padding:4px 10px;width:-webkit-fit-content;width:fit-content}.remedial-badge.no-work{background:#6b7280}.remedial-payment{color:#6b7280;font-size:11px;font-weight:500}@media (max-width:768px){.job-progress-tracker{padding:16px}.step-number{font-size:12px;height:32px;width:32px}.step-name{font-size:14px}.next-step-btn{font-size:14px;padding:12px 20px}.completed-icon{font-size:36px}.completed-text{font-size:20px}}.document-upload{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:24px}.document-upload h3{color:#1a1a1a;font-size:18px;font-weight:600;margin:0 0 24px}.upload-categories{display:flex;flex-direction:column;gap:24px}.upload-category{border:2px solid #e5e7eb;border-radius:8px;padding:20px;transition:border-color .2s}.upload-category.required{background:#fef2f2;border-color:#fca5a5}.upload-category.required .category-header h4{color:#dc2626}.category-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.category-header h4{color:#1a1a1a;font-size:16px;font-weight:600;margin:0}.required-mark{color:#dc2626;font-size:18px;margin-left:4px}.file-count{background:#f3f4f6;border-radius:12px;color:#6b7280;font-size:14px;font-weight:600;padding:4px 12px}.file-count-warning{background:#fee2e2;color:#dc2626}.min-required{color:#dc2626;font-size:12px;font-weight:500}.category-description{color:#6b7280;font-size:14px;margin:0 0 16px}.uploaded-files{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.uploaded-file{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;gap:12px;padding:12px}.file-thumbnail{object-fit:cover}.file-icon,.file-thumbnail{border:1px solid #d1d5db;border-radius:4px;height:60px;width:60px}.file-icon{align-items:center;background:#fff;display:flex;font-size:24px;justify-content:center}.file-info{display:flex;flex:1 1;flex-direction:column;justify-content:space-between}.file-name{color:#1a1a1a;font-size:14px;font-weight:500;word-break:break-word}.file-actions{display:flex;gap:12px}.view-link{color:#3b82f6;font-size:13px;font-weight:500;text-decoration:none}.view-link:hover{text-decoration:underline}.delete-btn{background:none;border:none;color:#dc2626;cursor:pointer;font-size:13px;font-weight:500;padding:0}.delete-btn:hover:not(:disabled){text-decoration:underline}.delete-btn:disabled{color:#9ca3af;cursor:not-allowed}.upload-input{margin-top:12px}.upload-label{display:block}.file-input{display:none}.upload-button{background:#3b82f6;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;padding:10px 20px;transition:background .2s}.upload-button:hover{background:#2563eb}.upload-label:has(.file-input:disabled) .upload-button{background:#9ca3af;cursor:not-allowed}.max-files-message{background:#f3f4f6;border-radius:6px;color:#6b7280;font-size:13px;margin-top:12px;padding:8px 12px;text-align:center}.upload-progress{align-items:center;background:#eff6ff;border:1px solid #3b82f6;border-radius:6px;display:flex;gap:12px;margin:12px 0;padding:12px}.progress-spinner{animation:spin .8s linear infinite;border:3px solid #3b82f6;border-radius:50%;border-top-color:#0000;height:20px;width:20px}.upload-progress span{color:#1e40af;font-size:14px;font-weight:500}@media (max-width:768px){.document-upload,.upload-category{padding:16px}.category-header{align-items:flex-start;flex-direction:column;gap:8px}.file-icon,.file-thumbnail{height:50px;width:50px}.upload-button{text-align:center;width:100%}}.engineer-modal{max-height:90vh;max-width:900px;overflow-y:auto}.engineer-instructions{background:#eff6ff;border:2px solid #3b82f6;border-radius:8px;margin-top:24px;padding:20px}.engineer-instructions h4{color:#1e40af;font-size:16px;margin:0 0 12px}.engineer-instructions ol{color:#1e3a8a;margin:0 0 16px;padding-left:20px}.engineer-instructions ol li{font-size:14px;margin-bottom:8px}.engineer-instructions .note{background:#fff;border-radius:6px;color:#1e40af;font-size:13px;margin:0;padding:12px}.engineer-instructions .required-mark{color:#dc2626;font-size:16px;font-weight:700}.engineer-modal .modal-body{padding:0}.engineer-modal .document-upload,.engineer-modal .job-progress-tracker,.engineer-modal .section{border-bottom:1px solid #e5e7eb;border-radius:0;box-shadow:none;margin:0}.engineer-modal .section:last-child{border-bottom:none}@media (max-width:768px){.engineer-modal{border-radius:0;height:100vh;margin:0;max-height:100vh;max-width:100%;width:100%}.engineer-instructions{padding:16px}.engineer-instructions ol{padding-left:16px}}.dashboard-layout{background:#f5f6fa}@media (max-width:768px){.main-content{margin-left:0}.dashboard-layout{flex-direction:column}}.dashboard-container{flex:1 1;padding:24px 32px}.stats-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.stat-card h3{color:#1a1a2e;font-size:36px;margin:0 0 8px}.stat-card p{color:#666;font-size:14px;font-weight:600;margin:0}.stat-card.highlight-blue{border-left:4px solid #1976d2}.stat-card.highlight-orange{border-left:4px solid #f57c00}.stat-card.highlight-green{border-left:4px solid #388e3c}.filter-bar{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:24px}.filter-bar button{background:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .2s}.filter-bar button:hover{border-color:#0052cc;color:#0052cc}.filter-bar button.active{background:#0052cc;border-color:#0052cc;color:#fff}.jobs-grid{grid-gap:20px;gap:20px}@media (max-width:768px){.main-content{margin-left:0;padding-top:60px;width:100%}.jobs-grid{gap:10px;grid-template-columns:1fr}.stats-grid{gap:8px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:12px}.stat-card h3{font-size:20px}.stat-card p{font-size:11px}.dashboard-container{padding:12px}.filter-bar{flex-wrap:wrap;gap:6px;margin-bottom:12px}.filter-bar button{flex:1 1;font-size:12px;min-width:calc(50% - 3px);padding:8px 10px}.empty-state{padding:20px}.empty-state h3{font-size:18px}.empty-state p{font-size:13px}}.loading,.no-jobs{font-size:16px;padding:40px}.no-jobs{color:#999;text-align:center}.empty-state{box-shadow:0 2px 4px #0000000d;grid-column:1/-1;padding:40px}.empty-state h3{color:#1a1a2e;font-size:24px;margin:0 0 16px}.empty-state p{font-size:16px;margin:0 0 12px}.empty-state ul{color:#666;margin:20px auto;max-width:500px;text-align:left}.empty-state li{line-height:1.6;margin:8px 0}.jobs-controls{margin-bottom:24px}.search-input{border:1px solid #e0e0e0;font-size:15px;margin-bottom:20px;padding:14px}.search-input:focus{border-color:#0052cc}.status-filters{display:flex;flex-wrap:wrap;gap:12px}.status-filter-btn{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;color:#666;cursor:pointer;display:flex;font-weight:600;gap:6px;padding:10px 16px;transition:all .2s}.status-filter-btn:hover{border-color:#0052cc;color:#0052cc}.status-filter-btn.active{background:#0052cc;border-color:#0052cc;color:#fff}.status-filter-btn .count{font-size:12px;opacity:.8}.no-results{color:#999;font-size:16px;padding:40px;text-align:center}.jobs-by-location{display:flex;flex-direction:column;gap:32px}.location-group,.location-header{margin-bottom:16px}.location-header{align-items:center;background:linear-gradient(135deg,#003d5c,#0052cc);border-bottom:3px solid #f7941d;border-radius:8px;box-shadow:0 2px 8px #003d5c33;display:flex;justify-content:space-between;padding:16px 20px}.location-header h2{color:#fff;font-size:20px;font-weight:700;letter-spacing:.3px;margin:0}.location-count{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:20px;color:#ffffffe6;font-size:14px;font-weight:600;padding:6px 12px}body.dark-mode .location-header{background:linear-gradient(135deg,#1e3a8a,#2563eb);box-shadow:0 2px 8px #2563eb4d}body.dark-mode .status-filter-btn{background:#1a1a2e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .status-filter-btn:hover{border-color:#2563eb;color:#2563eb}body.dark-mode .status-filter-btn.active{background:#2563eb;border-color:#2563eb;color:#fff}body.dark-mode .search-input{background:#1a1a2e;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .search-input:focus{border-color:#2563eb}@media (max-width:768px){.main-content{margin-left:0;min-height:100vh;width:100%}.jobs-container{padding:10px}.jobs-grid{gap:8px;grid-template-columns:1fr}.status-filters{flex-wrap:wrap;gap:5px;margin-bottom:10px}.status-filter-btn{border-radius:4px;flex:1 1;font-size:11px;min-width:calc(50% - 2.5px);padding:7px 8px}.search-input{border-radius:6px;font-size:13px;margin-bottom:10px;padding:8px 12px}.location-header{border-radius:6px;margin-bottom:8px;padding:10px 12px}.location-header h2{font-size:14px}.location-count{font-size:11px;padding:3px 8px}}.monthly-calendar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-height:calc(100vh - 40px);overflow-y:auto;padding:28px;position:-webkit-sticky;position:sticky;top:20px}.calendar-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.calendar-header h3{color:#333;font-size:20px;font-weight:700;margin:0}.calendar-controls{align-items:center;display:flex;gap:8px}.nav-btn,.today-btn{background:#f5f5f5;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.nav-btn{font-size:18px;padding:8px 12px}.nav-btn:hover,.today-btn:hover{background:#e0e0e0}.today-btn{background:#4285f4;color:#fff}.today-btn:hover{background:#357ae8}.calendar-month-title{color:#333;font-size:18px;font-weight:700;margin-bottom:16px;text-align:center}.calendar-weekdays{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday{color:#666;font-size:12px;font-weight:700;padding:8px 0;text-align:center;text-transform:uppercase}.calendar-grid{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:16px}.calendar-day{background:#fafafa;border:2px solid #0000;border-radius:8px;min-height:100px;overflow:hidden;padding:10px;position:relative;transition:all .2s}.calendar-day.empty{background:#0000;border:none}.calendar-day.has-jobs{background:linear-gradient(135deg,#667eea1a,#764ba21a);border-color:#667eea}.calendar-day.today{background:linear-gradient(135deg,#4285f433,#357ae833);border-color:#4285f4;border-width:3px}.calendar-day.has-jobs.today{background:linear-gradient(135deg,#4285f44d,#667eea4d);border-color:#4285f4}.day-number{color:#333;font-size:16px;font-weight:700;margin-bottom:6px}.day-jobs{display:flex;flex-direction:column;gap:4px}.job-count{color:#667eea;font-weight:600;margin-bottom:6px}.job-postcodes{display:flex;flex-direction:column;gap:2px}.postcode-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;color:#fff;display:inline-block;font-size:11px;font-weight:700;max-width:100%;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.more-jobs{background:#f0f0f0;border-radius:4px;color:#666;font-size:10px;font-weight:600;padding:2px 6px;text-align:center}.calendar-legend{border-top:2px solid #f0f0f0;display:flex;gap:16px;justify-content:center;padding-top:16px}.legend-item{align-items:center;color:#666;display:flex;font-size:12px;gap:8px}.legend-color{border:2px solid #ddd;border-radius:4px;height:20px;width:20px}.legend-color.has-jobs-color{background:linear-gradient(135deg,#667eea4d,#764ba24d);border-color:#667eea}.legend-color.today-color{background:linear-gradient(135deg,#4285f44d,#357ae84d);border-color:#4285f4}@media (max-width:1024px){.monthly-calendar{margin-bottom:24px;max-height:none;position:static}.calendar-day{min-height:70px;padding:6px}.day-number{font-size:12px}.job-count{font-size:10px}.postcode-badge{font-size:9px;padding:2px 4px}}@media (max-width:768px){.monthly-calendar{padding:16px}.calendar-header h3,.calendar-month-title{font-size:16px}.calendar-day{min-height:60px;padding:4px}.weekday{font-size:10px;padding:6px 0}.postcode-badge{font-size:8px;padding:2px 3px}}.day-jobs-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.day-jobs-modal-content{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.day-jobs-modal-header{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom:1px solid #e5e7eb;color:#fff;display:flex;justify-content:space-between;padding:20px 24px}.day-jobs-modal-header h3{font-size:20px;font-weight:600;margin:0}.day-jobs-modal-header .modal-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:background .2s;width:32px}.day-jobs-modal-header .modal-close-btn:hover{background:#ffffff4d}.day-jobs-modal-body{flex:1 1;overflow-y:auto;padding:20px 24px}.day-jobs-list{grid-gap:16px;display:grid;gap:16px}.calendar-day.has-jobs.selected{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:2px solid #3b82f6;box-shadow:0 0 0 2px #3b82f64d}.calendar-day.has-jobs:hover{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);box-shadow:0 4px 8px #0000001a;transform:translateY(-2px);transition:all .2s ease}body.dark-mode .day-jobs-modal-content{background:#1f2937;color:#f3f4f6}body.dark-mode .day-jobs-modal-header{background:linear-gradient(135deg,#1e3a8a,#1e40af);border-bottom-color:#374151}body.dark-mode .day-jobs-modal-body{background:#1f2937}.jobs-with-calendar-layout{grid-gap:24px;align-items:start;display:grid;gap:24px;grid-template-columns:1fr 1fr}.jobs-content-area{min-width:0}.calendar-sidebar{align-self:start;max-height:calc(100vh - 2rem);min-width:0;overflow-y:auto;position:-webkit-sticky;position:sticky;top:1rem}@media (max-width:1024px){.jobs-with-calendar-layout{gap:16px;grid-template-columns:1fr}.calendar-sidebar{max-height:none;order:1;position:relative;top:auto}}.page-container{margin:0 auto;max-width:1400px;padding:2rem}.filter-section{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;display:flex;gap:1rem;margin-bottom:2rem;padding:1.5rem}.filter-section label{color:#333;font-size:1rem;font-weight:600}.engineer-select{background:#fff;border:2px solid #e0e0e0;border-radius:6px;cursor:pointer;flex:1 1;font-size:1rem;max-width:400px;padding:.75rem;transition:border-color .2s}.engineer-select:hover{border-color:#0052cc}.engineer-select:focus{border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a;outline:none}.engineer-groups{display:flex;flex-direction:column;gap:2rem}.engineer-group{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.engineer-group-header{align-items:center;background:linear-gradient(135deg,#0052cc,#0747a6);color:#fff;display:flex;justify-content:space-between;padding:1.5rem}.engineer-group-header h3{font-size:1.25rem;font-weight:600;margin:0}.engineer-group-header .job-count{background:#fff3;border-radius:20px;font-size:.9rem;font-weight:500;padding:.5rem 1rem}.jobs-grid{padding:1.5rem}.empty-state{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:3rem;text-align:center}.empty-state h3{color:#333;margin-bottom:.5rem}.empty-state p{color:#666;margin:0}.loading{color:#666;font-size:1.1rem;padding:3rem;text-align:center}@media (max-width:768px){.page-container{padding:1rem}.filter-section{align-items:stretch;flex-direction:column}.engineer-select{max-width:none}.jobs-grid{grid-template-columns:1fr}.engineer-group-header{align-items:flex-start;flex-direction:column;gap:.5rem}}.invoice-stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.invoice-stat-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.invoice-stat-card.pending{border-left:4px solid #f57c00}.invoice-stat-card.paid{border-left:4px solid #388e3c}.invoice-stat-card.revenue{background:linear-gradient(135deg,#0052cc,#003d99);color:#fff}.invoice-stat-card h3{color:#1a1a2e;font-size:32px;margin:0 0 8px}.invoice-stat-card.revenue h3{color:#fff}.invoice-stat-card p{color:#666;font-size:14px;font-weight:600;margin:0}.invoice-stat-card.revenue p{color:#ffffffe6}.invoices-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow-x:auto}.invoices-table{border-collapse:collapse;width:100%}.invoices-table thead{background:#f5f6fa}.invoices-table th{color:#666;font-size:14px;font-weight:600;padding:16px;text-align:left;text-transform:uppercase}.invoices-table td{border-top:1px solid #f0f0f0;color:#333;font-size:14px;padding:16px}.invoice-number{color:#0052cc;font-family:monospace;font-weight:600}.amount{color:#1a1a2e;font-weight:600}.invoice-status{border-radius:16px;color:#fff;display:inline-block;font-size:12px;font-weight:600;padding:6px 12px}.invoice-actions{display:flex;gap:8px}.mark-paid-btn,.mark-unpaid-btn{border:none;border-radius:6px;cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;transition:all .2s}.mark-paid-btn{background:#388e3c;color:#fff}.mark-paid-btn:hover{background:#2e7d32}.mark-unpaid-btn{background:#d32f2f;color:#fff}.mark-unpaid-btn:hover{background:#c62828}.no-invoices{color:#999;padding:40px;text-align:center}@media (max-width:768px){.invoice-stats-grid{grid-template-columns:repeat(2,1fr)}.invoices-table-container{overflow-x:auto}.invoices-table{min-width:600px}}.action-stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.action-stat-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:24px;transition:all .3s ease}.action-stat-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.action-stat-card.pending{background:linear-gradient(135deg,#fff8e1,#fffbf0);border-left:4px solid #f57c00}.action-stat-card.progress{background:linear-gradient(135deg,#e3f2fd,#f0f8ff);border-left:4px solid #1976d2}.action-stat-card.completed{background:linear-gradient(135deg,#e8f5e8,#f0fdf4);border-left:4px solid #388e3c}.action-stat-card h3{color:#1a1a2e;font-size:36px;margin:0 0 8px}.action-stat-card p{color:#666;font-size:14px;font-weight:600;margin:0}.actions-list{display:flex;flex-direction:column;gap:16px}.no-actions{background:#fff;border-radius:8px;color:#999;font-size:16px;padding:40px;text-align:center}.action-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;gap:16px;padding:20px;transition:all .3s ease}.action-item:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-2px)}.action-icon{align-items:center;background:#f5f6fa;border-radius:8px;display:flex;font-size:32px;height:50px;justify-content:center;width:50px}.action-content{flex:1 1}.action-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.action-header h4{color:#1a1a2e;font-size:18px;margin:0}.action-status{border-radius:16px;color:#fff;font-size:12px;font-weight:600;padding:6px 12px}.action-description{color:#666;font-size:14px;line-height:1.5;margin:0 0 8px}.action-job{color:#999;font-family:monospace;font-size:12px;margin:0 0 12px}.action-footer{align-items:center;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;padding-top:12px}.action-date{color:#999;font-size:12px}.action-buttons{display:flex;gap:8px}.execute-btn,.reopen-btn{border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:all .2s}.execute-btn{background:#0052cc;color:#fff}.execute-btn:hover{background:#003d99}.reopen-btn{background:#f57c00;color:#fff}.reopen-btn:hover{background:#e65100}body.dark-mode .action-stat-card{background:linear-gradient(135deg,#374151,#1f2937);border-color:#ffffff1a;color:#fff}body.dark-mode .action-stat-card.pending{background:linear-gradient(135deg,#451a03,#78350f)}body.dark-mode .action-stat-card.progress{background:linear-gradient(135deg,#1e3a8a,#1e40af)}body.dark-mode .action-stat-card.completed{background:linear-gradient(135deg,#14532d,#166534)}body.dark-mode .action-item{background:linear-gradient(135deg,#374151,#1f2937);border-color:#ffffff1a;color:#fff}body.dark-mode .action-header h4{color:#fff}body.dark-mode .action-description{color:#d1d5db}body.dark-mode .action-date,body.dark-mode .action-job{color:#9ca3af}body.dark-mode .no-actions{background:linear-gradient(135deg,#374151,#1f2937);color:#9ca3af}@media (max-width:768px){.action-stats-grid{grid-template-columns:repeat(2,1fr)}.action-footer,.action-item{flex-direction:column}.action-footer{align-items:flex-start;gap:12px}}.messages-page{background:#f5f7fa;display:flex;flex-direction:column;height:100vh;overflow:hidden}.messages-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border-radius:20px 20px 0 0;box-shadow:0 8px 32px #0000001a;display:flex;flex:1 1;margin:0 20px 20px}.conversations-sidebar{background:#fff;border-right:1px solid #e2e8f0;box-shadow:2px 0 8px #0000000d;display:flex;flex-direction:column;height:100%;overflow:hidden;width:420px}.sidebar-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;display:flex;flex-shrink:0;justify-content:space-between;padding:20px}.sidebar-header h3{color:#1e293b;font-size:18px;font-weight:600;margin:0}.desktop-search-container{background:#fff;border-bottom:1px solid #e2e8f0;padding:12px 16px}.desktop-search-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;font-size:14px;padding:10px 16px;transition:all .2s ease;width:100%}.desktop-search-input:focus{background:#fff;border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.desktop-search-input::placeholder{color:#94a3b8}.mobile-search-container{background:#fff;border-bottom:1px solid #e2e8f0;padding:12px 16px}.mobile-search-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;font-size:14px;padding:10px 16px;transition:all .2s ease;width:100%}.mobile-search-input:focus{background:#fff;border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.mobile-search-input::placeholder{color:#94a3b8}.filter-btn{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .3s ease;white-space:nowrap}.filter-btn:hover{background:#fff3;transform:translateY(-1px)}.filter-btn.active{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;box-shadow:0 2px 8px #10b9814d}.conversations-list{flex:1 1;max-height:calc(100vh - 200px);min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px}.conversation-item{background:#fff;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;margin:6px 8px;padding:16px;transition:all .2s ease}.conversation-item:hover{background:#f8fafc;border-color:#cbd5e1;box-shadow:0 2px 8px #0000000d;transform:translateY(-1px)}.conversation-item.active{background:#eff6ff;border-color:#4285f4;box-shadow:0 2px 8px #4285f426}.conversation-item.new{border-left:4px solid #10b981}.conversation-item.ongoing{border-left:4px solid #3b82f6}.conversation-item.completed{border-left:4px solid #6b7280}.conversation-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.conversation-title{color:#1e293b;flex:1 1;font-size:14px;font-weight:600;line-height:1.4}.conversation-status{border-radius:6px;font-size:11px;font-weight:600;margin-left:8px;padding:4px 8px;text-transform:uppercase}.conversation-item.new .conversation-status{background:#10b981;color:#fff}.conversation-item.ongoing .conversation-status{background:#3b82f6;color:#fff}.conversation-item.completed .conversation-status{background:#6b7280;color:#fff}.conversation-meta{align-items:center;color:#64748b;display:flex;font-size:12px;justify-content:space-between;margin-top:4px}.last-activity{font-style:italic}.conversation-preview{margin-top:6px}.conversation-last-message{color:#64748b;font-size:12px;line-height:1.4;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-area{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;display:flex;flex:1 1;flex-direction:column}.chat-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 4px #0000000d;color:#1e293b;display:flex;justify-content:space-between;padding:20px 24px}.chat-job-info h3{color:#1e293b;font-size:18px;font-weight:600;margin-bottom:4px}.chat-job-info p{color:#64748b;font-size:14px}.chat-actions{display:flex;gap:12px}.action-btn{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease}.action-btn:hover{background:#e2e8f0;border-color:#cbd5e1;transform:translateY(-1px)}.messages-view{background:#f8fafc;flex:1 1;overflow-y:auto;padding:20px;position:relative}.no-messages{align-items:center;color:#64748b;display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px 20px}.no-messages-icon{font-size:64px;margin-bottom:20px;opacity:.3}.no-messages h4{color:#334155;font-size:20px;font-weight:600;margin-bottom:8px}.no-messages p{color:#64748b;font-size:16px}.messages-list{gap:4px;min-height:100%}.message{display:flex;margin-bottom:4px;position:relative}.message.sent{justify-content:flex-end;margin-left:20%}.message.received{justify-content:flex-start;margin-right:20%}.message-content{word-wrap:break-word;border-radius:18px;font-size:16px;line-height:1.3;max-width:80%;min-width:60px;padding:8px 12px;position:relative}.message.sent .message-content{background:#007aff;border-bottom-right-radius:4px;box-shadow:0 1px 2px #0000001a;color:#fff}.message.sent.pending .message-content{background:#007aff;opacity:.6;position:relative}.message.sent.pending .message-content:after{bottom:4px;content:"🕐";font-size:14px;opacity:.7;position:absolute;right:-24px}.message.received .message-content{background:#e5e5ea;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a;color:#000}.message-text{font-size:16px;line-height:1.3;margin:0;word-break:break-word}.message-meta{display:none}.message-sender{font-size:11px;font-weight:500}.message-time{font-size:11px;opacity:.6}.message-status{border-radius:10px;font-size:10px;font-weight:600;letter-spacing:.5px;padding:2px 6px;text-transform:uppercase}.message-status.status-pending{background:#ffc107;color:#856404}.message-status.status-sent{background:#28a745;color:#fff}.message-status.status-delivered{background:#17a2b8;color:#fff}.message-status.status-failed{background:#dc3545;color:#fff}.message-group{margin-bottom:20px}.message-group:last-child{margin-bottom:0}.typing-indicator{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:18px;border-bottom-left-radius:4px;display:flex;margin-left:0;max-width:80px;padding:12px 16px}.typing-dots{display:flex;gap:4px}.typing-dot{animation:typing 1.4s ease-in-out infinite;background:#999;border-radius:50%;height:6px;width:6px}.typing-dot:first-child{animation-delay:-.32s}.typing-dot:nth-child(2){animation-delay:-.16s}@keyframes typing{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.message-input-area{background:#fff;border-top:1px solid #e2e8f0;padding:20px}.input-actions{display:flex;gap:8px;margin-bottom:12px}.canned-responses-btn{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .3s ease}.canned-responses-btn:hover{background:#e2e8f0;border-color:#cbd5e1}.canned-responses-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;max-height:200px;overflow-y:auto;padding:16px}.message-form{background:#0000;border:none;display:flex;gap:12px;padding:0}.input-group{display:flex;flex:1 1;gap:12px}.message-input{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;flex:1 1;font-size:15px;font-weight:400;padding:12px 16px;transition:all .2s ease}.message-input:focus{background:#fff;border-color:#4285f4;box-shadow:0 0 0 3px #4285f41a;outline:none}.send-button{background:#4285f4;border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;overflow:hidden;padding:12px 20px;position:relative;transition:all .2s ease}.send-button:hover:not(:disabled){background:#357ae8;box-shadow:0 4px 12px #4285f44d;transform:translateY(-1px)}.send-button:disabled{cursor:not-allowed;opacity:.5}.no-selection{align-items:center;color:#64748b;display:flex;flex-direction:column;height:100%;justify-content:center;text-align:center}.no-selection-icon{font-size:48px;margin-bottom:16px}.no-selection h3{color:#1e293b;font-size:18px;font-weight:600;margin-bottom:8px}.no-selection p{color:#64748b;font-size:14px}.loading-spinner{border:4px solid #e2e8f0}body.dark-mode .messages-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}body.dark-mode .messages-container{background:#0003}body.dark-mode .conversations-sidebar{background:#111827;border-right-color:#1f2937}body.dark-mode .sidebar-header{background:#111827;border-bottom-color:#1f2937}body.dark-mode .sidebar-header h3{color:#f9fafb}body.dark-mode .desktop-search-container{background:#111827;border-bottom-color:#1f2937}body.dark-mode .desktop-search-input{background:#1f2937;border-color:#374151;color:#f9fafb}body.dark-mode .desktop-search-input:focus{background:#1f2937;border-color:#4285f4}body.dark-mode .desktop-search-input::placeholder{color:#9ca3af}body.dark-mode .mobile-search-container{background:#111827;border-bottom-color:#1f2937}body.dark-mode .mobile-search-input{background:#1f2937;border-color:#374151;color:#f9fafb}body.dark-mode .mobile-search-input:focus{background:#1f2937;border-color:#4285f4}body.dark-mode .mobile-search-input::placeholder{color:#9ca3af}body.dark-mode .conversations-list{background:#111827}body.dark-mode .conversation-item{background:#1f2937;border-color:#374151}body.dark-mode .conversation-item:hover{background:#374151;border-color:#4b5563}body.dark-mode .conversation-item.active{background:#1e3a8a;border-color:#3b82f6}body.dark-mode .conversation-title{color:#f9fafb}body.dark-mode .conversation-meta{color:#9ca3af}body.dark-mode .job-id{color:#d1d5db}body.dark-mode .last-activity{color:#9ca3af}body.dark-mode .conversation-preview{margin-top:6px}body.dark-mode .conversation-last-message{color:#9ca3af}body.dark-mode .chat-area{background:#0000001a}body.dark-mode .chat-header{background:#111827;border-bottom-color:#1f2937;color:#f9fafb}body.dark-mode .chat-job-info h3{color:#f9fafb}body.dark-mode .chat-job-info p{color:#9ca3af}body.dark-mode .action-btn{background:#1f2937;border-color:#374151;color:#f9fafb}body.dark-mode .action-btn:hover{background:#374151;border-color:#4b5563}body.dark-mode .message-form,body.dark-mode .message-input-area{background:#0003}body.dark-mode .message-input{background:#0000004d;border-color:#2a2a3e;color:#e0e0e0}body.dark-mode .message-input:focus{background:#0006;border-color:#4f46e5}body.dark-mode .canned-responses-btn{background:#3a3a4e;border-color:#4a4a5e;color:#fff}body.dark-mode .canned-responses-btn:hover{background:#4a4a5e;border-color:#5a5a6e}body.dark-mode .canned-responses-panel{background:#3a3a4e;border-color:#4a4a5e}body.dark-mode .messages-view{background:#1c1c1e}body.dark-mode .message.sent .message-content{background:#007aff;color:#fff}body.dark-mode .message.received .message-content{background:#2c2c2e;color:#fff}body.dark-mode .no-messages h4{color:#e2e8f0}body.dark-mode .no-messages p{color:#a0aec0}body.dark-mode .no-messages h4,body.dark-mode .no-selection h3{color:#e0e0e0}body.dark-mode .no-messages p,body.dark-mode .no-selection p{color:#a0a0a0}@media (max-width:768px){.messages-container{border-radius:0;margin:0}.messages-container,.mobile-chat-list{background:#fff;flex-direction:column;height:100vh}.mobile-chat-list{display:flex}.mobile-chat-header{justify-content:space-between;padding:16px 20px}.mobile-chat-header h2{font-size:20px;font-weight:600;margin:0}.chat-header-actions{align-items:center;display:flex;gap:16px}.filter-btn,.menu-btn,.search-btn{background:none;border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:20px;padding:8px;transition:background-color .2s}.filter-btn:hover,.menu-btn:hover,.search-btn:hover{background:#ffffff1a}.filter-btn.active{background:#10b9814d;border-radius:50%}.mobile-conversations{background:#fff;flex:1 1;overflow-y:auto}.mobile-chat-item{align-items:center;background:#fff;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;padding:12px 20px;transition:background-color .2s}.mobile-chat-item:hover{background:#f5f5f5}.mobile-chat-item.new{background:#f0f8ff}body.dark-mode .mobile-chat-item{background:#1f2937;border-bottom-color:#374151}body.dark-mode .mobile-chat-item:hover{background:#374151}body.dark-mode .mobile-chat-item.new{background:#1e3a8a}body.dark-mode .chat-name{color:#f9fafb}body.dark-mode .chat-time{color:#9ca3af}body.dark-mode .last-message{color:#d1d5db}body.dark-mode .mobile-chat-header{background:#111827;border-bottom-color:#1f2937;color:#f9fafb}body.dark-mode .back-btn,body.dark-mode .mobile-chat-header h2{color:#f9fafb}body.dark-mode .back-btn:hover{background:#1f2937}body.dark-mode .chat-details h3{color:#f9fafb}body.dark-mode .chat-details p{color:#9ca3af}body.dark-mode .mobile-conversations{background:#111827}.chat-avatar{margin-right:12px;position:relative}.avatar-circle{align-items:center;background:linear-gradient(135deg,#4285f4,#357ae8);border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:50px;justify-content:center;width:50px}.unread-indicator{background:#10b981;border:2px solid #fff;border-radius:50%;height:12px;position:absolute;right:-2px;top:-2px;width:12px}.chat-content{flex:1 1;min-width:0}.chat-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.chat-name{color:#1e293b;font-size:16px;font-weight:600;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-time{color:#999;font-size:12px;white-space:nowrap}.chat-preview{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.last-message{color:#666;flex:1 1;font-size:14px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{background:#4285f4;border-radius:10px;color:#fff;font-size:12px;font-weight:600;min-width:18px;padding:2px 6px;text-align:center}.chat-meta{color:#999;display:flex;font-size:12px;gap:8px}.job-ref{font-weight:500}.mobile-chat-view{background:#fff;display:flex;flex-direction:column;height:100vh;overflow:hidden}.mobile-chat-header{align-items:center;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 2px 4px #0000000d;color:#1e293b;display:flex;gap:12px;padding:12px 16px}.back-btn{background:none;border:none;border-radius:50%;color:#1e293b;cursor:pointer;font-size:24px;padding:8px;transition:background-color .2s}.back-btn:hover{background:#f8fafc}.chat-info{flex:1 1;gap:12px}.chat-avatar-small,.chat-info{align-items:center;display:flex}.chat-avatar-small{background:linear-gradient(135deg,#4285f4,#357ae8);border-radius:50%;color:#fff;font-size:12px;font-weight:600;height:40px;justify-content:center;width:40px}.chat-details h3{color:#1e293b;font-size:16px;font-weight:600;margin:0}.chat-details p{color:#64748b;font-size:12px;margin:0}.chat-actions{display:flex;gap:8px}.action-btn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;cursor:pointer;font-size:14px;font-weight:500;padding:8px 12px;transition:all .2s ease}.action-btn:hover{background:#e2e8f0;border-color:#cbd5e1}.mobile-messages-view{background:#f8fafc;flex:1 1;max-height:calc(100vh - 200px);min-height:0;overflow-y:auto;padding:16px 8px}.mobile-messages-list{display:flex;flex-direction:column;gap:8px}.mobile-message{display:flex;margin-bottom:8px}.mobile-message.sent{justify-content:flex-end}.mobile-message.received{justify-content:flex-start}.message-bubble{word-wrap:break-word;border-radius:18px;max-width:80%;padding:8px 12px;position:relative}.mobile-message.sent .message-bubble{background:#4285f4;border-bottom-right-radius:4px;color:#fff}.mobile-message.sent.pending .message-bubble{opacity:.6;position:relative}.mobile-message.sent.pending .message-bubble:after{bottom:4px;content:"🕐";font-size:12px;opacity:.7;position:absolute;right:-20px}.mobile-message.received .message-bubble{background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000000d}.mobile-message.sent .message-text{color:#fff}.message-text{color:#1e293b;font-size:16px;line-height:1.3;margin:0}.message-time{color:#999;font-size:11px;margin-top:4px;text-align:right}.mobile-message.received .message-time{text-align:left}.mobile-message-input{background:#fff;border-top:1px solid #e2e8f0;flex-shrink:0;min-height:60px;padding:12px}.mobile-canned-responses{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:8px;max-height:120px;overflow-y:auto;padding:8px}.mobile-message-form{background:#fff;border:1px solid #e0e0e0;border-radius:20px;display:flex;gap:6px;padding:6px}.mobile-message-input-field{background:#0000;border:none;flex:1 1;font-size:15px;outline:none;padding:6px 12px}.mobile-send-button{align-items:center;background:#4285f4;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:14px;height:36px;justify-content:center;transition:all .2s ease;width:36px}.mobile-send-button:hover:not(:disabled){background:#357ae8;transform:scale(1.05)}.mobile-send-button:disabled{background:#ccc;cursor:not-allowed}.mobile-no-messages{align-items:center;color:#666;display:flex;flex-direction:column;height:100%;justify-content:center;padding:40px 20px;text-align:center}.mobile-no-messages .no-messages-icon{font-size:48px;margin-bottom:16px;opacity:.5}.mobile-no-messages h4{color:#333;font-size:18px;font-weight:600;margin-bottom:8px}.mobile-no-messages p{color:#666;font-size:14px}.chat-area,.conversations-sidebar{display:none}}.job-tracking-page{background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;flex-direction:column;height:100vh;overflow:hidden}.tracking-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffc;border-radius:20px 20px 0 0;box-shadow:0 8px 32px #0000001a;display:flex;flex:1 1;flex-direction:column;margin:0 20px 20px;overflow:hidden}.tracking-header{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;padding:24px}.filters-section{align-items:center;display:flex;flex:1 1;gap:16px}.search-box{min-width:300px;position:relative}.search-input{border:1px solid #e2e8f0;border-radius:8px;padding:12px 16px;transition:all .3s ease}.search-input:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.filter-group{align-items:center;display:flex;gap:12px}.date-filter,.filter-select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:14px;padding:12px 16px;transition:all .3s ease}.date-filter:focus,.filter-select:focus{border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a;outline:none}.view-controls{align-items:center;display:flex;gap:12px}.view-toggle{background:#f1f5f9;border-radius:8px;display:flex;padding:4px}.view-btn{align-items:center;background:#0000;border:none;display:flex;gap:6px;transition:all .3s ease}.view-btn.active{background:#fff;box-shadow:0 2px 4px #0000001a;color:#4f46e5}.view-btn:hover:not(.active){background:#ffffff80}.kanban-board{background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;flex:1 1;gap:20px;overflow-x:auto;padding:20px}.kanban-column{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;display:flex;flex-direction:column;max-height:calc(100vh - 200px);min-width:300px}.column-header{align-items:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e2e8f0;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:16px 20px}.column-header h3{color:#1e293b;font-size:16px;font-weight:600;margin:0}.job-count{background:#e2e8f0;border-radius:12px;color:#475569;font-size:12px;font-weight:500;padding:4px 8px}.column-content{display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:16px}.kanban-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 4px #0000000d;cursor:pointer;padding:16px;transition:all .3s ease}.kanban-card:hover{border-color:#4f46e5;box-shadow:0 8px 25px #0000001a;transform:translateY(-2px)}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.job-title{color:#1e293b;flex:1 1;font-size:14px;font-weight:600;line-height:1.4;margin-right:12px}.card-content{margin-bottom:12px}.job-meta{align-items:center;color:#64748b;display:flex;font-size:12px;justify-content:space-between;margin-bottom:8px}.job-id{color:#4f46e5;font-weight:500}.location{background:#f1f5f9;border-radius:4px;font-size:11px;padding:2px 6px}.appointment-info{color:#475569;display:flex;flex-direction:column;font-size:12px;gap:4px;margin-bottom:8px}.appointment-date,.appointment-time{align-items:center;display:flex;gap:4px}.address-info{align-items:flex-start;display:flex;gap:4px;margin-bottom:8px}.address-info,.card-footer{color:#64748b;font-size:12px}.card-footer{border-top:1px solid #f1f5f9;padding-top:8px}.assigned-to{align-items:center;display:flex;gap:4px}.list-view{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;flex:1 1;margin:20px;overflow:hidden}.list-header{grid-gap:16px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid #e2e8f0;color:#475569;display:grid;font-size:14px;font-weight:600;gap:16px;grid-template-columns:2fr 1fr 1fr 1fr 1.5fr;padding:16px 20px}.list-content{max-height:calc(100vh - 300px);overflow-y:auto}.list-item{grid-gap:16px;border-bottom:1px solid #f1f5f9;cursor:pointer;display:grid;gap:16px;grid-template-columns:2fr 1fr 1fr 1fr 1.5fr;padding:16px 20px;transition:all .3s ease}.list-item:hover{background:#f8fafc;transform:translateX(4px)}.list-cell{display:flex;flex-direction:column;font-size:14px;justify-content:center}.job-info .job-title{color:#1e293b;font-weight:600;margin-bottom:4px}.job-info .job-id,.time{color:#64748b;font-size:12px}.time{margin-top:2px}.no-date{color:#94a3b8;font-style:italic}.loading-state{align-items:center;color:#64748b;display:flex;flex-direction:column;height:100%;justify-content:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#4f46e5;height:40px;margin-bottom:16px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}body.dark-mode .job-tracking-page{background:linear-gradient(135deg,#1a1a2e,#16213e)}body.dark-mode .tracking-container{background:#0003}body.dark-mode .tracking-header{background:linear-gradient(135deg,#1a1a2e,#16213e);border-bottom-color:#3a3a4e;color:#fff}body.dark-mode .date-filter,body.dark-mode .filter-select,body.dark-mode .search-input{background:#2a2a3e;border-color:#3a3a4e;color:#fff}body.dark-mode .date-filter:focus,body.dark-mode .filter-select:focus,body.dark-mode .search-input:focus{border-color:#4f46e5}body.dark-mode .view-toggle{background:#2a2a3e}body.dark-mode .view-btn.active{background:#4f46e5;color:#fff}body.dark-mode .kanban-board{background:linear-gradient(135deg,#1a1a2e,#16213e)}body.dark-mode .kanban-column{background:#2a2a3e;border-color:#3a3a4e}body.dark-mode .column-header{background:linear-gradient(135deg,#2a2a3e,#1a1a2e);border-bottom-color:#3a3a4e;color:#fff}body.dark-mode .column-header h3{color:#fff}body.dark-mode .job-count{background:#3a3a4e;color:#a1a1aa}body.dark-mode .kanban-card{background:#2a2a3e;border-color:#3a3a4e;color:#fff}body.dark-mode .kanban-card:hover{border-color:#4f46e5}body.dark-mode .job-title{color:#fff}body.dark-mode .job-meta{color:#a1a1aa}body.dark-mode .job-id{color:#4f46e5}body.dark-mode .location{background:#3a3a4e;color:#a1a1aa}body.dark-mode .address-info,body.dark-mode .appointment-info{color:#a1a1aa}body.dark-mode .card-footer{border-top-color:#3a3a4e;color:#a1a1aa}body.dark-mode .list-view{background:#2a2a3e}body.dark-mode .list-header{background:linear-gradient(135deg,#2a2a3e,#1a1a2e)}body.dark-mode .list-header,body.dark-mode .list-item{border-bottom-color:#3a3a4e;color:#fff}body.dark-mode .list-item:hover{background:#3a3a4e}body.dark-mode .job-info .job-title{color:#fff}body.dark-mode .job-info .job-id,body.dark-mode .time{color:#a1a1aa}body.dark-mode .no-date{color:#71717a}@media (max-width:768px){.tracking-container{border-radius:15px 15px 0 0;margin:0 10px 10px}.tracking-header{align-items:stretch;flex-direction:column;padding:16px}.filters-section{flex-direction:column;gap:12px}.search-box{min-width:auto}.filter-group{align-items:stretch;flex-direction:column}.kanban-board{gap:16px;padding:16px}.kanban-column{min-width:280px}.list-header,.list-item{gap:8px;grid-template-columns:1fr}.list-header{display:none}.list-item{background:#fff;border-radius:8px;margin-bottom:8px;padding:12px 16px}body.dark-mode .list-item{background:#2a2a3e}}.kanban-column.wide-column{flex:0 0 48%;min-width:48%}.status-board{gap:20px}.column-header{border-top:4px solid}.empty-column{color:#94a3b8;font-size:14px;padding:40px 20px;text-align:center}.progress-indicator{align-items:center;background:#f3f4f6;border-radius:6px;display:flex;font-size:12px;gap:8px;margin-top:8px;padding:6px 10px}.progress-label{color:#6b7280;font-weight:600}.progress-value{color:#3b82f6;font-weight:700}.progress-badge{background:#eff6ff;border-radius:12px;color:#3b82f6;font-size:12px;font-weight:600;padding:4px 10px}.empty-list{color:#94a3b8;font-size:16px;padding:60px 20px;text-align:center}body.dark-mode .empty-column,body.dark-mode .empty-list{color:#71717a}body.dark-mode .progress-indicator{background:#3a3a4e}body.dark-mode .progress-label{color:#a1a1aa}body.dark-mode .progress-badge{background:#3a3a4e;color:#60a5fa}.users-container{margin:0 auto;max-width:1400px;padding:24px}.users-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.btn-primary{background:#0052cc;border-radius:6px;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s ease}.btn-primary:hover{background:#0747a6;box-shadow:0 4px 8px #0052cc4d}.btn-primary:disabled{background:#ccc;cursor:not-allowed;transform:none}.btn-secondary{background:#f4f5f7;border:none;color:#172b4d;font-size:14px;font-weight:600;padding:12px 24px}.btn-secondary:hover{background:#e4e5e7}.error-banner{background:#ffebee;border-left:4px solid #c62828;border-radius:6px;color:#c62828;margin-bottom:24px;padding:16px}.users-tabs{display:flex;flex-direction:column;gap:32px}.tab-section{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;padding:24px}.tab-section h2{border-bottom:2px solid #f4f5f7;color:#1a1a2e;font-size:20px;margin:0 0 20px;padding-bottom:12px}.users-table{overflow-x:auto}.users-table table{border-collapse:collapse;width:100%}.users-table thead{background:#f4f5f7}.users-table th{color:#172b4d;font-size:14px;font-weight:600;padding:12px 16px;text-align:left}.users-table td{border-bottom:1px solid #f4f5f7;color:#333;font-size:14px;padding:16px}.users-table tbody tr:hover{background:#f9f9f9}.users-table .actions{display:flex;gap:8px}.btn-edit{background:#0052cc;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .2s ease}.btn-edit:hover{background:#0747a6}.btn-edit:disabled{background:#ccc;cursor:not-allowed}.btn-delete{background:#de350b;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;padding:8px 16px;transition:all .2s ease}.btn-delete:hover{background:#bf2600}.btn-delete:disabled{background:#ccc;cursor:not-allowed}.empty-message{color:#666;font-style:italic;padding:40px 20px;text-align:center}.modal-overlay{align-items:center;animation:fadeIn .2s ease;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:#fff;border-radius:8px;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid #f4f5f7;padding:24px}.modal-header h2{color:#1a1a2e;font-size:20px;margin:0}.modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#666;cursor:pointer;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal-close:hover{background:#f4f5f7;color:#333}.user-form{padding:24px}.form-group{margin-bottom:20px}.form-group label{color:#172b4d;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input,.form-group select{border:2px solid #dfe1e6;border-radius:4px;font-size:14px;padding:10px 12px;transition:all .2s ease;width:100%}.form-group input:focus,.form-group select:focus{border-color:#0052cc;box-shadow:0 0 0 3px #0052cc1a;outline:none}.form-group small{color:#666;display:block;font-size:12px;margin-top:4px}.error-message{background:#ffebee;border-radius:4px;color:#c62828;font-size:14px;margin-bottom:16px;padding:12px}.modal-actions{border-top:1px solid #f4f5f7;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px}@media (max-width:768px){.users-container{padding:16px}.users-table{overflow-x:scroll}.users-table table{min-width:600px}.modal-content{width:95%}}.calendar-setup-page{background:#f5f5f5;display:flex;min-height:100vh}.calendar-setup-container{margin:0 auto;max-width:1200px;padding:30px 20px}.calendar-setup-container h1{color:#333;margin-bottom:8px}.subtitle{color:#666;margin-bottom:30px}.actions-card,.engineers-card,.info-card,.progress-card,.status-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:24px}.actions-card h3,.engineers-card h3,.info-card h3,.progress-card h3,.status-card h3{color:#333;font-size:18px;margin-bottom:16px;margin-top:0}.status-row{border-bottom:1px solid #f0f0f0;color:#333;display:flex;justify-content:space-between;padding:12px 0}.status-row:last-of-type{border-bottom:none}.status-ok{color:#10b981;font-weight:600}.status-pending{color:#f59e0b;font-weight:600}.status-no{color:#ef4444;font-weight:600}.status-message{background:#f9fafb;border-radius:4px;color:#333;margin-top:16px;padding:12px}.button-group{display:flex;flex-wrap:wrap;gap:12px}.btn{border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:#4285f4}.btn-primary:hover:not(:disabled){background:#357ae8}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.engineers-list{display:flex;flex-direction:column;gap:12px}.engineer-item{align-items:center;background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:16px}.engineer-info{display:flex;flex-direction:column;gap:4px}.engineer-info strong{color:#333;font-size:16px}.engineer-email{color:#6b7280;font-size:14px}.status-badge{border-radius:4px;font-size:14px;font-weight:600;padding:6px 12px}.status-has-calendar{background:#d1fae5;color:#065f46}.status-no-calendar{background:#fef3c7;color:#92400e}.progress-log{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.progress-item{border-radius:4px;display:flex;font-family:Courier New,monospace;font-size:14px;gap:12px;padding:10px}.progress-time{color:#6b7280;flex-shrink:0}.progress-msg{color:#333}.progress-info{background:#eff6ff;border-left:3px solid #3b82f6}.progress-success{background:#d1fae5;border-left:3px solid #10b981}.progress-warning{background:#fef3c7;border-left:3px solid #f59e0b}.progress-error{background:#fee2e2;border-left:3px solid #ef4444}.progress-skip{background:#f3f4f6;border-left:3px solid #9ca3af}.info-card{background:#eff6ff;border-left:4px solid #3b82f6}.info-card h3{color:#1e40af}.info-card h4{color:#333;margin-bottom:8px;margin-top:16px}.info-card ol,.info-card ul{color:#333;padding-left:24px}.info-card li{line-height:1.6;margin-bottom:8px}@media (max-width:768px){.engineer-item{align-items:flex-start;gap:12px}.button-group,.engineer-item{flex-direction:column}.btn{width:100%}}.revenue-controls{align-items:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px;padding:16px}.control-group{align-items:center;display:flex;gap:12px}.control-group label{color:#000;font-weight:600}body.dark-mode .control-group label{color:#fff}.year-select{background:#fff;border:1px solid var(--border-color);border-radius:6px;color:#000;cursor:pointer;font-size:14px;padding:8px 12px}body.dark-mode .year-select{background:#1a1a1a;color:#fff}.view-btn{background:#fff;border:1px solid var(--border-color);border-radius:6px;color:#000;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}body.dark-mode .view-btn{background:#1a1a1a;color:#fff}.view-btn:hover{background:var(--border-color)}.view-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.revenue-stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:24px}.revenue-stat-card{align-items:center;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;display:flex;gap:16px;padding:20px;transition:transform .2s,box-shadow .2s}.revenue-stat-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.revenue-stat-card .stat-icon{font-size:36px;opacity:.9}.revenue-stat-card .stat-content h3{color:#000;font-size:28px;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}body.dark-mode .revenue-stat-card .stat-content h3{color:#fff}.revenue-stat-card .stat-content p{color:var(--text-secondary);font-size:13px;font-weight:500;line-height:1.4;margin:0}.revenue-charts{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr;margin-bottom:24px}.chart-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:24px}.chart-card h3{color:#000;font-size:20px;font-weight:700;letter-spacing:-.3px;margin:0 0 24px}body.dark-mode .chart-card h3{color:#fff}.revenue-table-container{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;margin-bottom:24px;overflow-x:auto;padding:24px}.revenue-table{border-collapse:collapse;width:100%}.revenue-table thead{background:var(--bg-secondary)}.revenue-table th{border-bottom:2px solid var(--border-color);color:#000;font-size:14px;font-weight:700;letter-spacing:.3px;opacity:.9;padding:14px 12px;text-align:left;text-transform:uppercase}body.dark-mode .revenue-table th{color:#fff}.revenue-table td{border-bottom:1px solid var(--border-color);color:#000;font-size:15px;line-height:1.5;padding:14px 12px}body.dark-mode .revenue-table td{color:#fff}.revenue-table tr:hover{background:var(--bg-secondary)}.revenue-table tr.selected{background:#0052cc1a}.revenue-amount{color:#06f;font-size:16px;font-weight:700;letter-spacing:-.3px}body.dark-mode .revenue-amount{color:#4da6ff}.view-month-btn{background:var(--primary);border-radius:4px;padding:6px 12px;transition:background .2s}.view-month-btn:hover{background:#003d99}.month-detail-modal{background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #0000001a;margin-top:24px;padding:24px}.modal-header{align-items:center;border-bottom:2px solid var(--border-color);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.modal-header h3{color:#000;font-size:20px;font-weight:600;margin:0}body.dark-mode .modal-header h3{color:#fff}.close-btn{align-items:center;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;padding:0;transition:background .2s;width:32px}.close-btn:hover,.month-summary{background:var(--bg-secondary)}.month-summary{border-radius:6px;display:flex;gap:32px;margin-bottom:24px;padding:16px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-item .label{color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.summary-item .value{color:#06f;font-size:24px;font-weight:700;letter-spacing:-.5px}body.dark-mode .summary-item .value{color:#4da6ff}.search-box{margin-bottom:20px}.search-input{background:#fff;border:1px solid var(--border-color);border-radius:6px;color:#000;font-size:14px;padding:10px 12px;width:100%}body.dark-mode .search-input{background:#1a1a1a;color:#fff}.search-input:focus{border-color:var(--primary);outline:none}.jobs-list{max-height:500px;overflow-y:auto}.jobs-table{border-collapse:collapse;width:100%}.jobs-table thead{background:var(--bg-secondary);position:-webkit-sticky;position:sticky;top:0;z-index:10}.jobs-table th{border-bottom:2px solid var(--border-color);color:#000;font-size:13px;font-weight:700;letter-spacing:.3px;opacity:.9;padding:14px 12px;text-align:left;text-transform:uppercase}body.dark-mode .jobs-table th{color:#fff}.jobs-table td{border-bottom:1px solid var(--border-color);color:#000;font-size:15px;line-height:1.5;padding:14px 12px}body.dark-mode .jobs-table td{color:#fff}.jobs-table tr:hover{background:var(--bg-secondary)}.no-data,.no-jobs{color:var(--text-secondary);font-size:16px;padding:40px;text-align:center}body.dark-mode .chart-card,body.dark-mode .month-detail-modal,body.dark-mode .revenue-stat-card,body.dark-mode .revenue-table-container{background:var(--card-bg);border-color:var(--border-color)}.chart-card .recharts-text{fill:var(--text-primary);font-weight:500}body.dark-mode .chart-card .recharts-text{fill:var(--text-primary);opacity:.9}.chart-card .recharts-cartesian-grid-horizontal line,.chart-card .recharts-cartesian-grid-vertical line{stroke:var(--border-color);opacity:.5}body.dark-mode .chart-card .recharts-cartesian-grid-horizontal line,body.dark-mode .chart-card .recharts-cartesian-grid-vertical line{stroke:#444;opacity:.7}.jobs-table tr:hover td,.revenue-table tr:hover td{background:var(--bg-secondary);transition:background .2s}.revenue-table tr.selected td{background:#0066ff26;font-weight:600}body.dark-mode .revenue-table tr.selected td{background:#4da6ff33}.view-month-btn{background:#06f;border:none;border-radius:6px;box-shadow:0 2px 4px #06f3;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:all .2s}.view-month-btn:hover{background:#0052cc;box-shadow:0 4px 8px #0066ff4d;transform:translateY(-1px)}body.dark-mode .view-month-btn{background:#4da6ff;box-shadow:0 2px 4px #4da6ff4d;color:#000}body.dark-mode .view-month-btn:hover{background:#66b3ff;box-shadow:0 4px 8px #4da6ff66}@media (max-width:768px){.control-group,.revenue-controls{align-items:stretch;flex-direction:column}.revenue-stats-grid{grid-template-columns:1fr}.month-summary{flex-direction:column;gap:16px}.jobs-list,.revenue-table-container{overflow-x:auto}}*{box-sizing:border-box;margin:0;padding:0}:root{--primary-gradient:linear-gradient(135deg,#667eea,#764ba2);--secondary-gradient:linear-gradient(135deg,#f093fb,#f5576c);--success-gradient:linear-gradient(135deg,#4facfe,#00f2fe);--warning-gradient:linear-gradient(135deg,#43e97b,#38f9d7);--danger-gradient:linear-gradient(135deg,#fa709a,#fee140);--glass-bg:#ffffff40;--glass-border:#ffffff2e;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--border-radius:16px;--border-radius-lg:24px;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1)}.App{background:linear-gradient(135deg,#667eea,#764ba2);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;overflow-x:hidden;position:relative}.App:before{background:radial-gradient(circle at 20% 80%,#7877c64d 0,#0000 50%),radial-gradient(circle at 80% 20%,#ff77c64d 0,#0000 50%),radial-gradient(circle at 40% 40%,#78dbff33 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:-1}.header{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff40;background:var(--glass-bg);border:1px solid #ffffff2e;border:1px solid var(--glass-border);border-radius:0 0 24px 24px;border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);color:#fff;margin:1rem 1rem 0;overflow:hidden;padding:2rem;position:relative}.header:before{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);bottom:0;content:"";left:0;opacity:.9;position:absolute;right:0;top:0;z-index:-1}.header:after{animation:float 6s ease-in-out infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);border-radius:50%;content:"";height:600px;position:absolute;right:-20%;top:-50%;width:600px}@keyframes float{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-20px) rotate(180deg)}}.header-content{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1400px;position:relative;z-index:1}.header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#f0f9ff);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:800;letter-spacing:-.02em;text-shadow:0 4px 20px #0000001a}.header-info{align-items:center;display:flex;gap:2rem}.date{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:12px;font-size:1rem;font-weight:500;opacity:.9;padding:.5rem 1rem}@keyframes pulse{0%,to{box-shadow:0 4px 15px #4facfe66;transform:scale(1)}50%{box-shadow:0 8px 25px #4facfe99;transform:scale(1.05)}}.nav{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff40;background:var(--glass-bg);border:1px solid #ffffff2e;border:1px solid var(--glass-border);border-radius:16px;border-radius:var(--border-radius);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);display:flex;gap:.5rem;margin:0 auto 1rem;max-width:1400px;overflow:hidden;padding:1rem 2rem;position:-webkit-sticky;position:sticky;top:1rem;z-index:100}.nav:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;position:absolute;right:0;top:0;z-index:-1}.nav-btn{background:none;border:none;border-radius:12px;color:#64748b;color:var(--text-secondary);cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:1rem 1.5rem;position:relative}.nav-btn,.nav-btn:before{transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.nav-btn:before{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;z-index:-1}.nav-btn:hover{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff;transform:translateY(-2px)}.nav-btn:hover:before{opacity:1}.nav-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);color:#fff}.nav-btn.active:before{opacity:1}.dashboard-layout{background:#0000;display:flex;min-height:100vh;padding:1rem}.main-content{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:1px solid #0000001a;border-radius:24px;border-radius:var(--border-radius-lg);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);display:flex;flex:1 1;flex-direction:column;margin-left:70px;min-width:0;padding:2rem;transition:margin-left .3s ease}.stats-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:2rem}.stat-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff40;background:var(--glass-bg);border:1px solid #ffffff2e;border:1px solid var(--glass-border);border-radius:24px;border-radius:var(--border-radius-lg);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;box-shadow:var(--shadow-lg);overflow:hidden;padding:2rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);transition:var(--transition)}.stat-card:before{background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);border-radius:24px 24px 0 0;border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0}.stat-card:after{animation:float 4s ease-in-out infinite;background:radial-gradient(circle,#667eea1a 0,#0000 70%);border-radius:50%;content:"";height:200px;position:absolute;right:-20%;top:-50%;width:200px}.stat-card:hover{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;box-shadow:var(--shadow-xl);transform:translateY(-8px)}.stat-card h3{color:#64748b;color:var(--text-secondary);font-size:.9rem;font-weight:700;letter-spacing:.1em;margin-bottom:1rem;text-transform:uppercase}.stat-card h3,.stat-value{position:relative;z-index:1}.stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);background:var(--primary-gradient);-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:900;line-height:1;margin:.5rem 0}.stat-label{color:#94a3b8;color:var(--text-muted);font-size:1rem;font-weight:500;position:relative;z-index:1}.dashboard-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 10px 30px #0000001a;padding:2rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:0 15px 40px #0000001f;transform:translateY(-3px)}.card h2{border-bottom:2px solid #f0f0f0;color:#333;font-size:1.3rem;margin-bottom:1rem;padding-bottom:.5rem}.job-list{display:flex;flex-direction:column;gap:1rem}.job-item-mini{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-image:linear-gradient(180deg,#0052cc,#06f) 1;border-left:4px solid;border-radius:12px;padding:1.2rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.job-item-mini:before{background:linear-gradient(180deg,#0052cc,#06f);border-radius:12px 0 0 12px;content:"";height:100%;left:0;position:absolute;top:0;width:4px}.job-item-mini:hover{box-shadow:0 4px 15px #0052cc26;transform:translateX(5px)}.job-header-mini{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.job-id{color:#0052cc;font-size:.9rem;font-weight:700}.job-status{border-radius:20px;box-shadow:0 2px 10px #00000026;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.4rem 1rem;text-transform:uppercase}.job-info-mini{color:#666;font-size:.9rem}.engineer-mini-list{display:flex;flex-direction:column;gap:.75rem}.engineer-mini-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:.75rem}.engineer-mini-info{display:flex;flex-direction:column;gap:.25rem}.engineer-mini-info strong{color:#333}.engineer-mini-info span{color:#666;font-size:.85rem}.engineer-status-badge{border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.4rem .8rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.section-header h2{color:#333;font-size:1.8rem}.btn-primary{background:linear-gradient(135deg,#0052cc,#06f);border:none;border-radius:12px;box-shadow:0 4px 15px #0052cc4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:700;overflow:hidden;padding:.85rem 2rem;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.btn-primary:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.btn-primary:hover{box-shadow:0 6px 25px #0052cc66;transform:translateY(-2px)}.btn-primary:hover:before{left:100%}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:#f0f0f0;border:1px solid #0052cc;border-radius:6px;color:#0052cc;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.btn-secondary:hover{background-color:#0052cc;color:#fff}.btn-small{background-color:#f0f0f0;border:none;border-radius:6px;color:#0052cc;cursor:pointer;font-size:.8rem;font-weight:500;margin-right:.5rem;padding:.4rem .8rem;transition:all .3s ease}.btn-small:hover{background-color:#0052cc;color:#fff}.jobs-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.job-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.priority-badge{border-radius:12px;color:#fff;font-size:.75rem;font-weight:700;padding:.3rem .8rem;text-transform:uppercase}.job-details{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.detail-row{align-items:center;display:flex;font-size:.9rem;justify-content:space-between}.detail-row .label{color:#666;font-weight:500}.status-inline{font-weight:600}.job-actions{display:flex;gap:.5rem}.engineers-table{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.engineers-table table{border-collapse:collapse;width:100%}.engineers-table thead{background-color:#0052cc;color:#fff}.engineers-table th{font-size:.9rem;font-weight:600;padding:1rem;text-align:left}.engineers-table td{border-bottom:1px solid #f0f0f0;padding:1rem}.engineers-table tbody tr:hover{background-color:#f8f9fa}.messages-section h2{color:#333;font-size:1.8rem;margin-bottom:1.5rem}.messages-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.messages-list{display:flex;flex-direction:column;gap:1rem;max-height:500px;overflow-y:auto;padding:1.5rem}.message-item{background:#f8f9fa;border-left:3px solid #0052cc;border-radius:8px;padding:1rem}.message-item.priority-high{background:#fff5f5;border-left-color:#f44}.message-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.message-header strong{color:#333;font-size:.95rem}.message-time{color:#999;font-size:.8rem}.message-body{color:#666;font-size:.9rem;line-height:1.5}.priority-indicator{color:#f44;font-size:.75rem;font-weight:700;margin-top:.5rem}.message-input{border-top:1px solid #f0f0f0;display:flex;gap:1rem;padding:1.5rem}.message-input input{border:2px solid #e0e0e0;border-radius:8px;flex:1 1;font-size:1rem;outline:none;padding:.75rem;transition:border-color .3s ease}.message-input input:focus{border-color:#0052cc}.analytics-section h2{color:#333;font-size:1.8rem;margin-bottom:1.5rem}.charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.chart-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:1px solid #fff3;border-radius:20px;box-shadow:0 10px 30px #0000001a;padding:2rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.chart-card:hover{box-shadow:0 15px 40px #0000001f;transform:translateY(-3px)}.chart-card.full-width{grid-column:1/-1}.chart-card h3{border-bottom:2px solid #f0f0f0;color:#333;font-size:1.2rem;margin-bottom:1rem;padding-bottom:.5rem}.theme-toggle-btn{background:#fff3;border:2px solid #ffffff4d;border-radius:10px;color:#fff;cursor:pointer;font-size:1.2rem;margin-right:1rem;padding:.5rem 1rem;transition:all .3s ease}.theme-toggle-btn:hover{background:#ffffff4d;transform:scale(1.05)}body.dark-mode{color:#e0e0e0;min-height:100vh}body.dark-mode,body.dark-mode .App,body.dark-mode .dashboard-layout{background:linear-gradient(135deg,#1a1a2e,#16213e)!important}body.dark-mode .dashboard-layout{min-height:100vh}body.dark-mode .dashboard-container,body.dark-mode .main-content{background:#0000!important}body.dark-mode .header{background:linear-gradient(135deg,#0a3d62,#1e5f8a 50%,#094067)}body.dark-mode .stat-card{background:linear-gradient(135deg,#2a2a3e,#1f1f30);border-color:#6496ff33 #6496ff33 #6496ff33 #4a9eff}body.dark-mode .stat-card h3{color:#b0b0c0}body.dark-mode .stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#4a9eff,#6db3ff);-webkit-background-clip:text;background-clip:text}body.dark-mode .stat-label{color:#8090a0}body.dark-mode .card,body.dark-mode .chart-card{background:#2a2a3ef2;border-color:#6496ff1a}body.dark-mode .card h2,body.dark-mode .chart-card h3{border-bottom-color:#3a3a4a;color:#e0e0e0}body.dark-mode .job-item-mini{background:linear-gradient(135deg,#2a2a3e,#252540);border-left-color:#4a9eff}body.dark-mode .job-item-mini:before{background:linear-gradient(180deg,#4a9eff,#6db3ff)}body.dark-mode .job-info-row .label{color:#b0b0c0}body.dark-mode .job-info-row .value{color:#e0e0e0}body.dark-mode .job-id{color:#6db3ff}body.dark-mode .nav{background:#2a2a3ef2}body.dark-mode .nav-btn{color:#b0b0c0}body.dark-mode .nav-btn:hover{background:linear-gradient(180deg,#0000,#4a9eff1a);color:#6db3ff}body.dark-mode .nav-btn.active{color:#6db3ff}body.dark-mode .engineers-table{background:#2a2a3e}body.dark-mode .engineers-table thead{background-color:#0a3d62}body.dark-mode .engineers-table td{border-bottom-color:#3a3a4a;color:#e0e0e0}body.dark-mode .engineers-table tbody tr:hover{background-color:#32324a}body.dark-mode .message-item{background:#2a2a3e;border-left-color:#4a9eff}body.dark-mode .message-item.priority-high{background:#3a2a2a;border-left-color:#ff6b6b}body.dark-mode .message-header strong{color:#e0e0e0}body.dark-mode .message-body{color:#b0b0c0}body.dark-mode .message-input input{background:#2a2a3e;border-color:#3a3a4a;color:#e0e0e0}body.dark-mode .message-input input:focus{border-color:#4a9eff}body.dark-mode .section-header h2{color:#e0e0e0}body.dark-mode .detail-row .label{color:#b0b0c0}body.dark-mode .messages-container{background:#2a2a3e}body.dark-mode .message-card{background:#2a2a3e!important;border-left-color:#4a9eff!important}body.dark-mode .message-card.unread{background:#32324a!important}@media (max-width:768px){.header-content{align-items:flex-start;flex-direction:column;gap:1rem}.nav{overflow-x:auto;padding:0 1rem}.charts-grid,.dashboard-grid,.jobs-grid,.stats-grid{grid-template-columns:1fr}.main-content{padding:0 1rem}.engineers-table{overflow-x:auto}.main-content{margin-left:0}}
/*# sourceMappingURL=main.30e5354f.css.map*/