.wide-modal{max-width:600px;max-height:80vh}.modal-header{display:flex;justify-content:space-between;align-items:center}.tabs{display:flex;gap:1rem;border-bottom:1px solid var(--glass-border);padding-bottom:.5rem}.tab-btn{background:none;border:none;color:var(--text-muted);font-family:inherit;font-weight:600;cursor:pointer;padding:.5rem 1rem;border-radius:.5rem}.tab-btn.active{background:#ffffff1a;color:#fff}.scrollable{overflow-y:auto;max-height:50vh}table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.85rem}th{text-align:left;color:var(--text-muted);font-weight:600;padding:.75rem;border-bottom:1px solid var(--glass-border);cursor:pointer;-webkit-user-select:none;user-select:none}th:hover{color:#fff}tr{cursor:pointer;transition:background .2s ease}tr:hover{background:#ffffff0d}td{padding:.75rem;border-bottom:1px solid var(--glass-border)}textarea{background:#0003;border:1px solid var(--glass-border);border-radius:.75rem;padding:.75rem 1rem;color:#fff;font-family:inherit;font-size:1rem;resize:vertical;min-height:80px}.login-modal{text-align:center;gap:1.5rem}.login-logo{width:80px;height:80px;margin:0 auto}.user-info{display:flex;align-items:center;gap:.75rem;background:#ffffff0d;padding:.25rem .75rem .25rem .25rem;border-radius:2rem;border:1px solid var(--glass-border)}.user-info img{width:24px;height:24px;border-radius:50%}.user-info span{font-size:.8rem;font-weight:600;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#logout-btn{background:none;border:none;cursor:pointer;font-size:.9rem;padding:0;display:flex;align-items:center}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{width:100%;max-width:400px;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.modal h2{font-size:1.5rem;font-weight:700;text-align:center}.tool-grid{display:grid;grid-template-columns:1fr;gap:.75rem}.tool-option{background:#ffffff0d;border:1px solid var(--glass-border);color:#fff;padding:1rem;border-radius:1rem;text-align:left;display:flex;align-items:center;gap:1rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease}.tool-option span{font-size:1.5rem}.tool-option:active{background:var(--primary);transform:scale(.98)}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.8rem;color:var(--text-muted);font-weight:600}input[type=text]{background:#0003;border:1px solid var(--glass-border);border-radius:.75rem;padding:.75rem 1rem;color:#fff;font-family:inherit;font-size:1rem}input[type=range]{width:100%;accent-color:var(--primary)}.range-labels{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted)}.modal-actions{display:flex;gap:1rem}.modal-actions button{flex:1}.text-btn{background:none;border:none;color:var(--text-muted);font-family:inherit;font-size:.9rem;padding:.5rem;cursor:pointer}:root{--primary: #10b981;--primary-glow: rgba(16, 185, 129, .4);--secondary: #3b82f6;--danger: #ef4444;--bg-dark: #0f172a;--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .1);--text-main: #f8fafc;--text-muted: #94a3b8;--font-family: "Outfit", sans-serif}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{width:100%;height:100%;overflow:hidden;background-color:var(--bg-dark);font-family:var(--font-family);color:var(--text-main)}#app{width:100%;height:100%;position:relative}#map{width:100%;height:100%;z-index:1}.ui-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;display:flex;flex-direction:column;justify-content:space-between;padding:1rem}.ui-overlay>*{pointer-events:auto}.glass{background:var(--glass-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:1.5rem;box-shadow:0 8px 32px #0000005e}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;border-radius:1rem;background:#0f172a99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.logo{display:flex;align-items:center;gap:.75rem}.logo-img{width:32px;height:32px;border-radius:8px;box-shadow:0 0 10px #10b9814d}.logo h1{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.status-badge{display:flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:600;background:#0000004d;padding:.25rem .75rem;border-radius:2rem}.status-badge .dot{width:8px;height:8px;background:var(--danger);border-radius:50%;box-shadow:0 0 8px var(--danger)}.status-badge.active .dot{background:var(--primary);box-shadow:0 0 8px var(--primary);animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.stats-panel{position:absolute;top:4.5rem;left:1rem;display:flex;flex-direction:column;padding:1rem;width:auto;min-width:150px;gap:.75rem;z-index:20}.stat{display:flex;flex-direction:column;align-items:flex-start}.stat .label{font-size:.7rem;text-transform:uppercase;color:var(--text-muted);font-weight:600;letter-spacing:.05em}.stat .value{font-size:1.25rem;font-weight:700;color:var(--primary)}.controls-container{display:flex;justify-content:center;align-items:center;gap:1rem;padding-bottom:env(safe-area-inset-bottom,1rem)}.control-btn{border:none;border-radius:1.25rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;padding:1rem}.btn-icon{width:24px;height:24px;stroke-width:2.5}.primary-btn{background:var(--primary);color:#fff;padding:1rem 1.5rem;font-weight:700;gap:.75rem;box-shadow:0 4px 15px var(--primary-glow);flex-grow:1;max-width:240px}.primary-btn.recording{background:var(--danger);box-shadow:0 4px 15px #ef444466}.secondary-btn{background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--glass-border);color:#fff;width:3.5rem;height:3.5rem}.control-btn:active{transform:scale(.95)}.floating-info{position:absolute;top:5rem;left:50%;transform:translate(-50%);width:90%;padding:1rem;text-align:center;font-size:.9rem;z-index:20;display:flex;flex-direction:column;gap:.75rem;align-items:center}.hidden{display:none!important}.mini-btn{background:var(--primary);border:none;padding:.5rem 1.5rem;border-radius:.75rem;color:#fff;font-weight:700;cursor:pointer}.leaflet-container{background:var(--bg-dark)!important}.leaflet-bar{border:none!important;box-shadow:none!important}.leaflet-bar a{background-color:var(--glass-bg)!important;color:#fff!important;border:1px solid var(--glass-border)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mowed-cell{stroke:none;fill:#10b981;fill-opacity:.5}.marking-polygon{stroke:#3b82f6;stroke-width:2;fill:#3b82f6;fill-opacity:.2}.species-marker{background:transparent!important;border:none!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.marker-container{display:flex;flex-direction:column;align-items:center;gap:4px}.marker-icon-wrapper{background:#fff;border:2px solid var(--primary);border-radius:50%;width:36px;height:36px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 6px #0000004d;overflow:hidden}.marker-icon-wrapper img{width:100%;height:100%;object-fit:cover;border-radius:50%}.mark-inner{font-size:1.2rem;font-weight:900;display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--primary);background:#fff;box-shadow:0 0 15px #ef444499;animation:marker-pulse 2s infinite}.density-bars{display:flex;gap:2px;justify-content:center;align-items:flex-end;height:8px}.density-bar{width:6px;height:4px;background:#ffffff80;border:1px solid rgba(0,0,0,.3);border-radius:1px}.density-bar.filled{background:var(--danger);height:8px}@keyframes marker-pulse{0%{transform:scale(1);box-shadow:0 0 #ef4444b3}70%{transform:scale(1.1);box-shadow:0 0 0 10px #ef444400}to{transform:scale(1);box-shadow:0 0 #ef444400}}.live-user-marker{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none}.live-user-dot{width:14px;height:14px;background-color:var(--secondary);border:2px solid white;border-radius:50%;box-shadow:0 0 10px var(--secondary);animation:pulse 2s infinite;margin-bottom:2px}.live-user-name{background:#0f172acc;color:#fff;padding:2px 6px;border-radius:4px;font-size:.65rem;font-weight:600;white-space:nowrap;box-shadow:0 2px 4px #0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.team-info{display:flex;align-items:center;gap:.5rem;background:#ffffff0d;padding:.25rem .75rem;border-radius:2rem;border:1px solid var(--glass-border)}.team-info span{font-size:.8rem;font-weight:600;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;padding:.1rem .5rem;border-radius:1rem;background:#ffffff1a;color:var(--text-muted)}.role-badge.admin{background:#f59e0b33;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.role-badge.manager{background:#3b82f633;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.role-badge.worker{background:#10b98133;color:#10b981;border:1px solid rgba(16,185,129,.3)}.role-badge.viewer{background:#94a3b833;color:#94a3b8;border:1px solid rgba(148,163,184,.3)}.team-info button{background:none;border:none;cursor:pointer;font-size:.9rem;padding:0;display:flex;align-items:center;transition:transform .2s ease}.team-info button:hover{transform:scale(1.1)}.team-selection-modal{max-width:450px!important}.team-option-card{background:#ffffff08;border:1px solid var(--glass-border);border-radius:1rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:all .3s ease}.team-option-card:hover{background:#ffffff0d;border-color:#ffffff26}.team-option-card h3{font-size:1.1rem;font-weight:600;color:#fff}.team-separator{display:flex;align-items:center;text-align:center;color:var(--text-muted);font-size:.85rem}.team-separator:before,.team-separator:after{content:"";flex:1;border-bottom:1px solid var(--glass-border)}.team-separator span{padding:0 10px}.invite-code-display{display:flex;align-items:center;justify-content:space-between;background:#0000004d;border:1px solid var(--glass-border);border-radius:.75rem;padding:.75rem 1rem;font-family:monospace;font-size:1.5rem;font-weight:700;letter-spacing:.1em;color:#fff;margin:.5rem 0}.role-info-text{font-size:.75rem;color:var(--text-muted);text-align:center}.team-tab-meta-box{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-radius:1rem;margin-bottom:1.5rem;background:#ffffff05;border:1px solid var(--glass-border);font-size:.95rem}.code-text{font-family:monospace;font-weight:700;background:#0003;padding:.2rem .5rem;border-radius:.25rem;letter-spacing:.05em;color:#3b82f6;border:1px solid rgba(59,130,246,.2)}.role-select{background:#0f172acc;border:1px solid var(--glass-border);color:#fff;border-radius:.5rem;padding:.25rem .5rem;font-family:inherit;font-size:.85rem;cursor:pointer;outline:none;transition:border-color .2s ease}.role-select:focus{border-color:var(--primary)}.kick-btn{background:var(--danger);border:none;color:#fff;border-radius:.5rem;padding:.25rem .75rem;font-size:.85rem;cursor:pointer;font-weight:600;transition:background .2s ease,transform .2s ease}.kick-btn:hover{background:#dc2626}.kick-btn:active{transform:scale(.95)}.actions-cell{text-align:right;padding-right:1.5rem}.permission-checkbox{width:1.1rem;height:1.1rem;accent-color:var(--primary);cursor:pointer;opacity:.75;transition:opacity .2s ease,transform .1s ease}.permission-checkbox:hover{opacity:1;transform:scale(1.1)}.permission-checkbox:disabled{opacity:.3;cursor:not-allowed}.plans-list{display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.plan-card{background:#ffffff05;border:1px solid var(--glass-border);border-radius:.75rem;padding:1rem;display:flex;flex-direction:column;gap:.5rem;transition:background .2s ease,border-color .2s ease,transform .2s ease}.plan-card:hover{background:#ffffff0a;border-color:#ffffff26;transform:translateY(-2px)}.plan-card-header{display:flex;justify-content:space-between;align-items:flex-start}.plan-card-title{font-weight:700;font-size:1.05rem;color:#fff}.plan-card-meta{display:flex;gap:.5rem;flex-wrap:wrap;font-size:.8rem;margin-top:.25rem}.plan-card-desc{font-size:.9rem;color:var(--text-muted);line-height:1.4;margin:.25rem 0;white-space:pre-wrap}.plan-card-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem;border-top:1px solid rgba(255,255,255,.05);padding-top:.5rem}.plan-btn-claim{background:#10b981;color:#fff;border:none;border-radius:.5rem;padding:.35rem .75rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .1s ease}.plan-btn-claim:hover{opacity:.9}.plan-btn-claim:active{transform:scale(.95)}.plan-btn-start{background:var(--primary);color:#fff;border:none;border-radius:.5rem;padding:.35rem .75rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .2s ease,transform .1s ease}.plan-btn-start:hover{opacity:.9}.plan-btn-start:active{transform:scale(.95)}.plan-btn-delete{background:none;border:1px solid var(--danger);color:var(--danger);border-radius:.5rem;padding:.35rem .75rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease}.plan-btn-delete:hover{background:var(--danger);color:#fff}.planned-marker-glow{animation:marker-pulse-glow 1.5s infinite alternate}@keyframes marker-pulse-glow{0%{filter:drop-shadow(0 0 2px rgba(59,130,246,.4));stroke-width:2px}to{filter:drop-shadow(0 0 10px rgba(59,130,246,.9));stroke-width:4px}}
