:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-accent-50:#eef6ff;--color-accent-100:#d8eaff;--color-accent-200:#b3d4ff;--color-accent-300:#82b8fb;--color-accent-400:#4f97f3;--color-accent-500:#2176e4;--color-accent-600:#175fc6;--color-accent-700:#1450a3;--color-accent-800:#143f7e;--color-accent-900:#122f5c;--color-accent:var(--color-accent-500);--color-accent-hover:var(--color-accent-600);--color-accent-active:var(--color-accent-700);--color-accent-soft:var(--color-accent-50);--color-on-accent:#fff;--color-accent-ring:#2176e466;--gradient-accent:linear-gradient(135deg, var(--color-accent-400), var(--color-accent-600));--color-bg:#eef1f5;--color-surface:#fff;--color-surface-2:#f6f8fb;--color-surface-raised:var(--color-surface-2);--color-surface-3:#eceff4;--color-surface-glass:#fffffff5;--color-overlay:#0f172a75;--color-text:#0f172a;--color-text-2:#475569;--color-text-3:#64748b;--color-text-muted:var(--color-text-3);--color-text-4:#94a3b8;--color-text-on-dark:#f1f5f9;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-border-soft:#0f172a12;--color-divider:#0f172a14;--color-success:#16a34a;--color-success-soft:#e7f6ec;--color-success-fg:#15803d;--color-warning:#d97706;--color-warning-soft:#fdf0dc;--color-warning-fg:#b45309;--color-high:#ea580c;--color-high-soft:#fdecdf;--color-high-fg:#c2410c;--color-danger:#dc2626;--color-danger-soft:#fdeaea;--color-danger-fg:#b91c1c;--color-info:#2563eb;--color-info-soft:#e8f0fe;--color-info-fg:#1d4ed8;--sev-critical:#da1e28;--sev-critical-fill:#da1e28;--sev-critical-on:#fff;--sev-high:#ff832b;--sev-high-fill:#ff832b;--sev-high-on:#3d1c00;--sev-medium:#b7791f;--sev-medium-fill:#f1c21b;--sev-medium-on:#3d2c00;--sev-info:#1192e8;--sev-info-fill:#1192e8;--sev-info-on:#fff;--sev-neutral:#6b7280;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-pill:999px;--radius-round:50%;--shadow-xs:0 1px 2px #0f172a0f;--shadow-sm:0 1px 3px #0f172a14, 0 1px 2px #0f172a0d;--shadow-md:0 4px 12px #0f172a1a, 0 2px 4px #0f172a0f;--shadow-lg:0 12px 28px #0f172a24, 0 4px 10px #0f172a14;--shadow-xl:0 24px 50px #0f172a38, 0 8px 18px #0f172a1f;--shadow-accent:0 6px 18px #2176e452;--shadow-focus:0 0 0 3px var(--color-accent-ring);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono:"SFMono-Regular", "Monaco", "Menlo", "Consolas", "Ubuntu Mono", monospace;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:20px;--text-2xl:24px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.65;--tracking-tight:-.02em;--tracking-snug:-.01em;--tracking-normal:0;--tracking-wide:.05em;--z-map-control:998;--z-chrome:999;--z-panel:1000;--z-indicator:1001;--z-overlay:2000;--z-auth-overlay:5000;--z-modal:9998;--z-modal-high:9999;--z-flyout:10001;--z-tutorial:10002;--z-admin:10000;--ease-standard:cubic-bezier(.4, 0, .2, 1);--ease-emphasized:cubic-bezier(.2, .9, .3, 1.1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--transition-fast:.14s var(--ease-standard);--transition-base:.2s var(--ease-standard);--transition-slow:.3s var(--ease-standard);--tap-target:44px}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-accent:var(--color-accent-400);--color-accent-hover:var(--color-accent-300);--color-accent-active:var(--color-accent-200);--color-accent-soft:#4f97f329;--color-on-accent:#08152b;--color-accent-ring:#4f97f373;--gradient-accent:linear-gradient(135deg, var(--color-accent-500), var(--color-accent-300));--color-bg:#0a111e;--color-surface:#151e2d;--color-surface-2:#1c2738;--color-surface-3:#243043;--color-surface-glass:#151e2df0;--color-overlay:#000000a3;--color-text:#e8eef7;--color-text-2:#b2bed0;--color-text-3:#8b99ad;--color-text-4:#5f6e84;--color-text-on-dark:#f1f5f9;--color-border:#2b3850;--color-border-strong:#3c4c68;--color-border-soft:#ffffff14;--color-divider:#ffffff14;--color-success:#22c55e;--color-success-soft:#22c55e29;--color-success-fg:#4ade80;--color-warning:#f59e0b;--color-warning-soft:#f59e0b29;--color-warning-fg:#fbbf24;--color-high:#fb923c;--color-high-soft:#fb923c29;--color-high-fg:#fdba74;--color-danger:#ef4444;--color-danger-soft:#ef444429;--color-danger-fg:#f87171;--color-info:#60a5fa;--color-info-soft:#60a5fa29;--color-info-fg:#93c5fd;--shadow-xs:0 1px 2px #0006;--shadow-sm:0 1px 3px #00000080, 0 1px 2px #0006;--shadow-md:0 4px 12px #0000008c, 0 2px 4px #0006;--shadow-lg:0 12px 28px #0009, 0 4px 10px #00000073;--shadow-xl:0 24px 50px #000000a8, 0 8px 18px #00000080;--shadow-accent:0 6px 18px #2176e473}html[data-theme-animate] body,html[data-theme-animate] .ux-sheet,html[data-theme-animate] .btn,html[data-theme-animate] .settings-card{transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base)}@media (prefers-reduced-motion:reduce){html[data-theme-animate] *{transition:none!important}}html,body{height:100%;font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;letter-spacing:var(--tracking-snug);overscroll-behavior:none;margin:0;padding:0;overflow:clip}body{position:fixed;inset:0}a:focus-visible,button:focus-visible,[tabindex]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}#layer-control-content,.auth-modal-content,.note-modal-content,.note-history-modal-content{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}#layer-control-content::-webkit-scrollbar{width:8px;height:8px}.auth-modal-content::-webkit-scrollbar{width:8px;height:8px}.note-modal-content::-webkit-scrollbar{width:8px;height:8px}.note-history-modal-content::-webkit-scrollbar{width:8px;height:8px}#layer-control-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.auth-modal-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.note-modal-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.note-history-modal-content::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.app-spinner{--spinner-size:20px;width:var(--spinner-size);height:var(--spinner-size);border:2px solid color-mix(in srgb, currentColor 22%, transparent);border-radius:var(--radius-round);border-top-color:currentColor;flex-shrink:0;animation:.7s linear infinite app-spin;display:inline-block}.app-spinner--sm{--spinner-size:14px}.app-spinner--lg{--spinner-size:32px;border-width:3px}@keyframes app-spin{to{transform:rotate(360deg)}}.app-skeleton{background:var(--color-surface-3);border-radius:var(--radius-sm);min-height:1em;position:relative;overflow:hidden}.app-skeleton:after{content:"";background:linear-gradient(90deg, transparent 0, color-mix(in srgb, var(--color-surface) 70%, transparent) 50%, transparent 100%);animation:1.4s ease-in-out infinite app-skeleton-shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes app-skeleton-shimmer{to{transform:translate(100%)}}.app-toast{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);font-weight:var(--weight-medium);line-height:var(--leading-tight);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);border-left:4px solid var(--color-info);opacity:0;max-width:min(92vw,360px);transition:opacity var(--transition-slow), transform var(--transition-slow);display:inline-flex;transform:translateY(-8px)}.app-toast.is-visible{opacity:1;transform:translateY(0)}.app-toast--fixed{top:calc(env(safe-area-inset-top,0px) + var(--space-5));z-index:var(--z-overlay);position:fixed;left:50%;transform:translate(-50%)translateY(-8px)}.app-toast--fixed.is-visible{transform:translate(-50%)translateY(0)}.app-toast--info{border-left-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info-fg)}.app-toast--success{border-left-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success-fg)}.app-toast--warning{border-left-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning-fg)}.app-toast--danger{border-left-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-fg)}:root{--ui-scale:1}body{zoom:var(--ui-scale)}:root{--tap-min:max(36px, calc(40px / var(--ui-scale,1)));--tap-min-sm:max(30px, calc(34px / var(--ui-scale,1)))}.guide-overlay{z-index:100001;background:var(--color-surface,#fff);zoom:calc(1 / var(--ui-scale,1));flex-direction:column;display:flex;position:fixed;inset:0}.guide-overlay-bar{padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 8px;border-bottom:1px solid var(--color-border,#e2e8f0);background:var(--color-surface,#fff);flex:none;justify-content:flex-end;align-items:center;display:flex}.guide-overlay-close{border:1px solid var(--color-border,#e2e8f0);background:var(--color-surface-2,#f6f8fb);color:var(--color-text,#0f172a);font:600 14px var(--font-sans,sans-serif);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.guide-overlay-close:hover{background:var(--color-surface-3,#eceff4)}.guide-overlay-frame{background:var(--color-surface,#fff);border:0;flex:1;width:100%}#map{zoom:calc(1 / var(--ui-scale));background:var(--color-bg);width:100vw;height:100vh}.leaflet-top.leaflet-left{z-index:998;top:auto;bottom:100px;left:10px}@media (width<=768px){.leaflet-top.leaflet-left{bottom:120px;left:8px}}.leaflet-bar{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow:hidden}.leaflet-bar a,.leaflet-bar a:hover{width:34px;height:34px;color:var(--color-text);background:var(--color-surface);border-bottom-color:var(--color-divider);transition:background-color var(--transition-fast), color var(--transition-fast);line-height:34px}.leaflet-bar a:hover{background:var(--color-surface-2);color:var(--color-accent)}.leaflet-bar a.leaflet-disabled{color:var(--color-text-4);background:var(--color-surface-2)}.leaflet-control-attribution{color:var(--color-text-3);border-radius:var(--radius-xs) 0 0 0;white-space:nowrap;text-overflow:ellipsis;max-width:60vw;font-size:10px;line-height:1.4;overflow:hidden;background:var(--color-surface-glass)!important}.leaflet-control-attribution a{color:var(--color-accent)}@media (width<=768px){.leaflet-control-attribution{max-width:56vw;font-size:9px}}#layer-control{top:calc(10px + env(safe-area-inset-top,0px));background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-lg);z-index:var(--z-panel);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-soft);flex-direction:column;min-width:220px;max-height:70vh;display:flex;position:absolute;right:10px;overflow:hidden}#layer-control-header{padding:var(--space-4);border-bottom:1px solid var(--color-divider);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;justify-content:space-between;align-items:center;display:flex}#layer-control-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-snug)}#layer-control-toggle{width:20px;height:20px;color:var(--color-text-3);transition:transform var(--transition-slow)}#layer-control.collapsed #layer-control-toggle{transform:rotate(180deg)}#layer-control-content{padding:var(--space-3);gap:var(--space-1);max-height:calc(70vh - 60px);transition:max-height var(--transition-slow), padding var(--transition-slow), opacity var(--transition-base);flex-direction:column;display:flex;overflow-y:auto}#layer-control.collapsed #layer-control-content{max-height:0;padding:0 var(--space-3);opacity:0}@media (width>=769px){#layer-control:not(.collapsed){min-width:360px}}.layer-section{margin-bottom:var(--space-2)}.layer-section-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.075em;color:var(--color-text-3);margin-bottom:var(--space-2);border-bottom:1px solid var(--color-divider);padding-bottom:3px}.layer-toggle{padding:var(--space-2) var(--space-1);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--transition-base);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;display:flex;position:relative}.layer-toggle:hover{background:var(--color-surface-2)}.layer-toggle.loading{opacity:.7}.layer-toggle-info{align-items:center;gap:var(--space-2);flex:1;display:flex}.layer-toggle-icon{opacity:.7;width:16px;height:16px}.layer-toggle-text{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text);letter-spacing:var(--tracking-snug)}.layer-toggle-description{font-size:var(--text-xs);color:var(--color-text-3);margin-top:2px}.layer-section.event-overlays .layer-section-title{color:var(--color-text)}.layer-section.event-overlays.scroll-capped{max-height:42vh;overflow-y:auto}.layer-section.event-overlays .layer-section-title{z-index:1;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);position:sticky;top:0}.layer-group-picker{z-index:1;margin:var(--space-1) 0 var(--space-2);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-primary) 24%, var(--color-border));border-radius:calc(var(--radius-md) + 2px);-webkit-backdrop-filter:blur(10px);padding:10px;position:sticky;top:28px;box-shadow:0 4px 14px #1659aa14}.layer-group-picker-label{color:var(--color-primary);font-size:var(--text-xs);letter-spacing:.035em;text-transform:uppercase;cursor:pointer;align-items:center;gap:7px;margin:0 2px 7px;font-weight:700;display:flex}.layer-group-picker-icon{place-items:center;width:18px;height:18px;display:inline-grid}.layer-group-picker-icon svg{width:16px;height:16px}.layer-group-select{appearance:none;width:100%;min-height:46px;font-size:var(--text-md);color:var(--color-text);background-color:var(--color-surface);border:2px solid color-mix(in srgb, var(--color-primary) 62%, var(--color-border));border-radius:var(--radius-md);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%232176e4' d='m7 10 5 5 5-5z'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:22px;padding:9px 42px 9px 12px;font-weight:700;transition:border-color .14s,box-shadow .14s,transform .14s;box-shadow:0 1px 3px #14233714}.layer-group-select:hover{border-color:var(--color-primary);box-shadow:0 3px 10px #1659aa24}.layer-group-select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.layer-section.base-maps{background:var(--color-surface-2);border-radius:var(--radius-md);padding:var(--space-2);margin-top:var(--space-1)}.layer-section.base-maps .layer-section-title{font-size:var(--text-xs);margin-bottom:var(--space-1);border-bottom:none}.layer-section.base-maps .layer-toggle{padding:3px var(--space-1)}.layer-section.base-maps .layer-toggle-text{font-size:var(--text-sm);color:var(--color-text-2);font-weight:400}.layer-section.base-maps .layer-toggle-description{display:none}.layer-section.base-maps .layer-toggle-icon{width:14px;height:14px}.layer-section.base-maps .toggle-switch{transform:scale(.85)}.toggle-switch{width:44px;height:24px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--color-border-strong);transition:background-color var(--transition-slow);border-radius:var(--radius-pill);position:absolute;inset:0}.toggle-slider:before{content:"";width:18px;height:18px;transition:transform var(--transition-slow);border-radius:var(--radius-round);box-shadow:var(--shadow-sm);background-color:#fff;position:absolute;bottom:3px;left:3px}input:checked+.toggle-slider{background-color:var(--color-accent)}.toggle-switch input:focus-visible+.toggle-slider{box-shadow:var(--shadow-focus)}input:checked+.toggle-slider:before{transform:translate(20px)}.layer-toggle.loading:after{content:"";border:2px solid var(--color-surface-3);border-top:2px solid var(--color-accent);border-radius:var(--radius-round);width:12px;height:12px;animation:1s linear infinite spin;position:absolute;top:50%;right:54px;transform:translateY(-50%)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-snug);cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);min-height:var(--tap-target);box-sizing:border-box;-webkit-user-select:none;user-select:none;border:1px solid #0000;outline:none;font-family:inherit;text-decoration:none;display:inline-flex;position:relative}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn-primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background:var(--color-accent-active);box-shadow:var(--shadow-xs);transform:translateY(0)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(0)}.btn-success{background:var(--color-success);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){background:color-mix(in srgb, var(--color-success) 88%, black);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-success:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(0)}.btn-danger{background:var(--color-danger);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.btn-danger:hover:not(:disabled){background:var(--color-danger-fg);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-danger:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(0)}.btn-warning{background:var(--color-warning);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.btn-warning:hover:not(:disabled){background:var(--color-warning-fg);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-warning:active:not(:disabled){box-shadow:var(--shadow-xs);transform:translateY(0)}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-sm);min-height:36px}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-md);border-radius:var(--radius-lg);min-height:52px}.btn svg{flex-shrink:0;width:18px;height:18px}.btn-sm svg{width:16px;height:16px}.btn-lg svg{width:20px;height:20px}#error-message{background-color:var(--color-danger-soft);width:100%;color:var(--color-danger-fg);padding:var(--space-3);text-align:center;font-size:var(--text-base);font-weight:var(--weight-medium);z-index:var(--z-overlay);display:none;position:fixed;bottom:0;left:0}.login-trigger{z-index:var(--z-chrome);position:fixed;top:10px;left:10px}.help-trigger{z-index:var(--z-chrome);position:fixed;top:10px;left:180px}.user-profile{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-soft);z-index:var(--z-chrome);min-width:200px;position:fixed;top:10px;left:10px}.user-profile-content{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.user-info{align-items:center;gap:var(--space-3);flex:1;display:flex}.user-avatar{background:var(--gradient-accent);border-radius:var(--radius-round);width:40px;height:40px;color:var(--color-on-accent);justify-content:center;align-items:center;display:flex}.user-avatar svg{width:20px;height:20px}.user-details{flex-direction:column;gap:2px;display:flex}.user-name{font-weight:var(--weight-semibold);color:var(--color-text);font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.user-email{font-size:var(--text-sm);color:var(--color-text-3);letter-spacing:var(--tracking-snug)}.user-profile:not(.hidden)~.help-trigger{left:320px}.menu-section{margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-divider)}.menu-section:last-child{margin-bottom:var(--space-1);border-bottom:none}#menu-auth-section{order:-5}.menu-button-row{gap:var(--space-2);width:100%;display:flex}.menu-button-row button{flex:1}.btn-compact{padding:10px var(--space-3);font-size:var(--text-sm);min-height:40px}.btn-compact svg{width:16px;height:16px}.menu-user-profile{gap:var(--space-2);background:var(--color-accent-soft);border-radius:var(--radius-md);border:1px solid color-mix(in srgb, var(--color-accent) 16%, transparent);flex-direction:column;padding:10px;display:flex}.menu-user-profile .menu-button-row{margin-top:var(--space-1)}.menu-user-info{flex-direction:column;gap:2px;display:flex}.menu-user-name{font-weight:var(--weight-semibold);color:var(--color-text);font-size:var(--text-base);letter-spacing:var(--tracking-snug)}.menu-user-email{font-size:var(--text-sm);color:var(--color-text-3);letter-spacing:var(--tracking-snug)}@media (width<=768px){.login-trigger,.help-trigger,.user-profile{display:none!important}}.login-trigger,.help-trigger,.user-profile{z-index:var(--z-chrome)}#socket-status-indicator{z-index:var(--z-indicator)!important;border-radius:var(--radius-pill)!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--color-border)!important;font-size:var(--text-sm)!important;font-weight:var(--weight-medium)!important}.auth-modal{width:100%;height:100%;z-index:var(--z-modal-high);opacity:0;visibility:hidden;transition:opacity var(--transition-slow), visibility var(--transition-slow);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.auth-modal:not(.hidden){opacity:1;visibility:visible}.auth-modal-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(12px);width:100%;height:100%;transition:opacity var(--transition-slow);position:absolute;top:0;left:0}.auth-modal-container{background:var(--color-surface-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--color-border-soft);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:420px;max-height:90vh;transition:transform var(--transition-slow);position:relative;overflow:hidden;transform:scale(.95)translateY(16px)}.auth-modal:not(.hidden) .auth-modal-container{transform:scale(1)translateY(0)}.auth-modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-divider);background:0 0;justify-content:space-between;align-items:center;display:flex}.auth-modal-header h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-tight);margin:0}.auth-modal-close{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text-3);transition:background-color var(--transition-base), color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:8px;display:flex}.auth-modal-close:hover{background:var(--color-surface-2);color:var(--color-text)}.auth-modal-close svg{width:20px;height:20px}.auth-modal-content{padding:var(--space-6);max-height:calc(90vh - 80px);overflow-y:auto}.auth-form{gap:var(--space-5);flex-direction:column;display:flex}#register-form{gap:var(--space-3)}#register-form .form-group{gap:var(--space-1)}.auth-form .form-error:empty{display:none}.auth-form-footer{margin-top:var(--space-1)}.auth-form-footer p{margin:0}.form-group label{font-weight:var(--weight-medium);color:var(--color-text);font-size:var(--text-md);letter-spacing:var(--tracking-snug)}.form-group input{padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--transition-base), box-shadow var(--transition-base);background:var(--color-surface);font-size:16px}.form-group input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.form-group input:invalid{border-color:var(--color-danger)}.password-field{align-items:stretch;display:flex;position:relative}.password-field input{flex:1;width:100%;padding-right:44px}.password-toggle{width:44px;height:100%;color:var(--color-text-3);cursor:pointer;border-radius:var(--radius-md);transition:color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:0;right:0}.password-toggle:hover,.password-toggle:focus-visible{color:var(--color-text)}.password-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.password-toggle-icon{pointer-events:none;width:20px;height:20px}.password-toggle .icon-eye-off,.password-toggle[aria-pressed=true] .icon-eye{display:none}.password-toggle[aria-pressed=true] .icon-eye-off{display:block}.form-error{color:var(--color-danger-fg);font-size:var(--text-sm);opacity:0;min-height:16px;transition:opacity var(--transition-base)}.form-error:not(:empty){opacity:1}.form-checkbox{flex-direction:row;align-items:center}.checkbox-container{align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-base);color:var(--color-text-2);display:flex}.checkbox-container input[type=checkbox]{opacity:0;width:1px;height:1px;position:absolute}.checkmark{border:2px solid var(--color-border-strong);border-radius:var(--radius-xs);width:18px;height:18px;transition:background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base);position:relative}.checkbox-container input[type=checkbox]:focus-visible+.checkmark{box-shadow:var(--shadow-focus)}.checkbox-container input[type=checkbox]:checked+.checkmark{background:var(--color-accent);border-color:var(--color-accent)}.checkbox-container input[type=checkbox]:checked+.checkmark:after{content:"";border:solid var(--color-on-accent);border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.auth-button{padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-base);cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);border:1.5px solid #0000;display:flex;position:relative}.auth-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.auth-button.primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.auth-button.primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.auth-button.secondary{background:var(--color-surface);color:var(--color-text-2);border-color:var(--color-border)}.auth-button.secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.button-spinner{border:2px solid color-mix(in srgb, currentColor 22%, transparent);border-radius:var(--radius-round);border-top:2px solid;width:16px;height:16px;animation:1s linear infinite spin}.link-button{color:var(--color-accent);cursor:pointer;font-size:inherit;background:0 0;border:none;font-family:inherit;text-decoration:underline}.link-button:hover{color:var(--color-accent-hover)}.auth-forgot-row{margin:calc(-1 * var(--space-2)) 0 var(--space-3);text-align:right;font-size:13px}.auth-modal-copy{margin:0 0 var(--space-3);color:var(--color-text-3);font-size:13px;line-height:1.5}.auth-form-footer{text-align:center;margin-top:var(--space-4)}.auth-form-footer p{color:var(--color-text-3);font-size:var(--text-base);margin:0}.auth-message{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);transform:translateY(-10px)}.auth-message:not(.hidden){opacity:1;transform:translateY(0)}.auth-message.success{background:var(--color-success-soft);color:var(--color-success-fg);border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent)}.auth-message.error{background:var(--color-danger-soft);color:var(--color-danger-fg);border:1px solid color-mix(in srgb, var(--color-danger) 35%, transparent)}.fab-container{z-index:1360;pointer-events:none;align-items:center;gap:12px;display:flex;position:fixed;bottom:44px;right:24px}.fab-main{background:var(--gradient-accent);border-radius:var(--radius-round);width:56px;height:56px;color:var(--color-on-accent);cursor:pointer;box-shadow:var(--shadow-lg), var(--shadow-accent);transition:transform var(--transition-slow), box-shadow var(--transition-slow);pointer-events:auto;will-change:transform, box-shadow;border:none;outline:none;justify-content:center;align-items:center;font-size:0;display:flex;position:relative;transform:scale(1)}.fab-main:hover{box-shadow:var(--shadow-xl), var(--shadow-accent);transform:scale(1.05)}.fab-main:active{box-shadow:var(--shadow-md);transform:scale(.95)}.fab-main:focus-visible{box-shadow:var(--shadow-lg), 0 0 0 4px var(--color-accent-ring);outline:none}.fab-icon{width:24px;height:24px;transition:transform var(--transition-slow);pointer-events:none}.fab-main.open .fab-icon{transform:rotate(45deg)}.fab-menu{gap:var(--space-4);opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);pointer-events:none;transform-origin:bottom;flex-direction:column;display:flex;position:absolute;bottom:72px;right:0;transform:translateY(20px)scale(.8)}.fab-menu.open{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.fab-menu-item{align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-5);box-shadow:var(--shadow-md);cursor:pointer;font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;transition:background-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base), opacity var(--transition-base);opacity:0;will-change:transform, opacity;outline:none;min-height:48px;display:flex;transform:translate(20px)}.fab-menu.open .fab-menu-item{opacity:1;transform:translate(0)}.fab-menu.open .fab-menu-item:first-child{transition-delay:50ms}.fab-menu.open .fab-menu-item:nth-child(2){transition-delay:.1s}.fab-menu.open .fab-menu-item:nth-child(3){transition-delay:.15s}.fab-menu-item:hover{background:var(--color-surface-2);box-shadow:var(--shadow-lg);transform:translate(-4px)scale(1.02)}.fab-menu-item:active{box-shadow:var(--shadow-sm);transform:translate(-2px)scale(.98)}.fab-menu-item:focus-visible{box-shadow:var(--shadow-md), var(--shadow-focus);outline:none}.fab-menu-icon{opacity:.7;flex-shrink:0;width:20px;height:20px}.fab-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(2px);opacity:0;visibility:hidden;width:100%;height:100%;transition:opacity var(--transition-slow), visibility var(--transition-slow);z-index:var(--z-chrome);pointer-events:none;position:fixed;top:0;left:0}.fab-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.fab-main:before{content:"";border-radius:var(--radius-round);pointer-events:none;opacity:0;background:#ffffff4d;width:0;height:0;transition:width .6s,height .6s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fab-main.ripple:before{opacity:1;width:56px;height:56px;transition:width .3s,height .3s,opacity .6s}.fab-container.auth-required{display:none}.fab-main.loading{pointer-events:none}.fab-main.loading .fab-icon{animation:1s linear infinite fab-spin}@keyframes fab-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fab-bounce-in{0%{opacity:0;transform:translate(20px)scale(.3)}50%{opacity:.8;transform:translate(-8px)scale(1.05)}70%{opacity:1;transform:translate(4px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.fab-menu.spring .fab-menu-item{animation:.4s cubic-bezier(.175,.885,.32,1.275) fab-bounce-in}.fab-menu.spring .fab-menu-item:first-child{animation-delay:50ms}.fab-menu.spring .fab-menu-item:nth-child(2){animation-delay:.1s}.fab-menu.spring .fab-menu-item:nth-child(3){animation-delay:.15s}@media (width<=768px){#layer-control{top:calc(8px + env(safe-area-inset-top,0px));max-width:none;max-height:80vh;left:8px;right:8px}#layer-control-content{max-height:calc(80vh - 60px);padding:10px}#layer-control-content>*{flex-shrink:0}#layer-control-content .layer-section.event-overlays.scroll-capped{max-height:none;overflow:visible}#layer-control.collapsed #layer-control-content{padding:0 10px}#menu-auth-section{order:-11}.layer-toggle{padding:12px 4px}.toggle-switch{width:48px;height:28px}.toggle-slider:before{width:22px;height:22px;bottom:3px;left:3px}input:checked+.toggle-slider:before{transform:translate(20px)}.layer-toggle-text{letter-spacing:-.01em;font-size:16px}.login-trigger{padding:14px 16px;font-size:16px;top:8px;left:8px}.user-profile{min-width:auto;top:8px;left:8px;right:8px}.user-profile-content{flex-direction:column;align-items:stretch;gap:16px}.user-info{justify-content:center}.auth-modal{align-items:flex-start}.auth-modal-container{width:calc(100% - 24px);max-width:500px;margin:calc(env(safe-area-inset-top,0px) + 12px) auto 0;max-height:85dvh}.auth-modal-content{padding:20px}.form-group input{font-size:16px}.fab-main{width:64px;height:64px;box-shadow:0 4px 8px -1px #00000040,0 8px 16px 1px #0000002e,0 2px 24px 2px #00000026}.fab-main:hover{transform:scale(1.03)}.fab-icon{width:28px;height:28px}.fab-menu{gap:12px;bottom:80px}.fab-menu-item{border-radius:26px;min-height:52px;padding:14px 20px;font-size:16px}.fab-menu-icon{width:24px;height:24px}.fab-container{bottom:max(16px, env(safe-area-inset-bottom));right:max(16px, env(safe-area-inset-right))}@media (prefers-reduced-motion:reduce){.fab-main,.fab-menu,.fab-menu-item,.fab-backdrop,.fab-icon{transition:none!important;animation:none!important}}}.note-modal{width:100%;height:100%;z-index:var(--z-modal);opacity:0;visibility:hidden;transition:opacity var(--transition-slow), visibility var(--transition-slow);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.note-modal:not(.hidden){opacity:1;visibility:visible}.note-modal-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);width:100%;height:100%;position:absolute;top:0;left:0}.note-modal-container{border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border-soft);width:90%;max-width:500px;max-height:90vh;transition:transform var(--transition-slow);position:relative;overflow:hidden;transform:scale(.95)translateY(16px);background:var(--color-surface-glass)!important;color:var(--color-text)!important}.note-modal:not(.hidden) .note-modal-container{transform:scale(1)translateY(0)}.note-modal-header{padding:var(--space-6) 28px var(--space-5) 28px;border-bottom:1px solid var(--color-divider);border-radius:var(--radius-xl) var(--radius-xl) 0 0;justify-content:space-between;align-items:center;display:flex;background:var(--color-surface-2)!important;color:var(--color-text)!important}.note-modal-header h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-snug);margin:0;color:var(--color-text)!important}.note-modal-kicker,.note-eyebrow{color:#a66a0a;font-size:11px;font-weight:var(--weight-bold,700);letter-spacing:.11em;text-transform:uppercase;margin-bottom:3px;line-height:1.2}.note-modal-close{background:var(--color-surface);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-base), color var(--transition-base), transform var(--transition-fast);border:none;border:1px solid var(--color-border);justify-content:center;align-items:center;width:40px;height:40px;padding:8px;display:flex;color:var(--color-text-3)!important}.note-modal-close:hover{border-color:var(--color-border-strong);transform:scale(1.05);background:var(--color-surface-2)!important;color:var(--color-text)!important}.note-modal-close svg{width:20px;height:20px}.note-modal-content{padding:var(--space-6);max-height:calc(90vh - 80px);overflow-y:auto;color:var(--color-text)!important;background:0 0!important}.note-form{gap:var(--space-6);flex-direction:column;display:flex}.note-type-field{border:0;min-width:0;margin:0;padding:0}.note-type-field legend,.note-section-label{margin:0 0 var(--space-2);color:var(--color-text);font-size:var(--text-base);font-weight:var(--weight-semibold)}.note-section-label span{color:var(--color-text-4);font-size:var(--text-xs,12px);font-weight:var(--weight-normal,400);margin-left:4px}.note-type-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.note-type-option{align-items:center;gap:var(--space-2);min-height:42px;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb, #d49a28 30%, var(--color-border));border-radius:var(--radius-md);background:color-mix(in srgb, #f4c35d 8%, var(--color-surface));color:var(--color-text-2);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base);display:flex;position:relative;overflow:hidden}.note-type-option input{opacity:0;pointer-events:none;position:absolute}.note-type-option:has(input:checked){background:color-mix(in srgb, #efb735 18%, var(--color-surface));color:var(--color-text);border-color:#c38619;box-shadow:0 0 0 1px #c3861952}.note-type-option:has(input:focus-visible){box-shadow:var(--shadow-focus);outline:none}.note-type-option-icon{color:#a66a0a;flex:none;display:inline-flex}.location-display{background:var(--color-accent-soft);border:1px solid color-mix(in srgb, var(--color-accent) 22%, transparent);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color var(--transition-base)}.location-display-header{align-items:center;gap:var(--space-3);display:flex}.location-icon{width:24px;height:24px;color:var(--color-accent);flex-shrink:0}.location-info{flex:1;min-width:0}.location-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin-bottom:var(--space-1)}.location-coordinates{font-size:var(--text-sm);color:var(--color-text-3);font-family:var(--font-mono);word-break:break-all}.location-selection{gap:var(--space-3);flex-wrap:wrap;display:flex}.location-button{border:1.5px solid var(--color-border);border-radius:var(--radius-md);min-width:140px;padding:14px var(--space-4);cursor:pointer;justify-content:center;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:var(--weight-medium);transition:border-color var(--transition-base), color var(--transition-base), background-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);flex:1;display:flex;background:var(--color-surface)!important;color:var(--color-text)!important}.location-button:hover:not(:disabled){border-color:var(--color-accent);box-shadow:var(--shadow-sm);transform:translateY(-1px);color:var(--color-accent)!important;background:var(--color-accent-soft)!important}.location-button:active:not(:disabled){transform:translateY(0)}.location-button:disabled{opacity:.6;cursor:not-allowed}.location-button svg{width:18px;height:18px}.manual-coordinates{transition:all .3s}.coordinate-inputs{gap:12px;margin-bottom:12px;display:flex}.coordinate-input{flex-direction:column;flex:1;gap:6px;display:flex}.coordinate-input label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-3);text-transform:uppercase;letter-spacing:.5px}.coordinate-input input{padding:10px var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base);font-family:var(--font-mono);transition:border-color var(--transition-base), box-shadow var(--transition-base);background:var(--color-surface)!important;color:var(--color-text)!important}.coordinate-input input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.toggle-manual{color:var(--color-accent);cursor:pointer;font-size:var(--text-sm);padding:var(--space-1) 0;background:0 0;border:none;align-self:flex-start;text-decoration:underline}.toggle-manual:hover{color:var(--color-accent-hover)}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-group label{font-weight:var(--weight-medium);font-size:var(--text-base);color:var(--color-text)!important}.textarea-container{position:relative}.textarea-container textarea{width:100%;padding:var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:16px;line-height:var(--leading-normal);resize:none;transition:border-color var(--transition-base), box-shadow var(--transition-base);box-sizing:border-box;min-height:120px;max-height:200px;background:var(--color-surface)!important;color:var(--color-text)!important}.textarea-container textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.textarea-container textarea::placeholder{color:var(--color-text-4)}.char-counter{bottom:var(--space-3);right:var(--space-4);font-size:var(--text-sm);color:var(--color-text-3);background:var(--color-surface-glass);padding:2px var(--space-2);border-radius:var(--radius-xs);-webkit-backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute}.form-error{color:var(--color-danger-fg);font-size:var(--text-sm);opacity:0;min-height:16px;transition:opacity var(--transition-base);display:none}.form-error:not(:empty){opacity:1;display:block}.note-message{margin:var(--space-4) 0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);opacity:0;transition:opacity var(--transition-slow), transform var(--transition-slow);transform:translateY(-10px)}.note-message:not(.hidden){opacity:1;transform:translateY(0)}.note-message.success{background:var(--color-success-soft);color:var(--color-success-fg);border:1px solid color-mix(in srgb, var(--color-success) 35%, transparent)}.note-message.error{background:var(--color-danger-soft);color:var(--color-danger-fg);border:1px solid color-mix(in srgb, var(--color-danger) 35%, transparent)}.note-message.info{background:var(--color-info-soft);color:var(--color-info-fg);border:1px solid color-mix(in srgb, var(--color-info) 35%, transparent)}.form-actions{gap:var(--space-3);margin-top:var(--space-2);justify-content:flex-end;display:flex}.note-button{padding:var(--space-3) var(--space-6);border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-base);cursor:pointer;transition:background-color var(--transition-base), border-color var(--transition-base), color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-fast);justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-target);border:1.5px solid #0000;min-width:100px;display:flex;position:relative}.note-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.note-button.primary{background:var(--color-accent);color:var(--color-on-accent);box-shadow:var(--shadow-sm)}.note-button.primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.note-button.secondary{background:var(--color-surface);color:var(--color-text-2);border-color:var(--color-border)}.note-button.secondary:hover:not(:disabled){background:var(--color-surface-2);border-color:var(--color-border-strong);color:var(--color-text)}.note-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.button-spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin}@media (width<=768px){.note-modal-container{width:95%;max-height:95vh;margin:16px}.note-modal-content{padding:20px}.note-form{gap:20px}.note-type-option{min-height:46px}.location-selection{flex-direction:column}.location-button{min-width:auto;padding:16px;font-size:15px}.coordinate-inputs{flex-direction:column}.textarea-container textarea{padding:14px;font-size:16px}.form-actions{flex-direction:column-reverse;gap:8px}.note-button{width:100%;min-height:52px;padding:14px 24px;font-size:16px}.note-modal{align-items:flex-start;padding-top:20px}.note-modal-container{max-height:calc(100vh - 40px)}}@media (prefers-reduced-motion:reduce){.note-modal,.note-modal-container,.note-button,.location-button,.note-message{transition:none!important;animation:none!important}}.note-display-marker{will-change:auto;line-height:0;animation:none;position:absolute;top:0;left:0;background:0 0!important;border:none!important;width:max-content!important;height:max-content!important;transition:none!important;display:inline-block!important}.note-marker-container{position:relative}.note-marker-icon{box-sizing:border-box;position:relative;transition:all .2s!important}.note-marker-icon:after{content:"";background:#fff8e852;border:0 solid #fff8e8d1;border-width:0 0 1px 1px;border-radius:0 5px 0 2px;width:9px;height:9px;position:absolute;top:-1px;right:-1px}.note-marker-icon:hover{filter:brightness(1.1);transform:scale(1.1)!important}.note-marker-badge{animation:2s infinite pulse}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.note-display-popup .leaflet-popup-content-wrapper{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-soft);-webkit-backdrop-filter:blur(24px);padding:0;overflow:visible;background:var(--color-surface-glass)!important}.note-display-popup .leaflet-popup-content{line-height:var(--leading-normal);margin:0}.note-display-popup .leaflet-popup-tip{border:1px solid var(--color-border-soft);box-shadow:var(--shadow-xs);background:var(--color-surface-glass)!important}.note-popup-content{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);border-radius:var(--radius-lg);background:color-mix(in srgb, #f1bd52 5%, var(--color-surface));overflow:hidden;color:var(--color-text)!important}.note-popup-header{justify-content:space-between;align-items:stretch;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid color-mix(in srgb, #c38619 24%, var(--color-divider));flex-direction:column;display:flex;background:color-mix(in srgb, #efb735 11%, var(--color-surface-2))!important;color:var(--color-text)!important}.note-context-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.note-context-row .note-eyebrow{margin:0}.note-type-chip{background:color-mix(in srgb, #efb735 15%, var(--color-surface));color:#9a620a;font-size:11px;font-weight:var(--weight-semibold);border:1px solid #c3861952;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;line-height:1;display:inline-flex}.note-actions-wrapper{position:relative}.note-author{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.note-author-avatar{border-radius:var(--radius-round);width:32px;height:32px;color:var(--color-on-accent);font-weight:var(--weight-semibold);font-size:var(--text-base);box-shadow:var(--shadow-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.note-author-info{flex:1;min-width:0}.note-author-name{font-weight:var(--weight-semibold);font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--color-text)!important}.note-timestamp{font-size:var(--text-sm);margin-top:2px;color:var(--color-text-3)!important}.note-actions-toggle{border-radius:var(--radius-round);cursor:pointer;width:32px;height:32px;transition:background-color var(--transition-base), color var(--transition-base);color:var(--color-text-3);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;font-size:18px;font-weight:700;display:flex}.note-actions-toggle:hover{background:var(--color-surface-3);color:var(--color-text)}.note-content-container{padding:var(--space-4);background-image:repeating-linear-gradient(#0000 0 27px,#c386191a 28px);position:relative}.note-content-display{word-wrap:break-word;white-space:pre-wrap;margin-bottom:var(--space-3);min-height:48px;line-height:28px}.note-content-editor{transition:all var(--transition-slow)}.note-edit-type-label{margin-bottom:var(--space-2);color:var(--color-text-3);font-size:var(--text-sm);font-weight:var(--weight-medium);flex-direction:column;gap:5px;display:flex}.note-edit-type{border:1px solid color-mix(in srgb, #c38619 32%, var(--color-border));border-radius:var(--radius-sm);background:var(--color-surface);min-height:40px;color:var(--color-text);font:inherit;padding:8px 10px}.note-popup-content .task-checklist-row,.note-popup-content .task-checklist-ghost{border-color:color-mix(in srgb, #c38619 22%, var(--color-border));background:color-mix(in srgb, #efb735 6%, var(--color-surface-2))}.note-edit-textarea{width:100%;min-height:60px;max-height:150px;padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base);font-family:inherit;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-surface);resize:none;transition:border-color var(--transition-base), box-shadow var(--transition-base);box-sizing:border-box;outline:none}.note-edit-textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.note-edit-actions{gap:var(--space-2);margin-top:var(--space-3);justify-content:flex-end;display:flex}.note-edit-save,.note-edit-cancel{padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base), transform var(--transition-fast);border:none}.note-edit-save{background:var(--color-accent);color:var(--color-on-accent)}.note-edit-save:hover:not(:disabled){background:var(--color-accent-hover);transform:translateY(-1px)}.note-edit-save:disabled{opacity:.6;cursor:not-allowed;transform:none}.note-edit-cancel{background:var(--color-surface-2);color:var(--color-text-2)}.note-edit-cancel:hover:not(:disabled){background:var(--color-surface-3);color:var(--color-text)}.note-actions-menu{top:100%;right:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-panel);opacity:0;visibility:hidden;min-width:140px;transition:opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);position:absolute;overflow:hidden;transform:translateY(-8px)}.note-actions-menu:not(.hidden){opacity:1;visibility:visible;transform:translateY(0)}.note-action-edit,.note-action-delete{width:100%;padding:var(--space-3) var(--space-4);color:var(--color-text);font-size:var(--text-sm);text-align:left;cursor:pointer;align-items:center;gap:var(--space-2);transition:background-color var(--transition-base), color var(--transition-base);background:0 0;border:none;display:flex}.note-action-edit:hover{background:var(--color-accent-soft);color:var(--color-accent)}.note-action-delete:hover{background:var(--color-danger-soft);color:var(--color-danger-fg)}.note-action-edit svg,.note-action-delete svg{flex-shrink:0}.note-share-actions{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider);background:var(--color-surface-2);justify-content:center;gap:var(--space-3);display:flex}.note-archived-badge{border-radius:var(--radius-sm,4px);background:var(--color-surface-3,#7878782e);color:var(--color-text-2);text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.note-share-actions button,.note-share-actions a.note-action-monday{border:1px solid var(--color-border);background:var(--color-surface);width:40px;height:40px;color:var(--color-text-2);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);justify-content:center;align-items:center;padding:0;text-decoration:none;display:flex}.note-share-actions button:hover{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.note-share-actions .note-action-monday:hover{color:#0073ea;background:#0073ea1f;border-color:#0073ea}@media (pointer:coarse){.note-share-actions a.note-action-monday{display:none}}.note-share-actions .note-action-delete:hover{background:var(--color-danger-soft);color:var(--color-danger-fg);border-color:var(--color-danger-fg)}.note-share-actions button svg{flex-shrink:0;width:18px;height:18px}.note-add-attachment{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider);flex-wrap:wrap;display:flex}.note-add-attachment-label{color:var(--color-text-3);margin-right:var(--space-1);font-size:.85rem}.note-add-attachment-save{padding:var(--space-2) var(--space-4);border:1px solid var(--color-accent);background:var(--color-accent);color:var(--color-on-accent,#fff);border-radius:var(--radius-md);cursor:pointer;font-weight:600}.note-add-attachment-save:disabled{opacity:.6;cursor:default}.note-action-share{width:32px;height:32px;color:var(--color-text-3);border-radius:var(--radius-round);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.note-action-share:hover{background:var(--color-accent-soft);color:var(--color-accent)}.notes-loading-indicator{color:var(--color-text-on-dark);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);align-items:center;gap:var(--space-3);z-index:3000;-webkit-backdrop-filter:blur(4px);background:#0f172adb;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-spinner{border-radius:var(--radius-round);border:3px solid #ffffff4d;border-top-color:#fff;width:24px;height:24px;animation:1s linear infinite spin}.loading-text{font-size:var(--text-base);font-weight:var(--weight-medium)}.notes-load-failure{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-danger-soft);color:var(--color-danger-fg);border-left:4px solid var(--color-danger);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);box-shadow:var(--shadow-md);z-index:2500;pointer-events:none;max-width:calc(100vw - 32px);display:flex;position:fixed;top:16px;left:50%;transform:translate(-50%)}.loading-spinner-sm{border-width:2px;border-color:var(--color-danger-fg);border-top-color:#0000;width:14px;height:14px}.notes-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--weight-medium);z-index:2500;animation:slideInRight var(--transition-slow);max-width:300px;box-shadow:var(--shadow-lg);border-left:4px solid #0000;position:fixed;top:20px;right:20px}.notes-message-info{background:var(--color-info-soft);color:var(--color-info-fg);border-left-color:var(--color-info)}.notes-message-error{background:var(--color-danger-soft);color:var(--color-danger-fg);border-left-color:var(--color-danger)}.notes-message-success{background:var(--color-success-soft);color:var(--color-success-fg);border-left-color:var(--color-success)}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.hidden{display:none!important}@media (width<=768px){.note-display-popup .leaflet-popup-content-wrapper{min-width:280px;max-width:calc(100vw - 40px)!important}.note-popup-header,.note-content-container{padding:14px}.note-author-avatar{width:28px;height:28px;font-size:12px}.note-author-name{font-size:13px}.note-timestamp{font-size:11px}.note-edit-textarea{min-height:80px;font-size:16px}.note-edit-actions{flex-direction:column-reverse}.note-edit-save,.note-edit-cancel{padding:12px 16px;font-size:14px}.note-actions-menu{min-width:160px;right:8px}.note-action-edit,.note-action-delete{padding:14px 16px;font-size:14px}.notes-message{max-width:none;top:10px;left:10px;right:10px}.notes-loading-indicator{margin:20px;left:20px;right:20px;transform:translateY(-50%)}}@media (-webkit-device-pixel-ratio>=2),(resolution>=192dpi){.note-marker-icon{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}@media (prefers-reduced-motion:reduce){.note-marker-icon,.note-actions-menu,.note-edit-textarea,.loading-spinner,.notes-message{transition:none!important;animation:none!important}.note-marker-badge{animation:none!important}}.tutorial-overlay{width:100%;height:100%;z-index:var(--z-admin);pointer-events:none;opacity:0;transition:opacity var(--transition-slow);position:fixed;top:0;left:0}.tutorial-overlay.active{opacity:1;pointer-events:auto}.tutorial-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000b3;width:100%;height:100%;position:absolute;top:0;left:0}.tutorial-spotlight{pointer-events:none;z-index:10001;border-radius:8px;transition:all .3s;position:absolute;box-shadow:0 0 0 9999px #000000b3}.tutorial-popup{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--color-border-soft);min-width:300px;max-width:400px;z-index:var(--z-tutorial);animation:tutorialPopupSlide var(--transition-slow);position:absolute}@keyframes tutorialPopupSlide{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.tutorial-popup-header{justify-content:space-between;align-items:center;padding:20px 20px 0;display:flex}.tutorial-popup-title{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.tutorial-close{cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-3);transition:background-color var(--transition-base), color var(--transition-base);background:0 0;border:none}.tutorial-close:hover{background:var(--color-surface-2);color:var(--color-text)}.tutorial-close svg{width:18px;height:18px}.tutorial-popup-content{padding:16px 20px}.tutorial-popup-description{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-2);margin:0}.tutorial-popup-footer{padding:var(--space-4) var(--space-5) var(--space-5) var(--space-5);border-top:1px solid var(--color-divider);justify-content:space-between;align-items:center;display:flex}.tutorial-progress{align-items:center;gap:var(--space-2);display:flex}.tutorial-step-counter{font-size:var(--text-sm);color:var(--color-text-3);font-weight:var(--weight-medium)}.tutorial-actions{gap:var(--space-2);display:flex}.tutorial-btn{border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);font-size:var(--text-base);font-weight:var(--weight-semibold);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base), transform var(--transition-fast);border:1px solid #0000;min-width:70px}.tutorial-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.tutorial-btn.primary{background:var(--color-accent);color:var(--color-on-accent)}.tutorial-btn.primary:hover{background:var(--color-accent-hover);transform:translateY(-1px)}.tutorial-btn.secondary{background:var(--color-surface-2);color:var(--color-text-2);border-color:var(--color-border)}.tutorial-btn.secondary:hover{background:var(--color-surface-3);color:var(--color-text)}@media (width<=640px){.tutorial-popup{min-width:280px;max-width:calc(100vw - 40px)}.tutorial-popup-header{padding:16px 16px 0}.tutorial-popup-title{font-size:16px}.tutorial-popup-content{padding:12px 16px}.tutorial-popup-footer{flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px 16px}.tutorial-actions{justify-content:space-between;width:100%}.tutorial-btn{text-align:center;flex:1}}@media (prefers-reduced-motion:reduce){.tutorial-overlay,.tutorial-spotlight,.tutorial-popup{transition:none}@keyframes tutorialPopupSlide{0%{opacity:0}to{opacity:1}}}.fab-notes-flyout{border-radius:var(--radius-xl);width:min(95vw,600px);min-width:480px;max-width:600px;max-height:80vh;box-shadow:var(--shadow-xl);-webkit-backdrop-filter:blur(24px);border:1px solid var(--color-border-soft);isolation:isolate;opacity:0;pointer-events:none;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);transform:translate(-50%,-50%)scale(.8);background:var(--color-surface-glass)!important;color:var(--color-text)!important;z-index:var(--z-flyout)!important;box-sizing:border-box!important;border:none!important;outline:none!important;margin:0!important;padding:0!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif!important;display:flex!important;position:fixed!important;top:50%!important;left:50%!important}.fab-notes-flyout.show{opacity:1!important;pointer-events:auto!important;transform:translate(-50%,-50%)scale(1)!important}.fab-notes-backdrop{background:var(--color-overlay);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-slow), visibility var(--transition-slow);-webkit-backdrop-filter:blur(4px);width:100%!important;height:100%!important;z-index:var(--z-admin)!important;position:fixed!important;top:0!important;left:0!important}.fab-notes-backdrop.show{opacity:1!important;visibility:visible!important;pointer-events:auto!important}.fab-notes-header{padding:var(--space-6) 28px var(--space-5) 28px;border-bottom:1px solid var(--color-divider);border-radius:var(--radius-xl) var(--radius-xl) 0 0;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;background:var(--color-surface-2)!important;color:var(--color-text)!important}.fab-notes-header h3{font-size:var(--text-xl);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-snug);margin:0;color:var(--color-text)!important}.fab-notes-close{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-3);cursor:pointer;border-radius:var(--radius-md);transition:background-color var(--transition-base), color var(--transition-base), transform var(--transition-fast);justify-content:center;align-items:center;width:40px;height:40px;padding:8px;font-size:22px;line-height:1;display:flex}.fab-notes-close:hover{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border-strong);transform:scale(1.05)}.fab-notes-close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.fab-notes-tabs{gap:var(--space-2);padding:var(--space-3) 28px;border-bottom:1px solid var(--color-divider);background:var(--color-surface-2);flex-shrink:0;display:flex}.fab-notes-tab{border:1px solid var(--color-border);border-radius:var(--radius-full,999px);background:var(--color-surface);color:var(--color-text-2);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);padding:6px 14px}.fab-notes-tab:hover{color:var(--color-text);border-color:var(--color-border-strong)}.fab-notes-tab.active{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.fab-note-unarchive{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-2);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base), border-color var(--transition-base);flex-shrink:0;align-self:center;padding:6px 12px}.fab-note-unarchive:hover{background:var(--color-accent-soft);color:var(--color-accent);border-color:var(--color-accent)}.fab-note-unarchive:disabled{opacity:.5;cursor:default}.fab-note-item--archived .fab-note-text{opacity:.75}.fab-notes-list{padding:var(--space-2) 0;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex:1;overflow:hidden auto;color:var(--color-text)!important;background:0 0!important}.fab-notes-list::-webkit-scrollbar{width:8px}.fab-notes-list::-webkit-scrollbar-track{background:0 0}.fab-notes-list::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill)}.fab-notes-list::-webkit-scrollbar-thumb:hover{background:var(--color-text-4)}.fab-note-item{padding:var(--space-3) var(--space-6);cursor:pointer;transition:background-color var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);border-bottom:1px solid var(--color-divider);align-items:center;gap:var(--space-4);margin:0 var(--space-3) var(--space-1) var(--space-3);border-radius:var(--radius-md);display:flex;position:relative}.fab-note-item:hover{background:var(--color-surface-2);box-shadow:var(--shadow-xs);transform:translate(2px)}.fab-note-item:last-child{border-bottom:none}.fab-note-avatar{border-radius:var(--radius-round);width:32px;height:32px;color:var(--color-on-accent);font-weight:var(--weight-medium);font-size:var(--text-sm);box-shadow:var(--shadow-xs);flex-shrink:0;justify-content:center;align-items:center;display:flex}.fab-note-content{flex:1;min-width:0}.fab-note-author{font-weight:var(--weight-medium);font-size:var(--text-base);letter-spacing:var(--tracking-snug);margin-bottom:2px;color:var(--color-text)!important}.fab-note-text{font-size:var(--text-sm);text-overflow:ellipsis;-webkit-line-clamp:1;letter-spacing:-.005em;-webkit-box-orient:vertical;margin-bottom:3px;line-height:1.4;display:-webkit-box;overflow:hidden;color:var(--color-text-2)!important}.fab-note-time{font-size:var(--text-xs);font-weight:var(--weight-regular);color:var(--color-text-4)!important}.fab-note-arrow{color:var(--color-text-4);transition:color var(--transition-base), transform var(--transition-base), opacity var(--transition-base);opacity:.6;flex-shrink:0;font-size:16px}.fab-note-item:hover .fab-note-arrow{color:var(--color-accent);opacity:1;transform:translate(2px)}@media (width<=768px){.fab-notes-flyout{width:95vw;min-width:320px;max-width:95vw;max-height:85vh}.fab-notes-header{padding:20px 24px 16px}.fab-notes-header h3{font-size:18px}.fab-note-item{gap:14px;margin:0 8px 3px;padding:10px 20px}.fab-note-avatar{width:36px;height:36px;font-size:14px}.fab-note-content,.fab-note-author,.fab-note-text{font-size:13px}.fab-note-time{font-size:11px}}@media (width<=640px){.fab-notes-flyout{max-height:85dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0!important;width:100%!important;min-width:0!important;max-width:100%!important;inset:auto 0 0!important}.fab-notes-flyout.show{transform:translateY(0)!important}}@media (prefers-reduced-motion:reduce){.fab-notes-flyout,.fab-notes-backdrop,.fab-note-item,.fab-note-arrow,.fab-notes-close{transition:none!important}}.note-history-modal{width:100%;height:100%;z-index:var(--z-overlay);opacity:0;visibility:hidden;transition:opacity var(--transition-slow), visibility var(--transition-slow);justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0}.note-history-modal.show{opacity:1;visibility:visible}.note-history-modal-backdrop{background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);width:100%;height:100%;position:absolute;top:0;left:0}.note-history-modal-container{background:var(--color-surface);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:80vh;box-shadow:var(--shadow-xl);border:1px solid var(--color-border-soft);transition:transform var(--transition-slow);position:relative;overflow:hidden;transform:scale(.95)}.note-history-modal.show .note-history-modal-container{transform:scale(1)}.note-history-modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-divider);background:var(--color-surface-2);justify-content:space-between;align-items:center;display:flex}.note-history-modal-header h2{font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.note-history-modal-close{cursor:pointer;border-radius:var(--radius-sm);color:var(--color-text-3);transition:background-color var(--transition-base), color var(--transition-base);background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:8px;display:flex}.note-history-modal-close:hover{background:var(--color-surface-2);color:var(--color-text)}.note-history-modal-content{max-height:calc(80vh - 80px);padding:24px;overflow-y:auto}.note-history-info{margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-divider)}.note-history-info h3{margin:0 0 var(--space-2) 0;font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.note-history-info p{color:var(--color-text-3);font-size:var(--text-base);margin:0}.note-history-list{gap:var(--space-4);flex-direction:column;display:flex}.no-history{text-align:center;color:var(--color-text-3);padding:var(--space-7);margin:0;font-style:italic}.history-entry{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:box-shadow var(--transition-base);overflow:hidden}.history-entry:hover{box-shadow:var(--shadow-sm)}.history-entry-header{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-2);border-bottom:1px solid var(--color-divider);display:flex}.history-entry-icon{border-radius:var(--radius-round);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.history-entry-icon.created{background:var(--color-success-soft);color:var(--color-success)}.history-entry-icon.updated{background:var(--color-info-soft);color:var(--color-info)}.history-entry-icon.deleted{background:var(--color-danger-soft);color:var(--color-danger)}.history-entry-info{flex:1;min-width:0}.history-entry-action{font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text);margin-bottom:var(--space-1)}.history-entry-time{font-size:var(--text-sm);color:var(--color-text-3)}.history-entry-content{padding:16px}.history-entry-content>:first-child{margin-top:0}.history-entry-content>:last-child{margin-bottom:0}.history-entry-diff{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-divider)}.history-diff-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-3);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.5px}.history-diff-content{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);color:var(--color-text-2);font-size:var(--text-base);line-height:1.4}@media (width<=768px){.note-history-modal-container{width:95%;max-height:90vh;margin:0 10px}.note-history-modal-header{padding:16px 20px}.note-history-modal-header h2{font-size:18px}.note-history-modal-content{padding:20px}.history-entry-header,.history-entry-content{padding:12px}}@media (prefers-reduced-motion:reduce){.note-history-modal,.note-history-modal-container,.note-history-modal-close,.history-entry{transition:none!important}}.zone-finish-wrap{z-index:var(--z-flyout);gap:var(--space-2);pointer-events:none;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.map-edit-controls{z-index:var(--z-flyout);align-items:center;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:calc(100vw - 24px);display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.map-edit-controls .map-edit-row{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.zone-finish-wrap .zone-finish-btn,.map-edit-controls .zone-finish-btn{pointer-events:auto;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);font-weight:var(--weight-semibold);font-size:var(--text-md);box-shadow:var(--shadow-lg);cursor:pointer;min-height:var(--tap-target);touch-action:manipulation;border:none}.zone-finish-wrap .zone-finish-done,.map-edit-controls .zone-finish-done{background:var(--color-success);color:#fff}.zone-finish-wrap .zone-finish-cancel,.map-edit-controls .zone-finish-cancel{background:var(--color-surface);color:var(--color-text-2);border:1px solid var(--color-border-strong)}.zone-finish-wrap .zone-reshape-hint,.map-edit-controls .zone-reshape-hint{pointer-events:none;text-align:center;color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-medium);box-shadow:var(--shadow-lg);background:#111827d9;align-self:center}.zone-modal-overlay{background:var(--color-overlay);z-index:10005;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=600px){.zone-modal-overlay{padding:var(--space-6);align-items:center}}.zone-modal{background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:460px;box-shadow:var(--shadow-xl);flex-direction:column;max-height:90vh;display:flex;overflow:hidden}@media (width>=600px){.zone-modal{border-radius:var(--radius-lg)}}.zone-modal-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;display:flex}.zone-modal-header h3{font-size:var(--text-lg);color:var(--color-text);margin:0}.zone-modal-close{cursor:pointer;color:var(--color-text-3);border-radius:var(--radius-sm);background:0 0;border:none;width:36px;height:36px;font-size:24px;line-height:1}.zone-modal-close:hover{background:var(--color-surface-2)}.zone-modal-body{padding:var(--space-4) var(--space-5);overflow-y:auto}.zone-modal-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-2);margin:var(--space-2) 0 var(--space-2);text-transform:uppercase;letter-spacing:.04em;display:block}.zone-sev-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);margin-bottom:10px;display:grid}.zone-sev-btn{--sev:var(--color-text-3);padding:var(--space-3) var(--space-4);border:2px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-md);font-weight:var(--weight-semibold);font-size:var(--text-base);color:var(--color-text);cursor:pointer;touch-action:manipulation;align-items:center;gap:10px;min-height:48px;display:flex}.zone-sev-btn.active{border-color:var(--sev);background:color-mix(in srgb, var(--sev) 12%, var(--color-surface))}.zone-sev-dot{border-radius:var(--radius-round);background:var(--sev);width:14px;height:14px;display:inline-block;box-shadow:0 0 0 2px #0000000d}.zone-color-field{margin:var(--space-3) 0 var(--space-2);border:0;min-width:0;padding:0}.zone-color-field legend{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-2);padding:0}.zone-color-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.zone-color-choice{--area-color:#6b7280;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-height:58px;color:var(--color-text-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;touch-action:manipulation;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:7px 4px;display:flex;position:relative}.zone-color-choice:hover{border-color:color-mix(in srgb, var(--area-color) 65%, var(--color-border));background:color-mix(in srgb, var(--area-color) 7%, var(--color-surface))}.zone-color-choice:has(input:checked){border-color:var(--area-color);background:color-mix(in srgb, var(--area-color) 13%, var(--color-surface));box-shadow:0 0 0 1px var(--area-color);color:var(--color-text)}.zone-color-choice:has(input:focus-visible){outline:3px solid color-mix(in srgb, var(--area-color) 35%, transparent);outline-offset:2px}.zone-color-choice input{opacity:0;pointer-events:none;block-size:1px;inline-size:1px;position:absolute}.zone-color-swatch{border-radius:var(--radius-round);background:var(--area-color);width:24px;height:24px;box-shadow:0 0 0 2px var(--color-surface), 0 0 0 3px color-mix(in srgb, var(--area-color) 55%, var(--color-border));display:block}@media (width<=360px){.zone-color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.zone-modal-input,.zone-modal-body textarea{box-sizing:border-box;width:100%;padding:10px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--color-text);background:var(--color-surface);font-family:inherit}.zone-modal-body textarea{resize:vertical;min-height:70px}.zone-modal-input:focus,.zone-modal-body textarea:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.zone-geofence-row{margin-top:var(--space-3);cursor:pointer;align-items:flex-start;gap:10px;display:flex}.zone-geofence-row input{flex:none;width:18px;height:18px;margin-top:3px}.zone-geofence-title{font-weight:var(--weight-semibold);color:var(--color-text);display:block}.zone-geofence-desc{font-size:var(--text-sm);color:var(--color-text-3);margin-top:2px;display:block}.zone-capacity-row{margin-top:var(--space-3)}.zone-capacity-row[hidden]{display:none}.zone-capacity-row input{box-sizing:border-box;width:100%;padding:10px var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);color:var(--color-text);background:var(--color-surface);font-family:inherit}.zone-occupancy{margin-top:var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.zone-occ-label{font-weight:var(--weight-semibold);color:var(--color-text-2)}.zone-occ-count{color:var(--color-text);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.zone-occupancy.zone-occ-over{background:#dc262614;border-color:#dc2626}.zone-occupancy.zone-occ-over .zone-occ-count{color:#dc2626}.zone-occupants{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.zone-occupants.zone-occ-empty{color:var(--color-text-3);font-size:var(--text-sm)}.zone-occ-chip{border-radius:var(--radius-pill);font-size:var(--text-sm);background:var(--color-surface-3,#eef2f7);color:var(--color-text-2);padding:3px 9px}.zone-modal-actions{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-divider);display:flex}.zone-btn{padding:10px var(--space-5);border-radius:var(--radius-sm);font-weight:var(--weight-semibold);font-size:var(--text-md);cursor:pointer;min-height:var(--tap-target);touch-action:manipulation;border:none}.zone-btn-secondary{background:var(--color-surface-2);color:var(--color-text-2)}.zone-btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.zone-btn-primary:hover{background:var(--color-accent-hover)}.zone-popup{min-width:200px;font-family:inherit}.zone-popup-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;gap:10px;display:flex}.zone-badge{color:#fff;font-weight:var(--weight-bold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-radius:var(--radius-pill);align-items:center;gap:4px;padding:3px 9px;display:inline-flex}.zone-badge-icon{font-size:.95em;line-height:1;font-weight:var(--weight-bold)}.zone-popup-by{font-size:var(--text-sm);color:var(--color-text-3)}.zone-popup-note{font-size:var(--text-base);color:var(--color-text);margin-bottom:var(--space-2);white-space:pre-wrap;word-break:break-word}.zone-checklist-host:not(:empty){margin-bottom:var(--space-3)}.zone-sheet-atts{margin:var(--space-2) 0}.zone-att-edit-item{display:inline-block;position:relative}.zone-att-edit-item .zone-att-remove{background:var(--color-danger,#c0392b);color:#fff;cursor:pointer;border:none;border-radius:50%;width:20px;height:20px;padding:0;font-size:14px;line-height:20px;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 3px #0006}.map-tool-active .zone-code-label{pointer-events:none}.zone-popup-empty{color:var(--color-text-4);font-style:italic}.zone-popup-actions{gap:var(--space-2);border-top:1px solid var(--color-divider);padding-top:var(--space-2);justify-content:flex-end;display:flex}.zone-popup-actions button{padding:var(--space-2) 10px;border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;min-height:36px}.zone-popup-actions .zone-danger{border-color:color-mix(in srgb, var(--color-danger) 35%, transparent);color:var(--color-danger-fg)}.zone-popup-actions .zone-danger:hover{background:var(--color-danger-soft)}.zone-edit{flex-direction:column;display:flex}.zone-edit-label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-2);margin:var(--space-2) 0}.zone-sev-ic{font-weight:var(--weight-bold);margin-right:2px}.zone-sheet-input,.zone-sheet-note{box-sizing:border-box;width:100%;padding:var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:16px;line-height:var(--leading-normal);background:var(--color-surface);color:var(--color-text)}.zone-sheet-note{resize:vertical}.zone-sheet-input:focus,.zone-sheet-note:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.zone-badge.zone-badge-area{color:#fff;background:#6b7280}.zone-hover-tip{z-index:30;pointer-events:none;opacity:0;will-change:transform;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--radius-md,8px);background:var(--color-surface);max-width:260px;color:var(--color-text);font-size:var(--text-sm,13px);box-shadow:var(--shadow-md,0 2px 8px #00000040);padding:4px 10px;font-weight:600;position:absolute;top:0;left:0;overflow:hidden}.zone-sheet-actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.zone-sheet-actions .btn{flex:1}.zone-sheet-meta{margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-text-3)}.note-content-editable{cursor:pointer;border-radius:var(--radius-md,8px);transition:background-color var(--transition-fast), border-color var(--transition-fast);border:1px dashed var(--color-border-strong);background:var(--color-surface-2);padding:8px 10px}.note-content-editable:hover,.note-content-editable:focus-visible{background:var(--color-surface-2);border-color:var(--color-accent);outline:none}.note-edit-hint{font-size:var(--text-xs,12px);font-weight:var(--weight-semibold,600);color:var(--color-accent);letter-spacing:var(--tracking-snug);align-items:center;gap:5px;margin-top:8px;display:flex}.note-edit-hint svg{flex:none;width:13px;height:13px}html,body{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}#locapp-ui-root{z-index:1000;pointer-events:none;position:fixed;inset:0}#locapp-ui-root>*{pointer-events:auto}.map-rotation-control{z-index:998;contain:layout paint;isolation:isolate;align-items:center;gap:6px;display:flex;position:absolute;bottom:154px;left:10px}.map-rotation-toggle,.map-rotation-action{appearance:none;color:#111827;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff;border:1px solid #00000038;border-radius:4px;min-width:44px;height:44px;padding:0 10px;box-shadow:0 2px 10px #0000002e}.map-rotation-toggle{place-items:center;width:44px;display:grid}.map-rotation-toggle svg{width:20px;height:20px;transition:transform .16s}.map-rotation-control.unlocked .map-rotation-toggle{color:#fff;background:#111827}.map-rotation-panel{background:#fffffff5;border:1px solid #0000002e;border-radius:6px;align-items:center;gap:4px;padding:4px;display:none;box-shadow:0 2px 10px #0000002e}.map-rotation-control.unlocked .map-rotation-panel{display:flex}.map-rotation-action{min-width:52px;box-shadow:none;padding:0 10px;font:700 12px/1 Arial,Helvetica,sans-serif}.map-rotation-action:hover,.map-rotation-action:focus-visible,.map-rotation-action.active{background:#f3f4f6}.map-rotation-bearing{color:#374151;text-align:right;white-space:nowrap;min-width:54px;padding:0 6px;font:700 11px/34px Arial,Helvetica,sans-serif}.map-rotation-drawing{touch-action:none;cursor:crosshair!important}@media (width<=768px){.map-rotation-control{align-items:flex-end;bottom:154px;left:8px}.map-rotation-panel{flex-direction:column;align-items:stretch}.map-rotation-bearing{text-align:center;min-width:52px;line-height:24px}}#layer-control{isolation:isolate;contain:layout paint;-webkit-backdrop-filter:none;background:#fffffff5;border:1px solid #ffffff8c;border-radius:12px;width:300px;box-shadow:0 12px 34px #0000002e}#layer-control-header{z-index:2;background:0 0;border-bottom:1px solid #0000}#layer-control:not(.collapsed) #layer-control-header{border-bottom-color:#00000014}#layer-control-content{-webkit-overflow-scrolling:touch;z-index:1;opacity:1;background:0 0}#layer-control.collapsed #layer-control-content{pointer-events:none;display:none}@-moz-document url-prefix(){#layer-control-header,#layer-control-toggle,#layer-control-content{transition:border-color .18s,transform .18s,max-height .22s,opacity .16s,padding-top .22s,padding-bottom .22s}#layer-control.collapsed #layer-control-content{opacity:0;max-height:0;padding-top:0;padding-bottom:0;display:flex;overflow:hidden}}.leaflet-control-attribution{white-space:nowrap;text-overflow:ellipsis;max-width:60vw;font-size:10px;line-height:1.4;overflow:hidden}@media (width<=768px){.leaflet-control-attribution{max-width:56vw;font-size:9px}#layer-control{width:auto}}@media (width<=768px),(hover:none) and (pointer:coarse){#layer-control,.user-profile,.auth-modal-backdrop,.auth-modal-container,.auth-modal-header,.fab-backdrop,.note-modal-backdrop,.note-modal-container,.note-modal-close,.char-counter,.note-display-popup .leaflet-popup-content-wrapper,.notes-loading-indicator,.tutorial-backdrop,.fab-notes-flyout,.fab-notes-backdrop,.fab-notes-close,.note-history-modal-backdrop,#socket-status-indicator,#auth-required,#auth-required>div{-webkit-backdrop-filter:none!important}.auth-modal,.auth-modal-backdrop,.note-modal,.fab-backdrop,.fab-notes-backdrop{transition:opacity .3s,visibility .3s!important}.auth-modal-container,.note-modal-container{transition:transform .3s!important}.fab-notes-flyout{transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)!important}#socket-status-indicator{transition:background-color .3s,color .3s,opacity .3s!important}}html[data-theme=dark] .map-rotation-toggle,html[data-theme=dark] .map-rotation-action,html[data-theme=dark] .map-rotation-panel{background:var(--color-surface);border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}html[data-theme=dark] .map-rotation-action:hover,html[data-theme=dark] .map-rotation-action:focus-visible,html[data-theme=dark] .map-rotation-action.active{background:var(--color-surface-3)}html[data-theme=dark] .map-zoom-button:disabled{color:var(--color-text-4)}html[data-theme=dark] .map-rotation-toggle,html[data-theme=dark] .map-rotation-action{color:var(--color-text)}html[data-theme=dark] .map-rotation-control.unlocked .map-rotation-toggle{background:var(--color-accent);color:var(--color-on-accent)}html[data-theme=dark] .map-rotation-bearing{color:var(--color-text-2)}html[data-theme=dark] #layer-control{background:var(--color-surface-glass);border-color:var(--color-border);box-shadow:var(--shadow-lg)}html[data-theme=dark] #layer-control:not(.collapsed) #layer-control-header{border-bottom-color:var(--color-divider)}.settings-card-hint{margin:0 0 var(--space-3);color:var(--color-text-3);font-size:var(--text-sm);line-height:var(--leading-normal)}.theme-segmented{gap:var(--space-2);grid-template-columns:repeat(3,1fr);display:grid}.theme-seg-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-2);background:var(--color-surface-2);color:var(--color-text-2);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);flex-direction:column;display:flex}.theme-seg-btn:hover{border-color:var(--color-border-strong);color:var(--color-text)}.theme-seg-btn svg{opacity:.9}.theme-seg-btn.is-active{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent);box-shadow:var(--shadow-focus)}.settings-checkbox-row{cursor:pointer;align-items:flex-start;gap:10px;margin-top:12px;display:flex}.settings-checkbox-row[hidden]{display:none}.settings-checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;flex:none;margin:2px 0 0}.settings-checkbox-text{color:var(--color-text);flex-direction:column;gap:2px;font-size:.92rem;line-height:1.3;display:flex}.settings-checkbox-text small{color:var(--color-text-muted);font-size:.78rem}.weather-radar-bar{left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:1000;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-pill);max-width:calc(100vw - 160px);box-shadow:var(--shadow-md);align-items:center;gap:8px;padding:6px 10px;display:flex;position:fixed;transform:translate(-50%)}.weather-radar-bar[hidden]{display:none}.weather-radar-bar button{appearance:none;cursor:pointer;color:var(--color-text-2);background:0 0;border:none;border-radius:8px;min-width:30px;min-height:30px;padding:6px;font-size:14px;line-height:1}.weather-radar-bar button:hover{background:var(--color-surface-hover,#0000000f)}.weather-radar-bar .wx-scrub{width:130px}.weather-radar-bar .wx-time{color:var(--color-text-2);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center;min-width:64px;font-size:12px;font-weight:600}@media (width<=480px){.weather-radar-bar{max-width:calc(100vw - 24px)}.weather-radar-bar .wx-scrub{width:90px}}.maplibregl-ctrl-bottom-right{bottom:max(4px, env(safe-area-inset-bottom))}.maplibregl-ctrl-bottom-left{bottom:calc(14px + env(safe-area-inset-bottom,0px));left:calc(8px + env(safe-area-inset-left,0px))}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{box-shadow:none;margin:0 0 0 2px}.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib.maplibregl-compact{box-sizing:border-box;max-width:90vw;box-shadow:none;font-size:9px}.maplibregl-ctrl-attrib .maplibregl-ctrl-attrib-inner{white-space:nowrap}@media (width<=640px){.fab-container{right:max(14px, env(safe-area-inset-right));bottom:max(14px, env(safe-area-inset-bottom));gap:8px}.fab-main{width:58px;height:58px}.fab-locate{width:42px!important;height:42px!important}.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib.maplibregl-compact{max-width:92vw;font-size:8px}}
