:root{--primary-hsl: 142, 72%, 29%;--primary: hsl(var(--primary-hsl));--primary-hover: hsl(142, 72%, 23%);--primary-glow: hsla(var(--primary-hsl), .15);--accent-hsl: 142, 76%, 45%;--accent: hsl(var(--accent-hsl));--accent-hover: hsl(142, 76%, 38%);--secondary-hsl: 35, 60%, 50%;--secondary: hsl(var(--secondary-hsl));--bg-dark: #0f1710;--bg-card: rgba(22, 34, 25, .7);--border-color: rgba(255, 255, 255, .08);--text-primary: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--font-family: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .15);--shadow-md: 0 8px 24px rgba(0, 0, 0, .25);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .4);--transition: all .3s cubic-bezier(.4, 0, .2, 1);--blur: blur(16px)}[data-theme=light]{--bg-dark: #f4f6f5;--bg-card: rgba(255, 255, 255, .75);--border-color: rgba(0, 0, 0, .08);--text-primary: #111827;--text-secondary: #4b5563;--text-muted: #9ca3af;--primary-glow: rgba(16, 185, 129, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-dark);color:var(--text-primary);min-height:100vh;overflow-x:hidden;transition:background-color .4s ease;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0000001a;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.glass{background:var(--bg-card);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border:1px solid var(--border-color);box-shadow:var(--shadow-md);border-radius:var(--radius-md)}.glass-header{border-bottom:1px solid var(--border-color);padding:1.25rem 1.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-family);font-weight:500;font-size:.95rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:var(--transition);text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 4px 15px #22c55e33}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #22c55e59;background:linear-gradient(135deg,var(--primary-hover),var(--accent-hover))}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-primary)}.btn-secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.btn-danger{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff;transform:translateY(-2px)}.btn-icon{width:42px;height:42px;padding:0;border-radius:50%}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#101c124d,#0a0f0c8c),url(/login-bg.jpg) no-repeat center center;background-size:cover}.auth-card{width:100%;max-width:480px;padding:3rem 2.5rem}.logo-section{text-align:center;margin-bottom:2.5rem}.logo-icon{font-size:3rem;margin-bottom:.75rem;display:inline-block;animation:float 4s ease-in-out infinite}.logo-text{font-size:2rem;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent}[data-theme=light] .logo-text{background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.form-input{width:100%;padding:.85rem 1.25rem;background:#0003;border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-family);font-size:1rem;transition:var(--transition)}[data-theme=light] .form-input{background:#fffc}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--primary-glow)}.demo-credentials{margin-top:2rem;padding:1rem;background:#ffffff08;border-radius:var(--radius-md);border:1px dashed var(--border-color)}.demo-credentials p{font-size:.85rem;margin-bottom:.5rem;color:var(--text-secondary)}.demo-credentials code{color:var(--accent);font-weight:500;background:#0003;padding:.15rem .4rem;border-radius:4px;cursor:pointer}.app-layout{display:flex;min-height:100vh}.sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100vh;position:sticky;top:0;background:#0f1710;transition:width .3s cubic-bezier(.4,0,.2,1);backface-visibility:hidden;transform:translateZ(0)}[data-theme=light] .sidebar{background:#f4f6f5}.sidebar.collapsed{width:74px}.sidebar.collapsed .brand-text,.sidebar.collapsed .menu-label,.sidebar.collapsed .user-info,.sidebar.collapsed #theme-toggle{display:none!important}.sidebar.collapsed .sidebar-header{padding:1.25rem .5rem;justify-content:center}.sidebar.collapsed .sidebar-actions{justify-content:center;width:100%}.sidebar.collapsed .sidebar-brand{gap:0;justify-content:center}.sidebar.collapsed .sidebar-brand img{margin-right:0!important}.sidebar.collapsed .sidebar-menu{padding:1.5rem .5rem}.sidebar.collapsed .sidebar-item a{padding:.85rem 0;justify-content:center;gap:0}.sidebar.collapsed .sidebar-footer{padding:1.25rem .5rem;flex-direction:column;gap:.75rem;align-items:center}.sidebar.collapsed .user-profile{justify-content:center;width:100%}.sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.sidebar-brand{display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.25rem;text-decoration:none;color:var(--text-primary)}.sidebar-menu{list-style:none;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.5rem;flex-grow:1;overflow-y:auto}.sidebar-item a{display:flex;align-items:center;gap:1rem;padding:.85rem 1.25rem;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);font-weight:500;transition:background-color .2s ease,color .2s ease;backface-visibility:hidden;transform:translateZ(0)}.sidebar-item.active a{color:#0f1710!important;background:linear-gradient(135deg,#c5a059,#dfba6b)!important;font-weight:600}.sidebar-item a:hover{color:#dfba6b!important;background-color:#c5a0591a!important}[data-theme=light] .sidebar-item.active a{color:#0f1710!important;background:linear-gradient(135deg,#c5a059,#dfba6b)!important}[data-theme=light] .sidebar-item a:hover{background-color:#c5a0591a!important;color:#c5a059!important}.sidebar-footer{padding:1.5rem;border-top:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.user-profile{display:flex;align-items:center;gap:.75rem;max-width:170px}.user-avatar{width:40px;height:40px;border-radius:50%;background:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.user-info{display:flex;flex-direction:column;overflow:hidden}.user-name{font-size:.9rem;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.user-role{font-size:.75rem;color:var(--text-secondary)}.main-content{flex-grow:1;min-width:0;padding:2.5rem;overflow-y:auto}.sticky-header-wrapper{position:sticky;top:0;z-index:100;margin:-2.5rem -2.5rem 2rem}.header-actions{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2.5rem;background:#0f1710d1;backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);border-bottom:1px solid var(--border-color);margin-bottom:0}[data-theme=light] .header-actions{background:#f4f6f5d1}.page-title h1{font-size:2.25rem;font-weight:800;letter-spacing:-.75px}.page-subtitle{font-size:1rem;color:var(--text-secondary)}.action-bar{display:flex;align-items:center;gap:1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2rem;margin-bottom:2rem}.col-12{grid-column:span 12}.col-8{grid-column:span 8}.col-6{grid-column:span 6}.col-4{grid-column:span 4}.col-3{grid-column:span 3}.mobile-header-bar{display:none}.mobile-sidebar-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000a6;z-index:1001;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-sidebar-backdrop.active{opacity:1;pointer-events:auto}@media (max-width: 1024px){:root{--blur: none;--bg-card: #152217}[data-theme=light]{--bg-card: #ffffff}.col-8,.col-6,.col-4,.col-3{grid-column:span 12}.app-layout{flex-direction:column}.mobile-header-bar{display:flex!important;align-items:center;justify-content:space-between;height:60px;padding:0 1.5rem;background:#0f1710;border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:1000;width:100%}[data-theme=light] .mobile-header-bar{background:#fff;border-bottom:1px solid rgba(0,0,0,.1)}.sidebar{position:fixed!important;top:0;left:-280px;width:280px;height:100vh;z-index:1002;transition:transform .3s cubic-bezier(.4,0,.2,1);border-right:1px solid var(--border-color);border-bottom:none;box-shadow:0 0 30px #00000080;background:#0a100c!important;display:flex;flex-direction:column}[data-theme=light] .sidebar{background:#fff!important;border-right-color:#0000001a}.sidebar.active{transform:translate(280px)}.sidebar-menu{flex-direction:column!important;overflow-x:visible!important;padding:1.5rem!important}.sidebar-item a{white-space:normal}.main-content{padding:1.25rem}.sticky-header-wrapper{margin:-1.25rem -1.25rem 1.5rem}.header-actions{padding:1rem 1.25rem}}.map-card{position:relative;overflow:hidden;min-height:500px;display:flex;flex-direction:column}.map-wrapper{position:relative;width:100%;max-width:950px;margin:0 auto;border-radius:var(--radius-md);overflow:hidden;background:#111a12;height:600px;border:1px solid var(--border-color);box-shadow:inset 0 2px 15px #0006;touch-action:none}@media (max-width: 768px){.map-wrapper{height:420px}}.map-zoom-container{position:absolute;top:0;left:0;width:100%;height:100%;transform-origin:0 0}.map-img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}.map-layer-selector{display:flex;flex-direction:column;gap:.5rem;padding:.65rem 1rem;background:#0a100cf2;border-bottom:1px solid var(--border-color);transition:background-color .4s ease}[data-theme=light] .map-layer-selector{background:#ffffffe6;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.map-layer-row{display:flex;gap:.35rem;align-items:center;flex-wrap:nowrap;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch;width:100%}.map-layer-row::-webkit-scrollbar{display:none}.layer-btn{padding:.35rem .65rem;border-radius:6px;background:#ffffff0a;border:1px solid var(--border-color);color:var(--text-secondary);font-size:.78rem;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;gap:.3rem;white-space:nowrap;flex-shrink:0}[data-theme=light] .layer-btn{background:#0000000a;border-color:#00000014;color:#374151}.layer-btn.active,.layer-btn:hover{background:var(--primary);color:#fff;border-color:transparent}[data-theme=light] .layer-btn:hover:not(.active){background:#00000014;color:#111827}.hotspot-marker{position:absolute;width:30px;height:30px;transform:translate(-50%,-50%) scale(calc(1 / var(--map-scale, 1)));cursor:pointer;pointer-events:auto;z-index:10;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#121c14eb;border:2px solid var(--marker-color, var(--primary));box-shadow:0 4px 12px #00000080,0 0 10px rgba(var(--marker-color-rgb),.35);transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.hotspot-marker.dragging{cursor:grabbing!important;transform:translate(-50%,-50%) scale(calc(1.25 / var(--map-scale, 1)));box-shadow:0 8px 24px #000000b3,0 0 20px var(--marker-color);opacity:.9;z-index:100!important;transition:none}.hotspot-marker:hover:not(.dragging){transform:translate(-50%,-50%) scale(calc(1.2 / var(--map-scale, 1)));border-color:#fff;box-shadow:0 6px 16px #0009,0 0 15px var(--marker-color);z-index:20}.hotspot-icon{font-size:.85rem;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;color:#fff;pointer-events:none}.hotspot-crops{--marker-color: #22c55e;--marker-color-rgb: 34, 197, 94}.hotspot-irrigation{--marker-color: #3b82f6;--marker-color-rgb: 59, 130, 246}.hotspot-electrical{--marker-color: #fbbf24;--marker-color-rgb: 251, 191, 36}.hotspot-tasks{--marker-color: #f97316;--marker-color-rgb: 249, 115, 22}.hotspot-other{--marker-color: #a855f7;--marker-color-rgb: 168, 85, 247}.hotspot-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(10px);background:#0f1710f2;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-color);padding:.75rem 1rem;border-radius:var(--radius-md);color:#fff;width:220px;pointer-events:none;opacity:0;transition:var(--transition);box-shadow:var(--shadow-md);z-index:100;text-align:center}.hotspot-marker:hover .hotspot-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.hotspot-tooltip.tooltip-bottom{bottom:auto;top:calc(100% + 10px);transform:translate(-50%) translateY(-10px)}.hotspot-marker:hover .hotspot-tooltip.tooltip-bottom{opacity:1;transform:translate(-50%) translateY(0)}.hotspot-tooltip h4{font-size:.9rem;margin-bottom:.25rem;font-weight:600}.hotspot-tooltip p{font-size:.75rem;color:var(--text-secondary)}.control-card{padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.control-item{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:#ffffff05;border:1px solid var(--border-color);border-radius:var(--radius-md)}.control-info{display:flex;align-items:center;gap:1rem}.control-icon{width:48px;height:48px;border-radius:var(--radius-md);background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:1.5rem;transition:var(--transition)}.active-pump .control-icon{background:#3b82f626;color:#3b82f6;animation:rotate-slow 5s linear infinite}.active-light .control-icon{background:#f59e0b26;color:#f59e0b;box-shadow:0 0 15px #f59e0b4d}.switch{position:relative;display:inline-block;width:50px;height:28px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ffffff1a;transition:.4s;border-radius:34px;border:1px solid var(--border-color)}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.4s;border-radius:50%}input:checked+.slider{background-color:var(--accent)}input:checked+.slider:before{transform:translate(22px)}.pump-anim-container{height:10px;width:100%;background:#ffffff05;border-radius:var(--radius-sm);overflow:hidden;position:relative}.water-flow{height:100%;width:0%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:var(--radius-sm);transition:width 2s ease;position:relative}.water-flow.flowing{width:100%;animation:water-pulse 1.5s linear infinite;background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:20px 20px}.crop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.crop-card{overflow:hidden;display:flex;flex-direction:column;transition:var(--transition)}.crop-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#22c55e33}.crop-img-wrapper{position:relative;height:180px;width:100%}.crop-card-img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.crop-card:hover .crop-card-img{transform:scale(1.05)}.crop-badge{position:absolute;top:1rem;right:1rem;padding:.35rem .75rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.badge-evergreen{background:#10b981d9;color:#fff}.badge-deciduous{background:#f59e0bd9;color:#fff}.crop-card-body{padding:1.25rem;display:flex;flex-direction:column;flex-grow:1}.crop-card-title{font-size:1.15rem;font-weight:700;margin-bottom:.5rem}.crop-card-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4;margin-bottom:1.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.crop-card-footer{margin-top:auto;border-top:1px solid var(--border-color);padding-top:1rem;display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-muted)}.crop-meta-item{display:flex;align-items:center;gap:.35rem}.crop-grid.list-view{display:flex;flex-direction:column;gap:.75rem}.crop-grid.list-view .crop-card{display:flex;flex-direction:row;align-items:center;padding:.75rem 1.25rem;gap:1.25rem}.crop-grid.list-view .crop-img-wrapper{width:54px;height:54px;margin-bottom:0;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden}.crop-grid.list-view .crop-card-img{width:100%;height:100%;object-fit:cover}.crop-grid.list-view .crop-badge{display:none}.crop-grid.list-view .crop-card-body{padding:0;flex-direction:row;align-items:center;justify-content:space-between;flex-grow:1;gap:1.5rem;width:auto;margin-top:0}.crop-grid.list-view .crop-card-title{font-size:1rem;margin-bottom:0;width:160px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crop-grid.list-view .crop-card-desc{font-size:.8rem;margin-bottom:0;flex-grow:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.crop-grid.list-view .crop-card-body>div:nth-child(3){display:flex!important;flex-direction:row!important;gap:1rem!important;margin-bottom:0!important;font-size:.8rem}.crop-grid.list-view .crop-card-footer{margin-top:0;display:flex;align-items:center;gap:1rem;border-top:none;padding-top:0}@media (max-width: 768px){.crop-grid.list-view .crop-card{flex-direction:row!important;align-items:center!important;padding:.75rem 1rem!important;gap:1rem!important}.crop-grid.list-view .crop-img-wrapper{width:60px!important;height:60px!important;border-radius:8px!important;overflow:hidden!important;margin-bottom:0!important;flex-shrink:0!important}.crop-grid.list-view .crop-card-body{flex-direction:column!important;align-items:flex-start!important;gap:.2rem!important;flex-grow:1!important;min-width:0!important}.crop-grid.list-view .crop-card-title{width:100%!important;font-size:.95rem!important;margin-bottom:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.crop-grid.list-view .crop-card-desc{display:none!important}.crop-grid.list-view .crop-card-body>div:nth-child(3){display:flex!important;flex-direction:row!important;gap:.5rem!important;margin-bottom:0!important;font-size:.75rem!important;color:var(--text-secondary)!important}.crop-grid.list-view .crop-card-footer{width:auto!important;margin-top:0!important;border-top:none!important;padding-top:0!important;flex-shrink:0!important}.crop-grid.list-view .crop-meta-item{display:none!important}.crop-grid.list-view .btn-edit{padding:.35rem!important;font-size:.75rem!important}.crop-grid.list-view .btn-detail{padding:.35rem .6rem!important;font-size:.7rem!important}}.task-list{display:flex;flex-direction:column;gap:1rem}.task-item{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background:#ffffff03;transition:var(--transition)}.task-item:hover{background:#ffffff08;border-color:#ffffff26}.task-item.completed{opacity:.6}.task-main{display:flex;align-items:flex-start;gap:1rem;flex-grow:1}.task-checkbox-wrapper{margin-top:.25rem}.task-checkbox{width:20px;height:20px;border-radius:5px;border:2px solid var(--border-color);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition)}.task-checkbox.checked{background:var(--accent);border-color:transparent;color:#fff}.task-content{display:flex;flex-direction:column;gap:.25rem}.task-title{font-size:1rem;font-weight:600;transition:var(--transition)}.completed .task-title{text-decoration:line-through;color:var(--text-muted)}.task-desc{font-size:.85rem;color:var(--text-secondary)}.task-details{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;font-size:.75rem}.task-badge{padding:.2rem .5rem;border-radius:var(--radius-sm);font-weight:500}.task-badge-staff{background:#3b82f626;color:#3b82f6}.task-badge-client{background:#10b98126;color:#10b981}.task-badge-external{background:#f59e0b26;color:#f59e0b}.task-date{color:var(--text-muted);display:flex;align-items:center;gap:.3rem}.task-actions{display:flex;align-items:center;gap:.5rem}.landscaper-chat-client-item{display:flex;align-items:center;gap:.65rem;padding:.65rem .75rem;border-radius:var(--radius-sm);background:#ffffff05;border:1px solid rgba(255,255,255,.05);cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden;text-align:left}.landscaper-chat-client-item:hover{background:#ffffff0d;border-color:#ffffff1a}.landscaper-chat-client-item.active{background:#10b98114;border-color:#10b98140;color:var(--text-primary)}.landscaper-chat-client-item.active .chat-avatar{background:var(--primary);color:#fff}.landscaper-chat-client-item.unread{border-left:3px solid #f59e0b;background:#f59e0b08}.chat-avatar{width:32px;height:32px;border-radius:50%;background:#ffffff14;color:var(--text-primary);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0;transition:all .2s ease}.chat-info{flex-grow:1;min-width:0}.chat-name{font-size:.82rem;font-weight:600;color:var(--text-primary);margin-bottom:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-snippet{font-size:.7rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-badge{background:#f59e0b;color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:10px;flex-shrink:0}.active-chat-filter{background:var(--primary)!important;color:#fff!important;border-color:var(--primary)!important;font-weight:600!important}.chat-container{display:flex;flex-direction:column;height:520px}.chat-tabs{display:flex;background:#00000026;border-bottom:1px solid var(--border-color);padding:.5rem;gap:.5rem}.chat-tab-btn{flex:1;padding:.6rem;border-radius:var(--radius-sm);border:none;background:transparent;color:var(--text-secondary);font-size:.85rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:all .25s cubic-bezier(.4,0,.2,1)}.chat-tab-btn:hover{background:#ffffff0a;color:var(--text-primary)}.chat-tab-btn.active{background:#ffffff14;border:1px solid var(--border-color);color:var(--text-primary);box-shadow:0 4px 12px #00000026}.chat-messages{flex-grow:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.chat-msg{max-width:75%;padding:.85rem 1.25rem;border-radius:var(--radius-md);font-size:.9rem;line-height:1.4;position:relative;animation:slide-up .25s cubic-bezier(.4,0,.2,1)}.chat-msg.sent{align-self:flex-end;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;border-bottom-right-radius:4px}.chat-msg.received{align-self:flex-start;background:#ffffff0d;border:1px solid var(--border-color);color:var(--text-primary);border-bottom-left-radius:4px}.chat-msg a{color:#60a5fa;text-decoration:underline;font-weight:600;transition:color .15s ease}.chat-msg.sent a{color:#fff}.chat-msg a:hover{color:#93c5fd}.chat-msg-sender{font-size:.75rem;font-weight:600;margin-bottom:.25rem;color:var(--text-secondary)}.chat-msg-time{font-size:.65rem;align-self:flex-end;margin-top:.25rem;opacity:.7;text-align:right}.chat-input-bar{display:flex;gap:.75rem;padding:1rem;border-top:1px solid var(--border-color);background:#00000026}.chat-input{flex-grow:1}.log-list{list-style:none;display:flex;flex-direction:column;gap:.75rem;max-height:350px;overflow-y:auto}.log-item{display:flex;align-items:center;justify-content:space-between;font-size:.825rem;padding:.5rem .75rem;border-radius:var(--radius-sm);background:#ffffff03;border-left:3px solid var(--accent)}.log-action{font-weight:500}.log-time{color:var(--text-muted)}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}.file-card{padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;position:relative;transition:var(--transition)}.file-card:hover{transform:translateY(-2px);border-color:#ffffff26}.file-icon{font-size:2.25rem;color:var(--accent)}.file-name{font-size:.9rem;font-weight:600;word-break:break-all;line-height:1.3}.file-meta{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-muted)}.file-actions{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.toggle-share{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary)}.weather-card{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.weather-header{display:flex;align-items:center;justify-content:space-between}.weather-temp{font-size:1.8rem;font-weight:800;letter-spacing:-1px}.weather-condition{display:flex;align-items:center;gap:.5rem;font-weight:600}.weather-icon-pulse{animation:float 3s ease-in-out infinite}.weather-forecast{display:flex;justify-content:space-between;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.forecast-day{display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.75rem}.forecast-temp{font-weight:600}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s ease}.modal-overlay.active{opacity:1;pointer-events:auto}.modal-card{width:100%;max-width:600px;max-height:90vh;overflow-y:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transform:translateY(20px);transition:transform .3s cubic-bezier(.4,0,.2,1)}.modal-overlay.active .modal-card{transform:translateY(0)}.modal-body{padding:1.5rem 2rem}.modal-footer{padding:1.25rem 2rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:1rem}.smartphone-container{display:flex;justify-content:center;margin:1.5rem 0}.smartphone{width:320px;height:580px;border:12px solid #2d2d2a;border-radius:40px;overflow:hidden;background:#111;box-shadow:var(--shadow-lg);position:relative;display:flex;flex-direction:column}.smartphone-screen{flex-grow:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.phone-camera{flex-grow:1;background:#222;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.phone-camera-preview{width:100%;height:100%;object-fit:cover;display:none}.phone-overlay{position:absolute;top:1rem;left:1rem;right:1rem;display:flex;justify-content:space-between;color:#fff;font-size:.8rem;text-shadow:0 1px 4px rgba(0,0,0,.8);pointer-events:none}.phone-gps-overlay{position:absolute;bottom:1.5rem;left:1rem;right:1rem;background:#000000d9;padding:.6rem .8rem;border-radius:var(--radius-sm);font-size:.75rem;color:#fff;border:1px solid rgba(255,255,255,.1);text-align:center}.phone-controls{padding:1.5rem;background:#000;display:flex;justify-content:space-around;align-items:center;border-top:1px solid rgba(255,255,255,.1)}.shutter-btn{width:56px;height:56px;border-radius:50%;background:#fff;border:4px solid #333;cursor:pointer;outline:none;transition:transform .1s}.shutter-btn:active{transform:scale(.9)}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes pulse-ring{0%{transform:scale(.33);opacity:0}30%{opacity:.6}to{transform:scale(1);opacity:0}}@keyframes rotate-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes water-pulse{0%{background-position:0 0}to{background-position:40px 0}}@keyframes slide-up{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.view-section{display:none}.view-section.active{display:block}.alert{padding:1rem;border-radius:var(--radius-md);margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;border:1px solid transparent}.alert-success{background:#10b9811a;border-color:#10b98133;color:#34d399}.alert-warning{background:#f59e0b1a;border-color:#f59e0b33;color:#fbbf24}.alert-danger{background:#ef44441a;border-color:#ef444433;color:#fca5a5}@keyframes pulse-highlight{0%{box-shadow:0 0 #10b98166;border-color:#10b981}50%{box-shadow:0 0 0 4px #10b98166;border-color:#10b981}to{box-shadow:0 0 #10b98100;border-color:var(--border-color)}}.map-select-dropdown{padding:.2rem .5rem;font-size:.75rem;width:auto;background:#00000059;border-radius:4px;border:1px solid var(--border-color);color:var(--text-primary);font-weight:500;cursor:pointer;outline:none;transition:var(--transition)}[data-theme=light] .map-select-dropdown{background:#ffffffd9;color:var(--text-primary);border-color:#00000026}.map-select-dropdown option{background:#111a12;color:#fff}[data-theme=light] .map-select-dropdown option{background:#fff;color:#111827}.btn-add-map{font-size:.72rem;padding:.2rem .5rem;background:#22c55e1a;border:1px solid rgba(34,197,94,.2);color:#86efac;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}[data-theme=light] .btn-add-map{background:#15803d14;border-color:#15803d40;color:#15803d}.map-edit-controls-bar{display:none;background:#f59e0b1f;border-bottom:1px solid rgba(245,158,11,.25);padding:.75rem 1.5rem;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;transition:all .4s ease}[data-theme=light] .map-edit-controls-bar{background:#f59e0b14;border-bottom-color:#f59e0b2e}.map-edit-warning-text{font-size:.85rem;color:#fbbf24;font-weight:500}[data-theme=light] .map-edit-warning-text{color:#b45309}.btn-map-settings-cog{background:#f59e0b1a!important;border-color:#f59e0b40!important;color:#fbbf24!important}[data-theme=light] .btn-map-settings-cog{background:#b4530914!important;border-color:#b4530940!important;color:#b45309!important}.btn-map-set-default{font-size:.8rem;padding:.35rem .75rem;border:1px solid rgba(245,158,11,.3);color:#fbbf24;background:#f59e0b1a;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}[data-theme=light] .btn-map-set-default{border-color:#b453094d;color:#b45309;background:#b453090f}.btn-map-delete{font-size:.8rem;padding:.35rem .75rem;border:1px solid rgba(239,68,68,.3);color:#fca5a5;background:#ef44441a;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition)}[data-theme=light] .btn-map-delete{border-color:#dc26264d;color:#dc2626;background:#dc26260f}#scanner-laser-line.animating{display:block!important;animation:scan-animation 2s infinite linear}@keyframes scan-animation{0%{transform:translateY(0)}50%{transform:translateY(197px)}to{transform:translateY(0)}}.database-dropdown-container{position:relative;display:inline-block}.database-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;display:none;flex-direction:column;gap:.25rem;padding:.5rem;border-radius:var(--radius-md);border:1px solid var(--border-color);min-width:240px;z-index:1000;box-shadow:0 10px 25px #0000004d;background:#121a13fa;animation:dropdown-fade-in .2s cubic-bezier(.16,1,.3,1)}@keyframes dropdown-fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}[data-theme=light] .database-dropdown-menu{background:#fffffff2;border-color:#0000001a;box-shadow:0 10px 25px #0000001a}.dropdown-menu-item{display:inline-flex;align-items:center;gap:.65rem;width:100%;padding:.65rem .85rem;font-size:.85rem;font-weight:500;color:var(--text-primary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:var(--transition)}.dropdown-menu-item:hover{background:#ffffff14;transform:translate(3px)}[data-theme=light] .dropdown-menu-item:hover{background:#0000000d}.dropdown-menu-item.danger{color:var(--danger)}.dropdown-menu-item.danger:hover{background:#ef44441a}@media (max-width: 768px){.logout-text{display:none}}#hydrawise-calendar-wrapper::-webkit-scrollbar{height:6px}#hydrawise-calendar-wrapper::-webkit-scrollbar-track{background:#ffffff03;border-radius:3px}#hydrawise-calendar-wrapper::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}#hydrawise-calendar-wrapper::-webkit-scrollbar-thumb:hover{background:#ffffff38}[data-theme=light] #hydrawise-calendar-wrapper::-webkit-scrollbar-track{background:#00000003}[data-theme=light] #hydrawise-calendar-wrapper::-webkit-scrollbar-thumb{background:#0000001a}[data-theme=light] #hydrawise-calendar-wrapper::-webkit-scrollbar-thumb:hover{background:#0003}.calendar-day-column::-webkit-scrollbar{width:4px}.calendar-day-column::-webkit-scrollbar-track{background:transparent}.calendar-day-column::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.calendar-day-column::-webkit-scrollbar-thumb:hover{background:#ffffff2e}[data-theme=light] .calendar-day-column::-webkit-scrollbar-thumb{background:#00000014}[data-theme=light] .calendar-day-column::-webkit-scrollbar-thumb:hover{background:#0000002e}@media (min-width: 1024px){#dashboard-scan-crop-btn,#client-scan-crop-btn{display:none!important}}.client-overview-card{display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden;height:100%}.client-overview-card:hover{transform:translateY(-4px);border-color:#10b98140;box-shadow:0 12px 30px #00000059}.client-overview-card-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:center;background:#ffffff03;cursor:pointer;position:relative;transition:background-color .2s ease}.client-overview-card-header:hover{background:#ffffff08}.client-overview-card-header h3{font-size:1.2rem;font-weight:700;display:flex;align-items:center;gap:.5rem;color:var(--text-primary);margin:0 0 .2rem}.client-overview-card-header h3 span.client-name-text{transition:color .2s ease}.client-overview-card-header:hover h3 span.client-name-text{color:var(--accent)}.client-overview-card-header .header-arrow{font-size:.95rem;color:var(--text-muted);opacity:0;transform:translate(-5px);transition:all .2s ease}.client-overview-card-header:hover .header-arrow{opacity:1;transform:translate(0);color:var(--accent)}.client-card-address{font-size:.78rem;color:var(--text-secondary);display:flex;align-items:center;gap:.25rem}.client-card-badge-tasks{font-size:.72rem;font-weight:600;padding:.3rem .6rem;border-radius:var(--radius-sm);border:1px solid transparent}.client-card-badge-tasks.zero{background:#10b98114;color:#10b981;border-color:#10b98126}.client-card-badge-tasks.has-tasks{background:#f59e0b14;color:#f59e0b;border-color:#f59e0b26}.client-card-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;flex-grow:1}.client-card-info-row{display:flex;gap:1.25rem;align-items:flex-start}@media (max-width: 600px){.client-card-info-row{flex-direction:column;align-items:stretch;gap:.75rem}}.client-card-thumbnail-container{position:relative;width:120px;height:90px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-color);cursor:pointer;flex-shrink:0}.client-card-thumbnail-container img{width:100%;height:100%;object-fit:contain;background:#00000040;transition:transform .3s ease}.client-card-thumbnail-container:hover img{transform:scale(1.08)}.client-card-thumbnail-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;opacity:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.75rem;font-weight:600;transition:opacity .2s ease;pointer-events:none}.client-card-thumbnail-container:hover .client-card-thumbnail-overlay{opacity:1}.client-card-details-list{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--text-secondary);flex-grow:1}.client-card-details-list div{display:block;line-height:1.4;margin-bottom:.15rem}.client-card-details-list a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease;word-break:break-all}.client-card-details-list a:hover{color:var(--accent);text-decoration:underline}@media (max-width: 600px){.client-card-thumbnail-container{width:150px;height:100px;margin-bottom:.25rem}}.client-card-sensor-badge{margin-top:.25rem;padding:.3rem .6rem;background:#3b82f614;border:1px solid rgba(59,130,246,.15);border-radius:var(--radius-sm);display:inline-flex;align-items:center;gap:.35rem;color:#60a5fa;font-weight:600;font-size:.72rem;width:fit-content;cursor:pointer;transition:all .2s ease}.client-card-sensor-badge:hover{background:#3b82f626;border-color:#3b82f64d;transform:translateY(-1px)}.client-card-extra-contacts{border-top:1px solid rgba(255,255,255,.04);padding-top:.75rem}.client-card-extra-contacts details summary{font-size:.78rem;font-weight:600;color:var(--text-primary);-webkit-user-select:none;user-select:none;outline:none;list-style:none;display:flex;align-items:center;gap:.35rem}.client-card-extra-contacts details summary::-webkit-details-marker{display:none}.client-card-extra-contacts details summary:after{content:"▼";font-size:.6rem;color:var(--text-muted);transition:transform .2s ease}.client-card-extra-contacts details[open] summary:after{transform:rotate(180deg)}.client-card-extra-contacts ul{margin:.5rem 0 0;padding-left:.75rem;display:flex;flex-direction:column;gap:.35rem;list-style:none;font-size:.75rem;border-left:2px solid rgba(255,255,255,.05)}.client-card-extra-contacts li{color:var(--text-secondary)}.client-card-footer{padding:1rem 1.5rem;background:#0000002e;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:1rem}.client-card-footer-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.client-card-chat-control{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);font-weight:500}.client-card-btn-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.client-card-nav-group{display:flex;background:#ffffff08;border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;padding:2px;gap:2px}.client-card-nav-btn{background:transparent;border:none;color:var(--text-secondary);padding:.4rem .65rem;font-size:.78rem;font-weight:500;cursor:pointer;border-radius:4px;display:inline-flex;align-items:center;gap:.25rem;transition:all .2s ease}.client-card-nav-btn:hover{background:#ffffff0f;color:var(--text-primary)}.client-card-nav-btn.active-notif{border:1px solid rgba(245,158,11,.3);color:#f59e0b;background:#f59e0b14;font-weight:600}.client-card-nav-btn.active-notif:hover{background:#f59e0b26}.client-card-action-group{display:flex;gap:.5rem}.client-card-action-btn{padding:.4rem .75rem;font-size:.75rem;font-weight:600;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;transition:all .2s ease}.client-card-action-btn.view-portal{border:1px solid rgba(16,185,129,.2);color:#10b981;background:#10b9810d}.client-card-action-btn.view-portal:hover{background:#10b9811f;border-color:#10b98166}.client-card-action-btn.add-task{border:1px solid transparent;color:#fff;background:var(--primary)}.client-card-action-btn.add-task:hover{background:var(--primary-hover)}.client-card-action-btn.upload{border:1px solid var(--border-color);color:var(--text-primary);background:#ffffff0a}.client-card-action-btn.upload:hover{background:#ffffff14}.form-tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-weight:500;cursor:pointer;font-size:.85rem;padding:.6rem;transition:all .2s ease}.form-tab-btn:hover{color:var(--text-primary);background:#ffffff05}.form-tab-btn.active{border-bottom-color:var(--primary);color:var(--text-primary);font-weight:600}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#121e16d9!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;color:var(--text-primary)!important;border:1px solid rgba(255,255,255,.08)!important;box-shadow:var(--shadow-lg)!important;font-family:Outfit,sans-serif!important}.leaflet-popup-content h4{color:var(--primary)!important;font-weight:600;margin:0 0 .4rem;font-size:.95rem}.leaflet-popup-close-button{color:var(--text-muted)!important}.leaflet-popup-close-button:hover{color:var(--text-primary)!important}.marker-cluster-small{background-color:#10b98166!important}.marker-cluster-small div{background-color:#10b981bf!important;color:#fff!important;font-weight:700!important}.marker-cluster-medium{background-color:#f59e0b66!important}.marker-cluster-medium div{background-color:#f59e0bbf!important;color:#fff!important;font-weight:700!important}.marker-cluster-large{background-color:#ef444466!important}.marker-cluster-large div{background-color:#ef4444bf!important;color:#fff!important;font-weight:700!important}.leaflet-tooltip{background:#121e16f0!important;backdrop-filter:blur(12px)!important;-webkit-backdrop-filter:blur(12px)!important;color:var(--text-primary)!important;border:1px solid rgba(255,255,255,.12)!important;border-radius:var(--radius-sm)!important;box-shadow:var(--shadow-lg)!important;font-family:Outfit,sans-serif!important;padding:8px 12px!important}.chat-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s ease}.chat-lightbox.active{opacity:1;pointer-events:auto}.chat-lightbox-img{max-width:90%;max-height:85%;border-radius:var(--radius-sm);box-shadow:0 10px 30px #00000080;transform:scale(.95);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.chat-lightbox.active .chat-lightbox-img{transform:scale(1)}.chat-lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:#ffffff26;color:#fff;border:none;font-size:1.25rem;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.chat-lightbox-close:hover{background:#ffffff40}@media (max-width: 1024px){#view-landscaper-chat.active,#view-client-chat.active{height:calc(100vh - 160px)!important;display:flex!important;flex-direction:column;min-height:0}#view-landscaper-chat:not(.active),#view-client-chat:not(.active){display:none!important}#landscaper-chat-grid{flex-grow:1;display:grid!important;height:100%;min-height:0}#landscaper-chat-left-pane,#landscaper-chat-right-pane{max-height:100%!important;height:100%!important;flex-grow:1;min-height:0;margin:0!important}.chat-view-active-chat #landscaper-chat-left-pane{display:none!important}.chat-view-active-chat #landscaper-chat-right-pane,.chat-view-list-only #landscaper-chat-left-pane{display:flex!important;grid-column:span 12!important}.chat-view-list-only #landscaper-chat-right-pane{display:none!important}#btn-chat-mobile-back{display:inline-flex!important}#view-client-chat .dashboard-grid{height:100%;display:flex;flex-direction:column;gap:1.25rem;min-height:0}#view-client-chat .chat-container{height:calc(100vh - 250px)!important;max-height:calc(100vh - 250px)!important;display:flex;flex-direction:column}#client-chat-messages{flex-grow:1;overflow-y:auto;max-height:none!important}#landscaper-chat-messages{max-height:none!important;flex-grow:1;overflow-y:auto}}
