: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)}.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}.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{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-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-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.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-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}.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}.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;transition:all .2s!important}.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);color:var(--color-text)!important}.note-popup-header{padding:var(--space-4);border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;display:flex;background:var(--color-surface-2)!important;color:var(--color-text)!important}.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);position:relative}.note-content-display{word-wrap:break-word;white-space:pre-wrap;margin-bottom:var(--space-3)}.note-content-editor{transition:all var(--transition-slow)}.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}.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-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);resize:vertical;min-height:70px;font-family:inherit}.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-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-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);resize:vertical;background:var(--color-surface);color:var(--color-text)}.zone-sheet-note:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.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-zoom-control{z-index:998;contain:layout paint;isolation:isolate;background:#fff;border:1px solid #00000038;border-radius:4px;flex-direction:column;display:flex;position:absolute;bottom:100px;left:10px;overflow:hidden;box-shadow:0 2px 10px #0000002e}.map-zoom-button{appearance:none;color:#111827;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#fff;border:0;border-bottom:1px solid #0000002e;justify-content:center;align-items:center;width:44px;height:44px;font:700 22px/1 Arial,Helvetica,sans-serif;display:flex}.map-zoom-button:last-child{border-bottom:0}.map-center-button svg{width:20px;height:20px;display:block}.map-zoom-button:hover:not(:disabled),.map-zoom-button:focus-visible{background:#f3f4f6}.map-zoom-button:disabled{color:#9ca3af;cursor:default}.map-rotation-control{z-index:998;contain:layout paint;isolation:isolate;align-items:center;gap:6px;display:flex;position:absolute;bottom:250px;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-zoom-control{bottom:120px;left:8px}.map-rotation-control{align-items:flex-end;bottom:272px;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-zoom-control,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-zoom-button{background:var(--color-surface);color:var(--color-text);border-bottom-color:var(--color-border)}html[data-theme=dark] .map-zoom-button:hover:not(:disabled),html[data-theme=dark] .map-zoom-button:focus-visible,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(68px + 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 10px}.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}}:where(.app-spinner){border:2px solid var(--color-border,#00000026);border-top-color:var(--color-accent,#2196f3);vertical-align:-.2em;border-radius:50%;width:1.25em;height:1.25em;animation:.7s linear infinite ux-spin;display:inline-block}:where(.app-skeleton){background:var(--color-skeleton,#00000012);border-radius:var(--radius-1,6px);position:relative;overflow:hidden}:where(.app-skeleton):after{content:"";background:linear-gradient(90deg, transparent, var(--color-skeleton-shine,#ffffff73), transparent);animation:1.3s infinite ux-shimmer;position:absolute;inset:0;transform:translate(-100%)}:where(.app-toast){left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-5,24px));z-index:11000;max-width:min(90vw,420px);padding:var(--space-3,12px) var(--space-4,16px);background:var(--color-surface-inverse,#14161cf2);color:var(--color-on-inverse,#fff);border-radius:var(--radius-2,10px);box-shadow:var(--shadow-2,0 6px 24px #00000040);font-size:var(--font-size-sm,14px);opacity:0;align-items:center;gap:var(--space-3,12px);pointer-events:none;line-height:1.4;transition:opacity .25s,transform .25s;display:flex;position:fixed;transform:translate(-50%)translateY(12px)}:where(.app-toast.show){opacity:1;transform:translate(-50%)translateY(0)}:where(.app-toast .app-toast-action){pointer-events:auto;color:var(--color-accent-on-inverse,#7fc4ff);font-weight:600;font-size:var(--font-size-sm,14px);cursor:pointer;border-radius:var(--radius-1,6px);background:0 0;border:0;margin-left:auto;padding:4px 6px}:where(.app-toast.error){background:var(--color-danger,#c0392b)}:where(.app-toast.success){background:var(--color-success,#2e7d32)}@keyframes ux-spin{to{transform:rotate(360deg)}}@keyframes ux-shimmer{to{transform:translate(100%)}}@media (width<=640px){.ux-sheet{border-radius:var(--radius-3,16px) var(--radius-3,16px) 0 0;max-height:92dvh;padding-bottom:calc(env(safe-area-inset-bottom,0px) + var(--space-4,16px));-webkit-overflow-scrolling:touch;animation:.28s cubic-bezier(.16,1,.3,1) ux-sheet-up;overflow-y:auto;width:100%!important;max-width:100%!important;position:fixed!important;inset:auto 0 0!important;transform:none!important}.ux-sheet:before{content:"";background:var(--color-border,#0003);border-radius:999px;width:40px;height:4px;margin:8px auto 4px;display:block}.note-modal{align-items:flex-start!important}.note-modal .note-modal-container.ux-sheet{max-height:88dvh;width:90%!important;max-width:500px!important;margin:calc(env(safe-area-inset-top,0px) + var(--space-3,12px)) auto auto!important;border-radius:var(--radius-xl)!important;padding-bottom:0!important;animation:none!important;position:relative!important;inset:auto!important;overflow:hidden auto!important}.note-modal .note-modal-container.ux-sheet:before{display:none!important}.note-modal .note-modal-content{max-height:none!important;overflow:visible!important}.auth-modal{align-items:flex-start!important}.auth-modal .auth-modal-container.ux-sheet{max-height:85dvh;width:calc(100% - 24px)!important;max-width:500px!important;margin:calc(env(safe-area-inset-top,0px) + 12px) auto auto!important;border-radius:var(--radius-xl)!important;padding-bottom:0!important;animation:none!important;position:relative!important;inset:auto!important;overflow:hidden auto!important}.auth-modal .auth-modal-container.ux-sheet:before{display:none!important}.auth-modal .auth-modal-content{max-height:none!important;overflow:visible!important}}@keyframes ux-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.fab-notes-flyout{background:var(--color-surface,#fff);width:min(440px,92vw);max-height:80vh;color:var(--color-text,#1b1d22);border-radius:var(--radius-3,16px);box-shadow:var(--shadow-3,0 18px 60px #00000052);flex-direction:column;display:flex;overflow:hidden}.fab-notes-header{justify-content:space-between;align-items:center;gap:var(--space-3,12px);padding:var(--space-4,16px) var(--space-4,16px) var(--space-3,12px);border-bottom:1px solid var(--color-border,#00000014);display:flex}.fab-notes-header h3{font-size:var(--font-size-lg,17px);margin:0;font-weight:600}.fab-notes-count-badge{font-size:var(--font-size-sm,13px);color:var(--color-text-muted,#6b7280);font-weight:500}.fab-notes-close{border-radius:var(--radius-2,10px);cursor:pointer;width:40px;height:40px;color:var(--color-text-muted,#6b7280);background:0 0;border:0;font-size:26px;line-height:1}.fab-notes-close:hover{background:var(--color-hover,#0000000f)}.fab-notes-list{-webkit-overflow-scrolling:touch;padding:var(--space-2,8px) 0;flex:auto;position:relative;overflow-y:auto}.fab-notes-state{align-items:center;gap:var(--space-3,12px);text-align:center;padding:var(--space-6,32px) var(--space-4,16px);color:var(--color-text-muted,#6b7280);flex-direction:column;display:flex}.fab-notes-state svg{opacity:.6;width:40px;height:40px}.fab-notes-state .fab-notes-state-title{color:var(--color-text,#1b1d22);font-weight:600}.fab-notes-retry{margin-top:var(--space-2,8px);padding:var(--space-2,8px) var(--space-4,16px);border-radius:var(--radius-2,10px);background:var(--color-accent,#2196f3);color:var(--color-on-accent,#fff);cursor:pointer;border:0;min-height:44px;font-weight:600}.fab-note-skeleton{align-items:center;gap:var(--space-3,12px);padding:var(--space-3,12px) var(--space-4,16px);display:flex}.fab-note-skeleton .sk-avatar{border-radius:50%;flex:none;width:40px;height:40px}.fab-note-skeleton .sk-lines{flex-direction:column;flex:auto;gap:6px;display:flex}.fab-note-skeleton .sk-line{border-radius:4px;height:10px}.fab-note-skeleton .sk-line.short{width:40%}.fab-note-item{min-height:56px}.fab-notes-list-footer{text-align:center;padding:var(--space-3,12px);color:var(--color-text-muted,#6b7280);font-size:var(--font-size-sm,13px)}.note-modal .note-button.primary[disabled]{opacity:.7;cursor:progress}.note-modal .button-spinner:not(.hidden){margin-right:var(--space-2,8px)}.note-modal textarea.ux-invalid,.note-modal input.ux-invalid{box-shadow:0 0 0 2px var(--color-danger-soft,#f443362e);border-color:var(--color-danger,#f44336)!important}.note-modal .form-error{color:var(--color-danger,#f44336);font-size:var(--font-size-sm,13px);min-height:1.1em}.note-modal .char-counter.near-limit{color:var(--color-warning,#ff9800)}.note-modal .char-counter.at-limit{color:var(--color-danger,#f44336)}@media (width<=640px){.note-modal .note-button{flex:1 1 0;min-height:48px}.note-modal .form-actions{gap:var(--space-3,12px)}}.ux-offline-banner{left:50%;top:calc(env(safe-area-inset-top,0px) + var(--space-3,12px));z-index:11000;align-items:center;gap:var(--space-2,8px);padding:var(--space-2,8px) var(--space-4,16px);background:var(--color-warning,#9a6700);color:var(--color-on-warning,#fff);box-shadow:var(--shadow-2,0 6px 24px #00000040);font-size:var(--font-size-sm,13px);border-radius:999px;font-weight:600;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;transform:translate(-50%)translateY(-120%)}.ux-offline-banner.show{transform:translate(-50%)translateY(0)}.ux-offline-banner.online{background:var(--color-success,#2e7d32)}.ux-offline-banner .ux-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.ux-download-progress{gap:var(--space-2,8px);flex-direction:column;display:flex}.ux-progress-track{background:var(--color-track,#0000001a);border-radius:999px;height:8px;overflow:hidden}.ux-progress-bar{border-radius:inherit;background:var(--color-accent,#2196f3);width:0%;height:100%;transition:width .2s}.ux-progress-meta{font-size:var(--font-size-sm,12px);color:var(--color-text-muted,#6b7280);justify-content:space-between;display:flex}.auth-modal .form-group input.ux-invalid{box-shadow:0 0 0 2px var(--color-danger-soft,#f443362e);border-color:var(--color-danger,#f44336)!important}.auth-modal .form-group input.ux-valid{border-color:var(--color-success,#2e7d32)}.auth-modal .form-error{color:var(--color-danger,#f44336);font-size:var(--font-size-sm,13px);min-height:1.05em;display:block}.auth-modal button[type=submit][disabled]{opacity:.75;cursor:progress}#loc-privacy{font-family:var(--font-family,system-ui), sans-serif}#loc-privacy label{min-height:36px}#loc-privacy .loc-share-status.on{color:var(--color-success,#2e7d32);font-weight:600}#loc-privacy .loc-share-status.off{color:var(--color-text-muted,#888)}@media (prefers-reduced-motion:reduce){:where(.app-spinner),:where(.app-skeleton):after,.ux-sheet,.ux-offline-banner,.ux-progress-bar,:where(.app-toast){transition:none!important;animation:none!important}}.att-field{gap:var(--space-2);flex-direction:column;display:flex}.att-picker-btn{width:var(--tap-target);height:var(--tap-target);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-2);cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);align-self:flex-start;place-items:center;padding:0;display:inline-grid}.att-picker-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface-3)}.att-picker-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-picker-btn:disabled{opacity:.55;cursor:not-allowed}.att-picker-btn--pill{width:auto;height:auto;color:var(--color-text-muted,#64748b);font:inherit;background:0 0;border-style:dashed;border-radius:999px;gap:8px;padding:8px 16px;font-size:14px;display:inline-flex}.att-picker-btn--pill svg{width:16px;height:16px}.att-picker-btn--pill:hover:not(:disabled){color:var(--color-primary,#2563eb);border-color:var(--color-primary,#2563eb);background:0 0}.att-picker-label{white-space:nowrap}.att-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.att-chips:empty{display:none}.att-chip{border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-3);width:72px;height:72px;box-shadow:var(--shadow-xs);position:relative;overflow:hidden}.att-chip-img{object-fit:cover;width:100%;height:100%;display:block}.att-chip-remove{border-radius:var(--radius-round);background:var(--color-overlay);color:#fff;width:20px;height:20px;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast);border:none;place-items:center;line-height:1;display:grid;position:absolute;top:2px;right:2px}.att-chip-remove:hover{background:var(--color-danger)}.att-chip-remove:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-quota{font-size:var(--text-sm);color:var(--color-text-3)}.att-quota[hidden]{display:none}.att-grid{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.att-thumb{object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-3);cursor:zoom-in;width:96px;max-width:100%;height:96px;transition:transform var(--transition-fast), box-shadow var(--transition-fast)}.att-thumb:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.att-chip-doc{background:var(--color-surface-2);align-items:center;gap:8px;width:auto;max-width:220px;height:auto;padding:8px 30px 8px 10px;display:flex;overflow:visible}.att-doc-ic{color:var(--color-accent);flex:none;place-items:center;display:grid}.att-doc-meta{flex-direction:column;min-width:0;display:flex}.att-doc-name{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:150px;overflow:hidden}.att-doc-size{font-size:var(--text-xs);color:var(--color-text-3)}.att-doc-remove{background:var(--color-surface-3);color:var(--color-text-2)}.att-doc-remove:hover{background:var(--color-danger);color:#fff}.att-doc-att{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);max-width:320px;color:var(--color-text);transition:background var(--transition-fast), border-color var(--transition-fast);flex:100%;align-items:center;gap:10px;padding:10px 12px;text-decoration:none;display:flex}.att-doc-att:hover{background:var(--color-surface-3);border-color:var(--color-accent)}.att-doc-att-ic{color:var(--color-accent);flex:none;place-items:center;display:grid}.att-doc-att-meta{flex-direction:column;min-width:0;display:flex}.att-doc-att-name{font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.att-doc-att-size{font-size:var(--text-xs);color:var(--color-text-3)}.att-lightbox{z-index:11000;padding:var(--space-5);touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;cursor:zoom-out;background:#000000db;place-items:center;display:grid;position:fixed;inset:0}.att-lightbox-img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:100%;box-shadow:var(--shadow-xl);transform-origin:50%;will-change:transform;touch-action:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;cursor:zoom-in}.att-lightbox.is-zoomed,.att-lightbox.is-zoomed .att-lightbox-img{cursor:grab}.att-lightbox-img.is-animating{transition:transform var(--transition-base)}@media (prefers-reduced-motion:reduce){.att-lightbox-img.is-animating{transition:none}}.att-lightbox-close{top:calc(var(--space-4) + env(safe-area-inset-top,0px));right:var(--space-4);width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-round);background:var(--color-surface-glass);color:var(--color-text);font-size:var(--text-2xl);cursor:pointer;box-shadow:var(--shadow-md);transition:background var(--transition-fast);border:none;place-items:center;line-height:1;display:grid;position:absolute}.att-lightbox-close:hover{background:var(--color-surface-2)}.att-lightbox-close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-lightbox-download{top:calc(var(--space-4) + env(safe-area-inset-top,0px));right:calc(var(--space-4) + var(--tap-target) + var(--space-2));width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-round);background:var(--color-surface-glass);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-md);transition:background var(--transition-fast), color var(--transition-fast);place-items:center;text-decoration:none;display:grid;position:absolute}.att-lightbox-download:hover{background:var(--color-surface-2)}.att-lightbox-download:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-lightbox-nav{width:var(--tap-target);height:var(--tap-target);border-radius:var(--radius-round);-webkit-backdrop-filter:blur(8px)saturate(1.2);backdrop-filter:blur(8px)saturate(1.2);color:#ffffffc7;cursor:pointer;opacity:.55;box-shadow:none;transition:opacity var(--transition-fast), background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);z-index:1;background:#14141652;border:1px solid #ffffff1f;place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.att-lightbox-prev{left:var(--space-4)}.att-lightbox-next{right:var(--space-4)}.att-lightbox-nav:hover{opacity:1;color:#fff;background:#14141680}.att-lightbox-nav:active{transform:translateY(-50%)scale(.94)}.att-lightbox-nav:focus-visible{opacity:1;box-shadow:var(--shadow-focus);outline:none}@media (hover:none){.att-lightbox-nav{opacity:.7}}.att-lightbox-counter{bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));padding:var(--space-1) var(--space-3);border-radius:var(--radius-round);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#ffffffb3;font-size:var(--text-xs);letter-spacing:.02em;pointer-events:none;background:#14141652;border:1px solid #ffffff1a;line-height:1.4;position:absolute;left:50%;transform:translate(-50%)}.att-source-overlay{z-index:11050;padding:var(--space-4);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.att-source-card{width:min(420px,100%);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-lg)}.att-source-title{margin:0 0 var(--space-3);font-size:var(--font-size-lg,1.125rem);color:var(--color-text);text-align:center}.att-source-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.att-source-opt{appearance:none;justify-content:center;align-items:center;gap:var(--space-2);min-height:104px;padding:var(--space-4) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font:inherit;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);flex-direction:column;font-weight:600;display:flex}.att-source-opt:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-surface-3)}.att-source-opt:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-source-ic{place-items:center;display:inline-grid}.att-source-cancel{appearance:none;width:100%;margin-top:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-2);font:inherit;cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;display:block}.att-source-cancel:hover{background:var(--color-surface-2);color:var(--color-text)}.att-source-cancel:focus-visible{box-shadow:var(--shadow-focus);outline:none}.att-doc-viewer{z-index:4000;background:var(--color-surface,#14171c);flex-direction:column;display:flex;position:fixed;inset:0}.att-doc-viewer-bar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);padding-top:max(var(--space-2), env(safe-area-inset-top));background:var(--color-surface-2,#1b1f26);border-bottom:1px solid var(--color-border,#2c333d);flex:none;display:flex}.att-doc-viewer-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--color-text,#e8eaed);flex:auto;font-weight:600;overflow:hidden}.att-doc-viewer-close{appearance:none;border-radius:var(--radius-md,8px);width:36px;height:36px;color:var(--color-text-2,#aab2bd);cursor:pointer;background:0 0;border:none;flex:none;font-size:24px;line-height:1}.att-doc-viewer-close:hover{background:var(--color-surface,#14171c);color:var(--color-text,#e8eaed)}.att-doc-viewer-zoom{background:var(--color-surface,#14171c);border:1px solid var(--color-border,#2c333d);border-radius:var(--radius-md,8px);flex:none;align-items:center;gap:2px;padding:2px;display:flex}.att-doc-viewer-zbtn,.att-doc-viewer-zpct{appearance:none;color:var(--color-text-2,#aab2bd);cursor:pointer;border-radius:var(--radius-sm,6px);background:0 0;border:none;line-height:1}.att-doc-viewer-zbtn{width:30px;height:30px;font-size:20px}.att-doc-viewer-zpct{min-width:50px;height:30px;font-size:var(--text-xs,12px);font-variant-numeric:tabular-nums}.att-doc-viewer-zbtn:hover,.att-doc-viewer-zpct:hover{background:var(--color-surface-2,#1b1f26);color:var(--color-text,#e8eaed)}.att-doc-viewer-body{-webkit-overflow-scrolling:touch;padding:var(--space-3);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));touch-action:pan-x pan-y;background:#525659;flex-direction:column;flex:auto;display:flex;overflow:auto}.att-doc-pages{align-items:center;gap:var(--space-3);box-sizing:border-box;flex-direction:column;width:max-content;min-width:100%;margin:auto;display:flex}.att-pdf-page{background:#fff;height:auto;display:block;box-shadow:0 2px 10px #00000080}.att-doc-text{padding:var(--space-3);border-radius:var(--radius-md,8px);background:var(--color-surface,#14171c);color:var(--color-text,#e8eaed);white-space:pre-wrap;word-break:break-word;align-self:stretch;margin:0;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.att-doc-viewer-spin{border:3px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:38px;height:38px;margin:48px auto;animation:.8s linear infinite att-doc-spin}@keyframes att-doc-spin{to{transform:rotate(360deg)}}.att-doc-viewer-err{align-items:center;gap:var(--space-2);color:#fff;text-align:center;flex-direction:column;margin:48px auto;display:flex}.att-doc-viewer-dllink{color:#8ab4f8}.app-sheet{z-index:1400;background:var(--color-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-xl);border:1px solid var(--color-border-soft);visibility:hidden;height:auto;max-height:92dvh;transition:height var(--transition-slow), transform var(--transition-slow), visibility 0s linear var(--transition-slow);padding-bottom:env(safe-area-inset-bottom,0px);overscroll-behavior:contain;border-bottom:none;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateY(110%)}.app-sheet.is-open{visibility:visible;transition:height var(--transition-slow), transform var(--transition-slow), visibility 0s;transform:translateY(0)}@media (width<=979.98px){.app-sheet:focus-within{bottom:var(--app-kb,0px)}}.app-sheet.is-dragging{transition:none}html.kb-animating .app-sheet{transition:none!important}.app-sheet.snap-peek{height:88px}.app-sheet.snap-half{height:auto;max-height:min(70dvh,600px)}.app-sheet.snap-full{height:auto;max-height:92dvh}html.kb-open .app-sheet{max-height:calc(100dvh - var(--app-kb,0px) - 12px)}.app-sheet-grip{cursor:grab;touch-action:none;flex:none;justify-content:center;align-items:center;height:22px;display:flex}.app-sheet-grip:before{content:"";border-radius:var(--radius-pill);background:var(--color-border-strong);width:40px;height:4px}.app-sheet-grip:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-sheet.is-dragging .app-sheet-grip{cursor:grabbing}.app-sheet-bar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-4) var(--space-2);flex:none;min-height:32px;display:flex}.app-sheet-title{font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--color-text);letter-spacing:var(--tracking-snug);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.app-sheet-close{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:36px;height:36px;color:var(--color-text-3);cursor:pointer;transition:background-color var(--transition-base), color var(--transition-base);flex:none;justify-content:center;align-items:center;display:inline-flex}.app-sheet-close:hover{background:var(--color-surface-2);color:var(--color-text)}.app-sheet-body{-webkit-overflow-scrolling:touch;padding:var(--space-2) var(--space-4) var(--space-4);touch-action:pan-y;scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent;flex:auto;overflow-y:auto}.app-sheet.snap-peek .app-sheet-body{opacity:0;overflow:hidden}.app-sheet-backdrop{z-index:1399;opacity:0;visibility:hidden;transition:opacity var(--transition-base), visibility 0s linear var(--transition-base);background:#0000006b;display:none;position:fixed;inset:0}@media (width>=980px){.app-sheet{width:min(440px, calc(100vw - 2 * var(--space-6)));border-radius:var(--radius-xl);border:1px solid var(--color-border-soft);opacity:0;transition:opacity var(--transition-base), transform var(--transition-base), visibility 0s linear var(--transition-base);inset:50% auto auto 50%;transform:translate(-50%,-50%)scale(.96)}.app-sheet.is-open{opacity:1;transition:opacity var(--transition-base), transform var(--transition-base), visibility 0s;transform:translate(-50%,-50%)scale(1)}.app-sheet.snap-peek,.app-sheet.snap-half{height:auto;max-height:min(80vh,640px)}.app-sheet.snap-full{height:auto;max-height:88vh}.app-sheet.snap-peek .app-sheet-body{opacity:1;overflow-y:auto}.app-sheet-grip{display:none}.app-sheet[data-sheet-id=status]{width:min(640px, calc(100vw - 2 * var(--space-6)))}.app-sheet[data-sheet-id=status].snap-peek,.app-sheet[data-sheet-id=status].snap-half,.app-sheet[data-sheet-id=status].snap-full{max-height:min(88vh,820px)}.app-sheet-backdrop{display:block}.app-sheet-backdrop.is-open{opacity:1;visibility:visible;transition:opacity var(--transition-base), visibility 0s}}@media (prefers-reduced-motion:reduce){.app-sheet{transition:visibility}}.note-cluster{background:0 0;position:absolute;top:0;left:0}.maplibregl-marker.note-display-marker,.note-display-marker{will-change:auto;line-height:0;animation:none;position:absolute;top:0;left:0;width:max-content!important;height:max-content!important;transition:none!important;display:inline-block!important}.note-display-marker .note-marker-icon{box-sizing:border-box}.note-cluster .note-cluster-inner{color:#fff;background:var(--color-accent,#2196f3);border:2px solid #ffffffe6;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:13px;font-weight:700;line-height:1;transition:transform .15s;display:flex;box-shadow:0 3px 10px #00000059}.note-cluster-small .note-cluster-inner{background:var(--cluster-color-small,#4f97f3)}.note-cluster-medium .note-cluster-inner{background:var(--cluster-color-medium,#175fc6);font-size:14px}.note-cluster-large .note-cluster-inner{background:var(--cluster-color-large,#143f7e);font-size:15px}.note-display-marker--selected{z-index:30}.note-display-marker--selected .note-marker-icon{animation:1.45s ease-out infinite note-marker-selected-pulse;box-shadow:0 0 0 4px #facc15f5,0 0 0 11px #facc1557,0 0 30px #facc15e6,0 4px 12px #00000052!important}.note-display-marker-spotlight{display:none}@keyframes note-marker-selected-pulse{0%{box-shadow:0 0 0 4px #facc15f5,0 0 0 9px #facc156b,0 0 24px #facc15d1,0 4px 12px #00000052}70%{box-shadow:0 0 0 4px #facc15f5,0 0 0 18px #facc1500,0 0 34px #facc15e6,0 4px 12px #00000052}to{box-shadow:0 0 0 4px #facc15f5,0 0 0 18px #facc1500,0 0 24px #facc15d1,0 4px 12px #00000052}}@media (prefers-reduced-motion:reduce){.note-display-marker--selected .note-marker-icon{animation:none}}@media (hover:hover){.note-cluster:hover .note-cluster-inner{transform:scale(1.08)}.note-marker-icon:hover{transform:scale(1.1)}}.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .25s ease-out,opacity .25s ease-in}.task-attach-row{flex-wrap:wrap;align-items:center;gap:10px;margin:6px 0 2px;display:flex}.task-attach-row .task-attach-add{flex:none}.task-attach-row .task-checklist-host{flex:0 auto;min-width:0}.task-attach-row .task-checklist-host:empty{display:none}.task-attach-row .task-checklist-host:has(.task-checklist-row){flex:100%}.task-chat{flex:none;min-width:0;margin-left:auto}.tc-root{flex-direction:column;display:flex}.tc-entry-btn{border-radius:var(--radius-round,50%);background:var(--color-accent,#2f6df6);width:44px;height:44px;color:var(--color-on-accent,#fff);cursor:pointer;box-shadow:var(--shadow-md,0 2px 8px #00000040);transition:transform var(--transition-fast,.15s), background var(--transition-fast,.15s);border:none;place-items:center;display:grid;position:relative}.tc-entry-btn:hover{background:var(--color-accent-hover,var(--color-accent,#2f6df6));transform:translateY(-1px)}.tc-entry-btn:active{transform:translateY(0)}.tc-entry-icon{display:inline-flex}.tc-entry-count{box-sizing:border-box;background:var(--color-danger,#ff5c5c);color:#fff;border:2px solid var(--color-surface,#15161a);border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-4px;right:-4px}.tc-entry-count[hidden]{display:none}.tc-entry-btn.has-msgs:after{content:"";background:var(--color-text-muted,#94a3b8);border:2px solid var(--color-surface,#15161a);border-radius:50%;width:9px;height:9px;position:absolute;top:-2px;right:-2px}.tc-scroller{-webkit-overflow-scrolling:touch;flex-direction:column;gap:6px;padding:2px 2px 4px;display:flex;overflow-y:auto}.tc-modal-backdrop{z-index:4000;zoom:calc(1 / var(--ui-scale,1));background:#0000008c;position:fixed;inset:0}.tc-modal{--tc-top-gap:calc(env(safe-area-inset-top,0px) + 10px);left:0;right:0;top:var(--tc-top-gap);height:calc(100dvh - var(--tc-top-gap));background:var(--color-bg,#15161a);border-radius:16px 16px 0 0;flex-direction:column;width:100%;display:flex;position:fixed;overflow:hidden;box-shadow:0 -6px 30px #0006}@media (width>=700px){.tc-modal{border-radius:16px;width:100%;max-width:640px;height:80vh;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 12px 40px #00000073}}.tc-modal-head{border-bottom:1px solid var(--color-border,#ffffff1a);flex:none;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.tc-modal-title{color:var(--color-text,#fff);font-size:1rem;font-weight:700}.tc-modal-close{color:var(--color-text-2,#475569);cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:1.6rem;line-height:1}.tc-modal-scroller{flex:auto;min-height:0;padding:10px 14px}.tc-modal .tc-composer-wrap{padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border,#ffffff1a);flex:none}.tc-empty{color:var(--color-text-3,#64748b);text-align:center;padding:18px 8px;font-size:.86rem}.tc-msg{justify-content:flex-start;display:flex}.tc-msg.is-mine{justify-content:flex-end}.tc-msg-wrap{flex-direction:column;gap:2px;max-width:82%;display:flex}.tc-msg.is-mine .tc-msg-wrap{align-items:flex-end}.tc-msg-meta{font-size:var(--text-xs);color:var(--color-text-3,#64748b);align-items:baseline;gap:6px;padding:0 4px;display:flex}.tc-msg-author{font-weight:600;font-size:var(--text-sm);color:var(--color-text-2,#475569)}.tc-msg-bubble{background:var(--color-surface-2,#ffffff14);color:var(--color-text,#fff);font-size:var(--text-base);white-space:pre-wrap;word-break:break-word;border-radius:12px;padding:7px 11px;line-height:1.4}.tc-msg.is-mine .tc-msg-bubble{background:var(--color-accent,#2f6df6);color:#fff}.tc-msg-bubble.is-deleted{opacity:.6;border:1px dashed var(--color-border,#fff3);background:0 0;font-style:italic}.tc-att-grid{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.tc-att-grid .att-thumb{object-fit:cover;cursor:pointer;border-radius:10px;width:120px;height:120px}.tc-msg-status{color:var(--color-text-3,#64748b);padding:0 4px;font-size:.68rem}.tc-msg-status.is-failed{color:var(--color-danger,#ff5c5c)}.tc-error{color:var(--color-danger,#ff5c5c);padding:4px 6px;font-size:.78rem}.tc-composer-wrap{flex-direction:column;gap:6px;display:flex}.tc-att-field{margin:0}.tc-att-field .att-picker-btn,.tc-att-field .att-chips:empty{display:none}.tc-composer{align-items:flex-end;gap:6px;display:flex}.tc-attach-btn,.tc-send{cursor:pointer;background:var(--color-surface-2,#ffffff14);width:38px;height:38px;color:var(--color-text-2,#475569);border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.tc-attach-btn{border:1px solid var(--color-border,#ffffff26)}.tc-send{background:var(--color-accent,#2f6df6);color:#fff}.tc-attach-btn:disabled,.tc-send:disabled{opacity:.5;cursor:default}.tc-input{resize:none;border:1px solid var(--color-border,#ffffff26);background:var(--color-surface,#ffffff0d);color:var(--color-text,#fff);font-size:var(--text-base);border-radius:18px;flex:auto;max-height:120px;padding:9px 13px;font-family:inherit;line-height:1.3}.tc-input:focus{border-color:var(--color-accent,#2f6df6);outline:none}.maplibregl-marker.task-display-marker,.task-display-marker{will-change:auto;line-height:0;animation:none;position:absolute;top:0;left:0;width:max-content!important;height:max-content!important;transition:none!important;display:inline-block!important}.task-display-marker--selected{z-index:30}.task-marker{box-sizing:border-box;color:#fff;cursor:pointer;appearance:none;background:#2563eb;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;margin:0;padding:0;font:800 16px/1 system-ui,sans-serif;display:inline-flex;position:relative;box-shadow:0 4px 12px #0f172a61}.task-marker--critical{background:#dc2626}.task-marker--high{background:#ea580c}.task-marker--medium{background:#2563eb}.task-marker--low{background:#0f766e}.task-marker--pending{outline:3px solid #facc15bf}.task-display-marker.task-display-marker--clustered{display:none!important}.task-cluster{box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex;position:absolute;top:0;left:0;box-shadow:0 4px 12px #0f172a6b}.task-cluster--medium{width:46px;height:46px}.task-cluster--large{width:52px;height:52px}.task-cluster-inner{background:var(--color-surface,#1f2937);width:64%;height:64%;color:var(--color-text,#fff);border-radius:999px;justify-content:center;align-items:center;font:800 14px/1 system-ui,sans-serif;animation:.18s ease-out task-cluster-pop;display:inline-flex;box-shadow:inset 0 0 0 2px #ffffff1f}.task-cluster--large .task-cluster-inner{font-size:16px}@keyframes task-cluster-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.task-marker--selected{z-index:30;border-color:#fff7ad;animation:1.45s ease-out infinite task-marker-selected-pulse;box-shadow:0 0 0 4px #facc15f2,0 0 0 11px #facc155c,0 0 26px #facc15e6,0 10px 26px #0f172a6b}.task-marker-spotlight{z-index:1399;pointer-events:none;cursor:default;transition:opacity .12s;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}@keyframes task-marker-selected-pulse{0%{box-shadow:0 0 0 4px #facc15f2,0 0 0 9px #facc156b,0 0 22px #facc15d1,0 10px 26px #0f172a6b}70%{box-shadow:0 0 0 4px #facc15f2,0 0 0 18px #facc1500,0 0 30px #facc15e0,0 10px 26px #0f172a6b}to{box-shadow:0 0 0 4px #facc15f2,0 0 0 18px #facc1500,0 0 22px #facc15d1,0 10px 26px #0f172a6b}}@media (prefers-reduced-motion:reduce){.task-marker--selected{animation:none}}.task-marker-status{background:#22c55e;border:2px solid #fff;border-radius:999px;width:11px;height:11px;position:absolute;bottom:-2px;right:-2px}.task-marker--status-open .task-marker-status{background:#60a5fa}.task-marker--status-in-progress .task-marker-status{background:#22c55e}.task-marker--status-blocked .task-marker-status{background:#f59e0b}.task-marker--status-resolved .task-marker-status{background:#94a3b8}.task-marker--unacked-critical{animation:1.4s ease-out infinite task-marker-unacked-pulse;box-shadow:0 0 #da1e28b3}@keyframes task-marker-unacked-pulse{0%{box-shadow:0 0 #da1e28b3}70%{box-shadow:0 0 0 14px #da1e2800}to{box-shadow:0 0 #da1e2800}}.task-marker--acked{outline:2px solid #22c55ed9}.task-marker--escalated .task-marker-status,.task-marker--acked .task-marker-status{color:#fff;justify-content:center;align-items:center;width:auto;min-width:11px;height:14px;padding:0 3px;font-size:9px;font-weight:800;line-height:12px;display:inline-flex}.task-marker--escalated .task-marker-status{background:#da1e28}.task-marker--acked .task-marker-status{background:#16a34a}@media (prefers-reduced-motion:reduce){.task-marker--unacked-critical{outline:3px solid #da1e28d9;animation:none}}.task-chip--sla{color:#075985;font-variant-numeric:tabular-nums;background:#e0f2fe}.task-chip--sla-overdue{color:#991b1b;font-variant-numeric:tabular-nums;background:#fee2e2;font-weight:800}.task-chip--acked{color:#166534;background:#dcfce7}.task-chip--escalated{color:#92400e;background:#fde68a;font-weight:800}.task-ack-btn{width:auto;margin:4px auto 2px;padding:8px 22px;font-size:13px;display:block}.task-unack-btn{width:auto;margin:4px auto 2px;display:block}.task-dispatch{margin-top:10px}.task-dispatch-head{margin-bottom:6px;font-size:13px;font-weight:700}.task-dispatch-list{flex-direction:column;gap:6px;display:flex}.task-dispatch-row{text-align:left;border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;display:flex}.task-dispatch-row:hover{background:var(--color-surface-hover,#f1f5f9)}.task-dispatch-name{font-weight:600}.task-dispatch-meta{color:var(--color-text-muted,#64748b);font-variant-numeric:tabular-nums;font-size:12px}.task-form,.task-search,.task-list{gap:12px;display:grid}.task-sheet{gap:10px;display:grid}.task-tabs{gap:8px;margin-bottom:12px;display:flex}.task-tab{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);color:var(--color-text-muted,#64748b);cursor:pointer;border-radius:8px;flex:1;padding:8px 12px;font-weight:600}.task-tab--active{background:var(--color-primary,#2563eb);border-color:var(--color-primary,#2563eb);color:#fff}.task-sortbar{align-items:center;gap:8px;margin-bottom:10px;display:flex}.task-sort-label{color:var(--color-text-muted,#64748b);font-size:12px;font-weight:600}.task-sort-select{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);color:var(--color-text,#1f2937);border-radius:8px;flex:1;padding:6px 10px;font-size:13px}.task-row-due{white-space:nowrap;color:var(--color-text-muted,#64748b);align-self:center;font-size:12px;font-weight:600}.task-row-due--overdue{color:var(--color-danger,#dc2626)}.task-row-due--upcoming{color:var(--color-primary,#2563eb)}.task-new-personal{width:100%;margin-bottom:10px}.pnote-list{flex-direction:column;gap:8px;display:flex}.pnote-row{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);border-radius:8px;align-items:stretch;gap:6px;display:flex}.pnote-open{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:4px;padding:10px;display:flex}.pnote-open:hover{background:var(--color-hover,#f8fafc)}.pnote-text{white-space:pre-wrap;word-break:break-word}.pnote-when{color:var(--color-text-muted,#64748b);font-size:12px}.pnote-del{border:0;border-left:1px solid var(--color-border,#e5e7eb);width:40px;color:var(--color-text-muted,#64748b);cursor:pointer;background:0 0;border-radius:0 8px 8px 0;flex:none;font-size:20px;line-height:1}.pnote-del:hover{color:var(--color-danger,#dc2626);background:var(--color-hover,#f8fafc)}.pnote-form{flex-direction:column;gap:12px;display:flex}.pnote-form textarea{width:100%}.task-display-marker--moving .task-marker{cursor:grab}.task-display-marker--moving .task-marker:active{cursor:grabbing}.task-placing .maplibregl-canvas{cursor:crosshair!important}.task-sheet-head,.task-actions,.task-status-actions,.task-form-grid{flex-wrap:wrap;gap:8px;display:flex}.task-title-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.task-title-row h3{margin:0;font-size:18px}.task-description{color:var(--color-text,#1f2937);white-space:pre-wrap}.task-muted,.task-empty,.task-location-line{color:var(--color-text-muted,#64748b);font-size:13px}.task-checklist-host:empty{display:none}.task-checklist-row{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);width:100%;min-height:40px;color:var(--color-text,#1f2937);font:inherit;cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:700;display:flex}.task-checklist-row-icon{color:var(--color-text-muted,#64748b);flex:none;display:inline-flex}.task-checklist-row-icon svg{width:15px;height:15px}.task-checklist-chevron{width:14px;height:14px;color:var(--color-text-muted,#64748b);flex:none}.task-checklist-label{flex:none}.task-checklist-bar{background:var(--color-surface-alt,#eef2f7);border-radius:999px;flex:auto;height:4px;overflow:hidden}.task-checklist-bar>span{background:var(--color-success,#16a34a);border-radius:999px;height:100%;transition:width .2s;display:block}.task-checklist-count{color:var(--color-text-muted,#64748b);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:700}.task-cl-overlay{z-index:12000;padding:24px 12px calc(24px + var(--app-kb,0px));box-sizing:border-box;background:#0f172a6b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.task-cl-modal{background:var(--color-surface,#fff);width:min(480px,100%);min-height:0;max-height:100%;color:var(--color-text,#111827);border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 22px 60px #0f172a59}.task-cl-head{border-bottom:1px solid var(--color-border,#e5e7eb);flex:none;align-items:center;gap:10px;padding:12px 14px;display:flex}.task-cl-head-text{flex:auto;min-width:0}.task-cl-title{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:700;overflow:hidden}.task-cl-progress{flex:none;align-items:center;gap:6px;width:90px;display:flex}.task-cl-close{flex:none}.task-cl-items{-webkit-overflow-scrolling:touch;flex:auto;min-height:48px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.task-cl-empty{color:var(--color-text-muted,#64748b);padding:14px 16px;font-size:13px}.task-cl-footer{border-top:1px solid var(--color-border,#e5e7eb);flex:none;align-items:center;gap:8px;padding:10px 12px;display:flex}.task-cl-input{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);min-width:0;color:var(--color-text,#1f2937);font:inherit;border-radius:8px;flex:auto;padding:8px 12px;font-size:14px}@media (width<=640px){.task-cl-overlay{--cl-top:calc(env(safe-area-inset-top,0px) + 96px);padding:var(--cl-top) 10px 10px;align-items:flex-start}.task-cl-modal{height:auto;max-height:min(52vh, calc(100dvh - var(--cl-top) - 10px))}.task-cl-footer{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}}.task-checklist-item{align-items:center;min-height:36px;padding:0 8px 0 12px;display:flex}.task-checklist-item>label{cursor:pointer;flex:auto;align-items:center;gap:10px;min-width:0;padding:6px 0;display:flex}.task-checklist-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-success,#16a34a);cursor:pointer;flex:none;margin:0}.task-checklist-item input[type=checkbox]:disabled{cursor:default}.task-checklist-text{overflow-wrap:anywhere;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex:auto;min-width:0;font-size:14px}.task-checklist-item--done .task-checklist-text{color:var(--color-text-muted,#64748b);text-decoration:line-through}.task-checklist-del{width:28px;height:28px;color:var(--color-text-muted,#94a3b8);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.task-checklist-del svg{width:14px;height:14px}.task-checklist-del:hover{color:var(--color-danger,#dc2626);background:var(--color-hover,#f8fafc)}.task-checklist-input{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);min-width:0;color:var(--color-text,#1f2937);font:inherit;border-radius:8px;flex:auto;margin:4px 0;padding:6px 10px;font-size:14px}.task-checklist-ghost{border:1px dashed var(--color-border,#d1d5db);color:var(--color-text-muted,#64748b);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:inline-flex}.task-checklist-ghost svg{width:16px;height:16px}.task-checklist-ghost:hover{color:var(--color-primary,#2563eb);border-color:var(--color-primary,#2563eb)}.task-row-checklist{color:var(--color-text-muted,#64748b);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:3px;font-size:12px;font-weight:700;display:inline-flex}.task-row-checklist svg{width:13px;height:13px}.task-row-checklist--done{color:var(--color-success,#16a34a)}.task-chip{background:var(--color-surface-alt,#eef2f7);min-height:24px;color:var(--color-text,#1f2937);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.task-chip--critical{color:#991b1b;background:#fee2e2}.task-chip--high{color:#9a3412;background:#ffedd5}.task-chip--medium{color:#1d4ed8;background:#dbeafe}.task-chip--low{color:#0f766e;background:#ccfbf1}.task-chip--pending{color:#854d0e;background:#fef9c3}.task-meta{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.task-meta div{min-width:0}.task-meta dt{text-transform:uppercase;color:var(--color-text-muted,#64748b);align-items:center;gap:6px;font-size:11px;font-weight:800;display:flex}.task-meta dt svg{opacity:.85;flex-shrink:0;width:15px;height:15px}.task-detail-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.task-detail-header .task-detail-title{flex:1;min-width:0}.task-detail-header .task-kind-pill{flex-shrink:0}.task-owner{background:var(--color-surface-2,#f1f5f9);border:1px solid var(--color-border,#e2e8f0);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.task-owner-who{flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.task-owner-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:700;display:flex;box-shadow:0 1px 3px #0000002e}.task-owner-avatar--none{background:var(--color-surface-3,#e2e8f0);color:var(--color-text-muted,#94a3b8)}.task-owner-text{min-width:0}.task-owner-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted,#64748b);font-size:11px;font-weight:700}.task-owner-name{color:var(--color-text,#0f172a);overflow-wrap:anywhere;font-size:16px;font-weight:700}.task-owner-side{flex-shrink:0;align-items:center;gap:10px;display:flex}button.task-owner-assign{border:1px solid var(--color-primary,#2563eb);background:var(--color-primary,#2563eb);color:#fff;min-height:38px;padding:0 14px;font-weight:800;box-shadow:0 8px 18px #2563eb47}button.task-owner-assign:before{content:"+";background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-right:7px;font-weight:900;display:inline-flex}button.task-owner-assign:hover:not(:disabled){color:#fff;background:#1d4ed8;border-color:#1d4ed8}.task-assign-modal-overlay{z-index:12000;box-sizing:border-box;background:#0f172a6b;justify-content:center;align-items:center;padding:24px 12px;display:flex;position:fixed;inset:0}.task-assign-modal{background:var(--color-surface,#fff);width:min(620px,100%);max-height:min(78dvh,720px);color:var(--color-text,#111827);border-radius:8px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 22px 60px #0f172a59}.task-assign-modal-head{border-bottom:1px solid var(--color-border,#e5e7eb);flex:none;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.task-assign-kicker{color:var(--color-text-muted,#64748b);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.task-assign-modal h3{margin:0;font-size:18px;line-height:1.2}.task-assign-title{flex-wrap:nowrap;align-items:center;gap:8px;min-width:0;max-width:calc(100vw - 138px);margin-top:2px;display:flex}.task-assign-current{color:#1d4ed8;text-overflow:ellipsis;white-space:nowrap;background:#dbeafe;border-radius:999px;flex:0 auto;min-width:0;max-width:min(220px,42vw);padding:4px 9px;font-size:13px;font-weight:900;overflow:hidden}.task-assign-close{flex:none;width:40px;height:40px}.task-assign-form{min-height:0;padding:14px 16px 16px;overflow:auto}.task-assign-actions{background:var(--color-surface,#fff);padding-top:10px;position:sticky;bottom:0}.task-attach-add{display:flex}.task-attach-add .att-field{align-items:flex-start}.task-attach-add .att-field[hidden],.task-attach-add .att-chips{display:none}.task-attach-uploading{font:inherit;color:var(--color-text-muted,#64748b);align-items:center;gap:8px;padding:8px 16px;font-size:14px;display:inline-flex}.task-attach-uploading[hidden]{display:none}.task-attach-spinner{border:2px solid var(--color-border,#d1d5db);border-top-color:var(--color-primary,#2563eb);border-radius:50%;flex:none;width:16px;height:16px;animation:.7s linear infinite task-attach-spin}@keyframes task-attach-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.task-attach-spinner{animation-duration:1.6s}}.task-sheet-head{align-items:center}.task-head-due{white-space:nowrap;color:var(--color-text-muted,#64748b);align-self:center;align-items:baseline;gap:6px;margin-left:auto;display:inline-flex}.task-head-due-label{text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:700}.task-head-due strong{color:var(--color-text,#111827);font-size:13px;font-weight:700}select.task-owner-assign{appearance:none;text-align:center;cursor:pointer;flex-shrink:0;font-weight:600}select.task-owner-assign option,select.task-owner-assign optgroup{text-align:left;font-weight:400}.task-byline{color:var(--color-text-muted,#64748b);align-items:center;gap:8px;font-size:12px;display:flex}.task-byline-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.task-byline-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.task-author{align-items:center;gap:10px;min-width:0;display:flex}.task-author-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;font-weight:700;display:flex;box-shadow:0 1px 3px #0000002e}.task-author-info{min-width:0}.task-author-name{color:var(--color-text,#111827);white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.task-detail-sub{color:var(--color-text-muted,#64748b);margin-top:1px;font-size:12px}.task-archived-badge{background:var(--color-surface-3,#7878782e);color:var(--color-text-muted,#64748b);text-transform:uppercase;letter-spacing:.04em;vertical-align:middle;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.task-kind-pill{text-transform:uppercase;letter-spacing:.03em;background:var(--color-surface-2,#f1f5f9);color:var(--color-text-muted,#64748b);border:1px solid var(--color-border,#e2e8f0);border-radius:999px;flex-shrink:0;padding:3px 10px;font-size:11px;font-weight:800}.task-kind-pill--incident{color:#b91c1c;background:#fee2e2;border-color:#fecaca}.task-detail-title{color:var(--color-text,#111827);margin:0;font-size:18px;line-height:1.25}.task-sheet-head,.task-status-actions{justify-content:center}.task-status-actions .btn-secondary{background:var(--color-surface-3,#e2e8f0);border-color:var(--color-text-muted,#94a3b8);color:var(--color-text,#0f172a);font-weight:700}.task-status-actions .btn-secondary:hover:not(:disabled){background:var(--color-text-muted,#94a3b8);border-color:var(--color-text,#475569);color:var(--color-surface,#fff)}.task-share-actions{flex-wrap:wrap;justify-content:center;gap:8px;padding-top:4px;display:flex}.task-action-btn{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);width:42px;height:42px;color:var(--color-text-muted,#64748b);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:background-color .15s,color .15s,border-color .15s;display:flex}.task-action-btn svg{flex-shrink:0;width:18px;height:18px}.task-action-btn:hover{background:var(--color-accent-soft,#eff6ff);color:var(--color-primary,#2563eb);border-color:var(--color-primary,#2563eb)}.task-action-btn:disabled{opacity:.4;cursor:not-allowed}.task-action-delete:hover{background:var(--color-danger-soft,#fef2f2);color:var(--color-danger,#dc2626);border-color:var(--color-danger,#dc2626)}a.task-action-monday{text-decoration:none}.task-action-monday:hover{color:#0073ea;background:#0073ea1f;border-color:#0073ea}@media (pointer:coarse){.task-action-monday{display:none}}.task-meta dd{text-overflow:ellipsis;margin:2px 0 0;overflow:hidden}.task-form label{color:var(--color-text-muted,#64748b);gap:4px;font-size:12px;font-weight:700;display:grid}.task-form input,.task-form select,.task-form textarea,.task-search-input{box-sizing:border-box;border:1px solid var(--color-border,#d1d5db);width:100%;font:inherit;color:var(--color-text,#111827);background:var(--color-surface,#fff);border-radius:8px;padding:9px 10px}.task-form-grid>label{flex:150px}.task-form-attach-host{flex:0 auto;min-width:0}.task-form-attach-host .att-field{align-items:flex-start}.task-assignment-picker{display:block}.task-assignment-panel{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);border-radius:8px;overflow:hidden}.task-assignment-panel--plain .task-assignment-grid{padding-top:12px}.task-assignment-summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:10px 12px;list-style:none;display:grid}.task-assignment-summary::-webkit-details-marker{display:none}.task-assignment-summary:after{content:"+";color:var(--color-text-muted,#64748b);font-weight:800}.task-assignment-panel[open] .task-assignment-summary:after{content:"-"}.task-assignment-summary-title{color:var(--color-text-muted,#64748b);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:800}.task-assignment-summary-value{min-width:0;color:var(--color-text,#111827);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.task-assign-modal .task-assignment-summary{background:var(--color-surface-2,#f8fafc);min-height:54px}.task-assign-modal .task-assignment-summary-value{color:#1d4ed8;background:#dbeafe;border-radius:999px;justify-self:start;padding:5px 10px;font-weight:900}.task-assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 12px 12px;display:grid}.task-assignment-column{min-width:0}.task-assignment-column-label{color:var(--color-text-muted,#64748b);margin-bottom:6px;font-size:12px;font-weight:800}.task-assignment-picker input[type=search]{margin-bottom:6px}.task-assignment-single input[type=search]{box-sizing:border-box;width:100%;margin-bottom:8px}.task-assignment-list{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);border-radius:8px;max-height:184px;overflow:auto}.task-form .task-assignment-option{border-bottom:1px solid var(--color-border,#e5e7eb);min-height:28px;color:var(--color-text,#111827);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:3px 10px;font-size:12px;font-weight:600;display:flex}.task-form .task-assignment-option[hidden]{display:none}.task-assignment-option:last-child{border-bottom:0}.task-assignment-option:hover{background:var(--color-hover,#f8fafc)}.task-assignment-option:has(input:checked){color:#1d4ed8;background:#eff6ff;font-weight:800}.task-form .task-assignment-option input{flex:none;width:16px;height:16px;margin:0;padding:0}.task-form .task-assignment-option span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.task-assignment-single{padding:12px}.task-assignment-list.task-assignment-list--combined{max-height:min(58dvh,460px)}.task-assignment-section{border-bottom:1px solid var(--color-border,#e5e7eb)}.task-assignment-section:last-child{border-bottom:0}.task-assignment-section[hidden]{display:none}.task-assignment-group-gap{height:10px}.task-form .task-assignment-option--role{background:var(--color-surface-2,#f8fafc);z-index:1;min-height:38px;font-weight:800;position:sticky;top:0}.task-assignment-role-check{cursor:pointer;flex:none;width:16px;height:16px;margin:0}.task-form .task-assignment-section-name{text-overflow:ellipsis;white-space:nowrap;cursor:pointer;flex-direction:row;flex:0 auto;align-items:center;gap:0;min-width:0;line-height:1;display:flex;overflow:hidden}.task-assignment-option--disabled .task-assignment-section-name,.task-assignment-option--disabled .task-assignment-section-count{opacity:.45}.task-assignment-option--disabled .task-assignment-role-check{cursor:not-allowed;opacity:.45}.task-assignment-option--norole .task-assignment-section-name{color:var(--color-text-muted,#64748b);text-transform:uppercase;letter-spacing:.03em;font-size:11px}.task-assignment-role-dot{vertical-align:middle;border-radius:50%;flex:none;width:9px;height:9px;margin-right:7px;display:inline-block}.task-assignment-section-count{background:var(--color-border,#e5e7eb);min-width:18px;color:var(--color-text-muted,#475569);text-align:center;border-radius:999px;flex:none;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:800}.task-assignment-option--role:after{content:"▾";color:var(--color-text-muted,#64748b);flex:none;margin-left:8px;font-size:11px;transition:transform .12s}.task-assignment-section.collapsed .task-assignment-option--role:after{transform:rotate(-90deg)}.task-assignment-section.collapsed .task-assignment-section-members{display:none}.task-assignment-section-members{border-left:2px solid var(--color-border,#e5e7eb);margin-left:17px}.task-form .task-assignment-option--user{padding-left:14px;font-weight:600}.task-assignment-empty{color:var(--color-text-muted,#94a3b8);padding:7px 12px 7px 26px;font-size:12px;font-style:italic}.task-assign-btn{border:1px solid var(--color-border,#d1d5db);background:var(--color-surface,#fff);width:100%;min-height:46px;color:var(--color-text,#111827);font:inherit;cursor:pointer;text-align:left;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.task-assign-btn:hover{border-color:var(--color-text-muted,#9ca3af)}.task-assign-btn-title{color:var(--color-text-muted,#667085);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:800}.task-assign-btn-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.task-assign-btn-edit{color:var(--color-accent,#2563eb);font-size:13px;font-weight:700}.task-row,.task-search-row{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px;display:flex}.task-row:hover,.task-search-row:hover{background:var(--color-hover,#f8fafc)}.task-row-main,.task-search-main{flex:1;gap:2px;min-width:0;display:grid}.task-row-main strong,.task-search-main strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.task-row-main span,.task-search-main span{color:var(--color-text-muted,#64748b);font-size:12px}.task-row-priority{background:#2563eb;border-radius:999px;flex:none;width:10px;height:34px}.task-row-priority--critical{background:#dc2626}.task-row-priority--high{background:#ea580c}.task-row-priority--medium{background:#2563eb}.task-row-priority--low{background:#0f766e}.task-search-type{min-width:58px;color:var(--color-text-muted,#64748b);text-transform:uppercase;font-size:11px;font-weight:800}@media (width<=640px){.task-meta{grid-template-columns:1fr}.task-assignment-picker{display:block}.task-assignment-grid{grid-template-columns:1fr}.task-assignment-list{max-height:176px}.task-form .task-assignment-option{gap:9px;min-height:34px;padding:5px 12px}.task-form .task-assignment-option input{width:18px;height:18px}.task-form .task-assignment-option--user{padding-left:14px}.task-owner{align-items:stretch}.task-owner-side{align-self:stretch}button.task-owner-assign{justify-content:center;width:100%}.task-assign-modal-overlay{align-items:flex-end;padding:10px}.task-assign-modal{max-height:82dvh}}.monday-unplaced-tray{right:max(24px, env(safe-area-inset-right));bottom:calc(max(24px, env(safe-area-inset-bottom)) + 164px);z-index:1350;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:8px;width:min(360px,100vw - 28px);display:flex;position:fixed}.monday-unplaced-pill,.monday-unplaced-panel{pointer-events:auto;border:1px solid var(--color-border,#94a3b857);background:var(--color-surface,#111827);color:var(--color-text,#f8fafc);box-shadow:0 14px 34px #0f172a42}.monday-unplaced-pill{cursor:pointer;border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:8px 12px;font:700 13px/1.1 system-ui,sans-serif;display:inline-flex}.monday-unplaced-logo{color:#062c1a;background:#00c875;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-weight:900;display:inline-flex}.monday-unplaced-panel{border-radius:8px;width:100%;max-height:min(360px,100vh - 170px);padding:8px;overflow:auto}.monday-unplaced-warn{color:#fbbf24;background:#f59e0b24;border-radius:6px;margin:0 0 8px;padding:8px 10px;font-size:12px;line-height:1.35}.monday-unplaced-row{width:100%;min-height:52px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.monday-unplaced-row:hover{background:#94a3b81f}.monday-unplaced-dot{background:#2563eb;border-radius:999px;width:10px;height:10px}.monday-unplaced-dot--critical{background:#dc2626}.monday-unplaced-dot--high{background:#ea580c}.monday-unplaced-dot--low{background:#0f766e}.monday-unplaced-main{flex-direction:column;gap:2px;min-width:0;display:flex}.monday-unplaced-main strong,.monday-unplaced-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.monday-unplaced-main strong{font-size:13px}.monday-unplaced-main span{color:var(--color-text-muted,#94a3b8);font-size:12px}.monday-unplaced-actions{align-items:center;gap:6px;display:inline-flex}.monday-unplaced-actions a,.monday-unplaced-actions button{border:1px solid var(--color-border,#94a3b857);background:var(--color-surface-2,#94a3b81f);min-width:34px;min-height:30px;color:inherit;border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font:700 12px/1 system-ui,sans-serif;text-decoration:none;display:inline-flex}.monday-unplaced-actions button{cursor:pointer}@media (width<=640px){.monday-unplaced-tray{bottom:calc(max(12px, env(safe-area-inset-bottom)) + 84px)}}.monday-unplaced-tray,.monday-unplaced-panel,.monday-unplaced-row{box-sizing:border-box}.monday-unplaced-panel{overflow:hidden auto}.monday-unplaced-actions{flex:none;min-width:0}.monday-unplaced-actions a,.monday-unplaced-actions button{white-space:nowrap}@media (width<=640px){.monday-unplaced-tray{right:max(14px, env(safe-area-inset-right));bottom:calc(max(16px, env(safe-area-inset-bottom)) + 184px);width:min(340px,100vw - 24px)}}#socket-status-indicator{display:none!important}.status-bar{left:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:1001;align-items:center;gap:var(--space-2);box-sizing:border-box;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 - 40px);min-height:44px;box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-2);cursor:pointer;transition:box-shadow var(--transition-base), transform var(--transition-fast);padding:6px 12px;font-family:inherit;display:inline-flex;position:fixed}.status-bar:hover{box-shadow:var(--shadow-lg)}.status-bar:active{transform:scale(.98)}.status-bar:focus-visible{box-shadow:var(--shadow-focus);outline:none}@media (width<=768px){.status-bar{left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));padding:6px 10px}.status-bar .sb-latency{display:none}}.sb-seg{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.sb-sep{background:var(--color-divider);flex:none;width:1px;height:16px}.sb-conn-label{color:var(--color-text)}.sb-latency{color:var(--color-text-3);font-size:var(--text-xs)}.sb-online{color:var(--color-text-2);font-variant-numeric:tabular-nums}.sb-filter{color:var(--color-accent);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.sb-dot{border-radius:var(--radius-round);background:var(--color-text-4);flex:none;width:9px;height:9px}.sb-dot.is-online,.sb-dot.is-synced{background:var(--color-success)}.sb-dot.is-connecting,.sb-dot.is-pending{background:var(--color-warning)}.sb-dot.is-offline{background:var(--color-text-3)}.status-bar.sync-pending .sb-sync-dot{animation:1.6s ease-in-out infinite sb-pulse}@keyframes sb-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.status-bar.sync-pending .sb-sync-dot{animation:none}}.sb-avatars{display:inline-flex}.sb-avatars .sb-avatar:not(:first-child){margin-left:-7px}.sb-avatar{border-radius:var(--radius-round);color:#fff;width:22px;height:22px;font-size:10px;font-weight:var(--weight-bold);border:2px solid var(--color-surface);flex:none;justify-content:center;align-items:center;display:inline-flex}.sb-avatar.is-me{outline:2px solid var(--color-accent);outline-offset:-2px}.sync-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) 0 var(--space-3);display:flex}.sync-row .sb-dot{width:12px;height:12px}.sync-row-text{flex-direction:column;gap:2px;display:flex}.sync-row-text strong{font-size:var(--text-md);color:var(--color-text)}.sync-sub{font-size:var(--text-sm);color:var(--color-text-3)}.sync-section-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-3);margin:var(--space-3) 0 var(--space-2);border-bottom:1px solid var(--color-divider);padding-bottom:3px}.sync-all-clear{color:var(--color-text-3);padding:var(--space-2) 0}.sync-pending-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sync-pending-list li{align-items:center;gap:var(--space-2);display:flex}.sync-pending-badge{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-warning-fg);background:var(--color-warning-soft);border-radius:var(--radius-pill);flex:none;padding:2px 8px}.sync-pending-text{color:var(--color-text-2);font-size:var(--text-base);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filter-panel{gap:var(--space-3);padding:var(--space-3);margin:0 0 var(--space-3);border:1px solid var(--color-divider);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface-2) 58%, transparent);flex-direction:column;display:flex}.role-filter-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);display:flex}.role-filter-title{border-bottom:0;margin:0;padding-bottom:0}.role-filter-summary{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-3)}.role-filter-reset,.layer-vis-reset{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);border:1px solid color-mix(in srgb, var(--color-accent) 38%, transparent);background:color-mix(in srgb, var(--color-accent) 12%, transparent);cursor:pointer;border-radius:var(--radius-pill,999px);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-family:inherit;line-height:1.4;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.role-filter-reset:hover,.layer-vis-reset:hover{background:color-mix(in srgb, var(--color-accent) 20%, transparent);border-color:color-mix(in srgb, var(--color-accent) 55%, transparent)}.role-filter-reset:active,.layer-vis-reset:active{transform:scale(.96)}.role-filter-reset:focus-visible,.layer-vis-reset:focus-visible{box-shadow:var(--shadow-focus);outline:none}.role-filter-subhead{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-text-3);margin:var(--space-2) 0 4px}.role-filter-grid{grid-template-columns:repeat(auto-fit,minmax(124px,1fr));gap:6px;display:grid}.role-filter-grid+.role-filter-subhead{margin-top:var(--space-3)}.role-filter-btn{--role-color:#64748b;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;min-height:38px;color:var(--color-text);font:inherit;font-weight:var(--weight-semibold);text-align:left;cursor:pointer;touch-action:manipulation;align-items:center;gap:5px;padding:6px 8px;display:flex}.role-filter-btn.active{border-color:var(--role-color);background:color-mix(in srgb, var(--role-color) 9%, var(--color-surface))}.role-filter-btn.is-disabled{background:var(--color-surface-2);color:var(--color-text-3)}.role-filter-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.role-filter-swatch{border-radius:var(--radius-round);background:var(--role-color);width:11px;height:11px;box-shadow:0 0 0 2px color-mix(in srgb, var(--role-color) 22%, transparent);flex:none}.role-filter-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.role-filter-state{color:var(--color-text-3);flex:none;margin-left:auto;font-size:10px}.role-filter-swatch--count{border-radius:var(--radius-round);color:#fff;width:auto;min-width:18px;height:18px;font-size:10px;line-height:1;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;box-shadow:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.role-filter-btn.is-disabled .role-filter-swatch{opacity:.45}.role-filter-btn.is-disabled .role-filter-name{text-decoration:line-through;text-decoration-thickness:2px}.presence-list{flex-direction:column;gap:2px;display:flex}.presence-empty{padding:var(--space-4) var(--space-2);color:var(--color-text-3);text-align:center}.presence-row{align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-md);min-height:52px;display:flex}.presence-row.is-locatable{cursor:pointer}.presence-row.is-locatable:hover{background:var(--color-surface-2)}.presence-row.is-locatable:focus-visible{box-shadow:var(--shadow-focus);outline:none}.presence-avatar{border-radius:var(--radius-round);color:#fff;width:36px;height:36px;font-size:13px;font-weight:var(--weight-bold);flex:none;justify-content:center;align-items:center;display:inline-flex}.presence-row-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.presence-row-name{font-size:var(--text-md);font-weight:var(--weight-medium);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.presence-you{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-accent);background:var(--color-accent-soft);border-radius:var(--radius-pill);margin-left:var(--space-1);padding:1px 6px}.presence-row-status{font-size:var(--text-sm);color:var(--color-text-3)}.presence-locate{color:var(--color-text-4);flex:none;font-size:20px;line-height:1}.presence-chat{cursor:pointer;width:40px;height:40px;color:var(--color-accent);border-radius:var(--radius-round);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.presence-chat:hover{background:var(--color-accent-soft)}.presence-chat:active{transform:scale(.92)}.presence-chat:focus-visible{box-shadow:var(--shadow-focus);outline:none}.presence-chat svg{display:block}.sb-people-trigger{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);margin:2px 0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font:inherit;cursor:pointer;text-align:left;display:flex}.sb-people-trigger:hover{background:var(--color-surface-3)}.sb-people-avatars{display:inline-flex}.sb-people-avatars .sb-avatar{box-shadow:0 0 0 2px var(--color-surface-2);margin-left:-6px}.sb-people-avatars .sb-avatar:first-child{margin-left:0}.sb-people-count{font-weight:var(--weight-medium);flex:1}.sb-people-chev{color:var(--color-text-4);font-size:20px;line-height:1}.sync-row--inline{align-items:center;gap:var(--space-2);padding:var(--space-2) 0}.sync-row--inline .sb-dot{flex:none;margin-top:0}.sync-inline-text{min-width:0;font-size:var(--text-md);color:var(--color-text-3);flex:1}.sync-inline-text strong{color:var(--color-text)}.sb-refresh-inline{font-size:var(--text-xs);flex:none;margin-left:auto;padding:6px 12px}.sb-people-modal{z-index:11000;padding:var(--space-4);background:#00000073;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sb-people-card{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:420px;max-height:80dvh;box-shadow:var(--shadow-xl);flex-direction:column;display:flex;overflow:hidden}.sb-people-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;display:flex}.sb-people-title{font-weight:var(--weight-bold);color:var(--color-text)}.sb-people-close{color:var(--color-text-3);cursor:pointer;border-radius:var(--radius-md);background:0 0;border:none;padding:4px 8px;font-size:18px}.sb-people-close:hover{background:var(--color-surface-2);color:var(--color-text)}.sb-people-list{padding:var(--space-2) var(--space-3);overflow-y:auto}.zone-filter-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin:var(--space-1) 0 var(--space-2);display:flex}.zone-filter-title{border-bottom:0;margin:0;padding-bottom:0}.zone-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.zone-filter-btn{--sev:var(--color-text-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);min-width:0;min-height:38px;color:var(--color-text);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:5px;padding:6px 7px;display:flex}.zone-filter-btn.active{border-color:var(--sev);background:color-mix(in srgb, var(--sev) 10%, var(--color-surface))}.zone-filter-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.zone-filter-btn .zone-sev-dot{border-radius:var(--radius-round);background:var(--sev);flex:none;width:9px;height:9px}.zone-filter-btn .zone-sev-ic{font-weight:var(--weight-bold);line-height:1}.zone-filter-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.zone-state-filter{min-height:30px;color:var(--color-text-2);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;touch-action:manipulation;white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.zone-state-filter input{width:15px;height:15px;accent-color:var(--color-accent)}@media (width<=420px){.zone-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-filter-btn,.zone-filter-btn{min-height:40px}}.sb-actions{margin:4px 0 12px;display:flex}.sb-refresh-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:8px;padding:9px 14px;display:inline-flex}.sb-refresh-btn:hover{background:var(--color-surface-3)}.sb-refresh-btn.is-busy{opacity:.6;pointer-events:none}.sb-refresh-btn.is-busy svg{animation:.8s linear infinite sb-spin}@keyframes sb-spin{to{transform:rotate(360deg)}}.cmd-dash{flex-direction:column;gap:12px;display:flex}.cmd-tabs{gap:6px;display:flex}.cmd-tab{border:1px solid var(--color-border,#e5e7eb);background:var(--color-surface,#fff);cursor:pointer;color:var(--color-text,#0f172a);border-radius:8px;padding:6px 14px;font-weight:600}.cmd-tab.is-active{background:var(--color-accent,#2563eb);color:#fff;border-color:#0000}.cmd-panel.hidden{display:none}.cmd-kpis{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.cmd-kpi{background:var(--color-surface,#fff);border:1px solid var(--color-border,#e5e7eb);text-align:center;border-radius:10px;padding:12px 14px}.cmd-kpi-val{color:var(--color-text,#0f172a);font-variant-numeric:tabular-nums;font-size:26px;font-weight:800}.cmd-kpi-label{color:var(--color-text-muted,#64748b);margin-top:2px;font-size:12px}.cmd-kpi--alert{border-color:#dc2626}.cmd-kpi--alert .cmd-kpi-val{color:#dc2626}.cmd-kpi--warn{border-color:#f59e0b}.cmd-kpi--warn .cmd-kpi-val{color:#b45309}.cmd-grid-wrap{border:1px solid var(--color-border,#e5e7eb);border-radius:10px;max-height:56vh;overflow:auto}.cmd-grid{border-collapse:collapse;width:100%;font-size:13px}.cmd-grid thead th{z-index:1;text-align:left;background:var(--color-surface-alt,#f8fafc);border-bottom:1px solid var(--color-border,#e5e7eb);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;color:var(--color-text,#0f172a);padding:8px 10px;position:sticky;top:0}.cmd-grid tbody td{border-bottom:1px solid var(--color-border,#eef2f7);color:var(--color-text,#0f172a);padding:7px 10px}.cmd-grid tbody tr:hover{background:var(--color-surface-hover,#f1f5f9)}.cmd-grid tbody tr.is-selected{background:#2563eb1f}.cmd-grid tbody tr.cmd-row--critical td{background:#dc26260f}.cmd-title{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.cmd-actions{white-space:nowrap;gap:4px;display:flex}.cmd-prio{border-radius:6px;padding:2px 6px;font-size:11px;font-weight:800}.cmd-prio--critical{color:#991b1b;background:#fee2e2}.cmd-prio--high{color:#9a3412;background:#ffedd5}.cmd-prio--medium{color:#1d4ed8;background:#dbeafe}.cmd-prio--low{color:#0f766e;background:#ccfbf1}.cmd-sla{color:#b45309;font-variant-numeric:tabular-nums}.cmd-sla--over{color:#dc2626;font-weight:800}.cmd-ok{color:#16a34a}.cmd-replay-controls{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.cmd-replay-controls label{color:var(--color-text-muted,#64748b);flex-direction:column;gap:3px;font-size:12px;display:flex}.cmd-replay-controls input[type=datetime-local]{border:1px solid var(--color-border,#e5e7eb);border-radius:6px;padding:5px 8px}.cmd-replay-status{color:var(--color-text-muted,#64748b);font-size:12px}.cmd-replay-status--warn{color:#b45309;font-weight:600}.cmd-replay-canvas{border:1px solid var(--color-border,#e5e7eb);background:#0b1220;border-radius:10px;width:100%;max-width:100%}.cmd-replay-transport{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cmd-replay-transport.hidden{display:none}.cmd-scrub{flex:1;min-width:160px}.cmd-playhead-label{font-variant-numeric:tabular-nums;color:var(--color-text-muted,#64748b);min-width:150px;font-size:12px}.cmd-speed,.cmd-heat-toggle{align-items:center;gap:4px;font-size:12px;display:flex}@media (width<=720px){.cmd-kpis{grid-template-columns:repeat(3,1fr);gap:6px}.cmd-kpi{border-radius:8px;padding:8px 6px}.cmd-kpi-val{font-size:19px}.cmd-kpi-label{font-size:10px}.cmd-grid-wrap{max-height:50vh}.cmd-grid{font-size:12px}.cmd-grid thead th,.cmd-grid tbody td{padding:8px 5px}.cmd-grid th:nth-child(2),.cmd-grid td:nth-child(2),.cmd-grid th:nth-child(4),.cmd-grid td:nth-child(4),.cmd-grid th:nth-child(5),.cmd-grid td:nth-child(5),.cmd-grid th:nth-child(7),.cmd-grid td:nth-child(7),.cmd-grid th:nth-child(8),.cmd-grid td:nth-child(8){display:none}.cmd-title{max-width:120px}.cmd-actions{flex-wrap:wrap;gap:3px}.cmd-actions .btn{padding:4px 7px;font-size:11px}}.modal-overlay{background:var(--color-overlay,#00000080);z-index:10000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.modal{background:var(--color-surface,#fff);color:var(--color-text,#0f172a);box-shadow:var(--shadow-xl,var(--shadow-lg,0 20px 40px #0000004d));border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-small{max-width:400px}.modal-header{border-bottom:1px solid var(--color-border,#e9ecef);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{margin:0;font-size:18px;font-weight:600}.modal-close{cursor:pointer;color:var(--color-text-3,#666);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:24px;display:flex}.modal-close:hover{background:var(--color-surface-3,#f0f0f0)}.modal-body{color:var(--color-text,#0f172a);padding:20px 24px}.modal-actions{border-top:1px solid var(--color-border,#e9ecef);justify-content:flex-end;gap:12px;padding:20px 24px;display:flex}#global-confirmation-message{color:var(--color-text,#0f172a);white-space:pre-line;margin:0;font-size:16px;line-height:1.5}.machine-location-marker{cursor:pointer}.machine-marker{pointer-events:auto;cursor:pointer;flex-direction:column;align-items:center;display:flex}.machine-marker__badge{background:linear-gradient(135deg,#f9a825,#ef6c00);border:1.5px solid #fff;border-radius:5px;justify-content:center;align-items:center;width:20px;height:20px;display:flex;box-shadow:0 1px 5px #00000059}.machine-marker__badge svg{width:12px;height:12px}.machine-marker__label{color:#fff;white-space:nowrap;background:#ef6c00f2;border-radius:9px;margin-top:3px;padding:1px 6px;font-size:11px;font-weight:700;line-height:1.2;box-shadow:0 1px 3px #00000040}[data-theme=dark] .machine-marker__badge{border-color:#ffffffd9}.machine-popup{min-width:120px}.machine-popup__name{color:#111;font-size:13px;font-weight:700}.machine-popup__meta{color:#555;margin-top:2px;font-size:12px}[data-theme=dark] .machine-popup__name{color:#f1f5f9}[data-theme=dark] .machine-popup__meta{color:#94a3b8}[data-theme=dark] .machine-popup-wrap .maplibregl-popup-content{background:#1e293b;box-shadow:0 2px 10px #00000080}[data-theme=dark] .machine-popup-wrap .maplibregl-popup-tip{border-top-color:#1e293b;border-bottom-color:#1e293b}[data-theme=dark] .machine-popup-wrap .maplibregl-popup-close-button{color:#94a3b8}.chat-launcher{right:24px;bottom:calc(116px + env(safe-area-inset-bottom,0px));z-index:var(--z-panel,1000);border-radius:var(--radius-round);background:var(--color-accent);width:56px;height:56px;color:var(--color-on-accent);box-shadow:var(--shadow-lg);cursor:pointer;transition:transform var(--transition-fast), background var(--transition-fast);border:none;place-items:center;display:grid;position:fixed}.chat-launcher:hover{background:var(--color-accent-hover);transform:translateY(-2px)}.chat-launcher:active{transform:translateY(0)}.chat-launcher-badge{background:var(--color-danger);border:2px solid var(--color-surface);border-radius:50%;width:12px;height:12px;position:absolute;top:2px;right:2px}.chat-launcher[hidden],.chat-launcher-badge[hidden],.chat-typing-row[hidden]{display:none}.chat-launcher.fab-hidden{opacity:0;pointer-events:none;transition:opacity var(--transition-base), transform var(--transition-base);transform:translateY(8px)scale(.92)}@media (prefers-reduced-motion:reduce){.chat-launcher.fab-hidden{transition:opacity var(--transition-fast);transform:none}}.chat-root{z-index:var(--z-overlay,2000);zoom:calc(1 / var(--ui-scale,1));position:fixed;inset:0}.chat-scrim{background:var(--color-overlay);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.chat-visible .chat-scrim{opacity:1}.chat-panel{background:var(--color-surface);width:min(880px,100%);height:100%;box-shadow:var(--shadow-xl);transition:transform var(--transition-slow) var(--ease-emphasized);grid-template-columns:300px 1fr;display:grid;position:absolute;top:0;right:0;transform:translate(100%)}.chat-visible .chat-panel{transform:translate(0)}.chat-side{border-right:1px solid var(--color-border);background:var(--color-surface-2);flex-direction:column;min-width:0;min-height:0;display:flex}.chat-main{min-width:0}.chat-side-head{padding:var(--space-4);padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.chat-title{font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);margin:0}.chat-side-actions{align-items:center;gap:var(--space-1);display:flex}.chat-side-close{display:none}.chat-channel-list{padding:var(--space-2);flex:1;overflow-y:auto}.chat-side-empty{padding:var(--space-5);color:var(--color-text-3);font-size:var(--text-sm);text-align:center}.chat-channel{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);cursor:pointer;text-align:left;color:var(--color-text);transition:background var(--transition-fast);background:0 0;border:none;display:flex}.chat-channel:hover{background:var(--color-surface-3)}.chat-channel.is-active{background:var(--color-accent-soft)}.chat-channel-glyph{border-radius:var(--radius-round);width:32px;height:32px;font-weight:var(--weight-bold);background:var(--color-surface-3);color:var(--color-text-2);flex:none;place-items:center;display:grid}.chat-channel-glyph.kind-global{background:var(--color-accent-soft);color:var(--color-accent)}.chat-channel-glyph.kind-role{background:var(--color-warning-soft);color:var(--color-warning-fg)}.chat-channel-mid{flex-direction:column;flex:1;min-width:0;display:flex}.chat-channel-name{font-weight:var(--weight-semibold);font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-channel-preview{font-size:var(--text-sm);color:var(--color-text-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.chat-channel-unread{border-radius:var(--radius-pill);background:var(--color-accent);min-width:20px;height:20px;color:var(--color-on-accent);font-size:var(--text-xs);font-weight:var(--weight-bold);flex:none;place-items:center;padding:0 6px;display:grid}.chat-main{flex-direction:column;min-width:0;min-height:0;display:flex}.chat-main-head{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top,0px));border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex}.chat-main-title{flex-direction:column;flex:1;min-width:0;display:flex}.chat-main-name{font-weight:var(--weight-bold);font-size:var(--text-md);color:var(--color-text)}.chat-main-sub{font-size:var(--text-xs);color:var(--color-text-3)}.chat-icon-btn{color:var(--color-text-2);border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;transition:background var(--transition-fast);background:0 0;border:none;place-items:center;display:grid}.chat-icon-btn:hover{background:var(--color-surface-3);color:var(--color-text)}.chat-back{display:none}.chat-messages{min-height:0;padding:var(--space-4);gap:var(--space-2);background:var(--color-bg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-empty{color:var(--color-text-3);font-size:var(--text-sm);margin:auto}.chat-day-sep{margin:var(--space-2) 0;border-radius:var(--radius-pill);background:var(--color-surface-3);color:var(--color-text-3);font-size:var(--text-xs);font-weight:var(--weight-medium);align-self:center;padding:2px 10px}.chat-msg{gap:var(--space-2);max-width:78%;display:flex}.chat-msg.is-mine{flex-direction:row-reverse;margin-left:auto}.chat-avatar{border-radius:var(--radius-round);background:var(--gradient-accent);color:#fff;width:30px;height:30px;font-size:var(--text-sm);font-weight:var(--weight-bold);flex:none;place-items:center;display:grid}.chat-avatar.small{width:24px;height:24px;font-size:var(--text-xs)}.chat-bubble-wrap{flex-direction:column;min-width:0;display:flex}.chat-msg.is-mine .chat-bubble-wrap{align-items:flex-end}.chat-msg-meta{align-items:baseline;gap:var(--space-2);margin-bottom:2px;display:flex}.chat-msg-author{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text-2)}.chat-msg-time{font-size:var(--text-xs);color:var(--color-text-4)}.chat-msg-edited{font-size:var(--text-xs);color:var(--color-text-4);font-style:italic}.chat-bubble{padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);font-size:var(--text-base);line-height:var(--leading-normal);white-space:pre-wrap;word-break:break-word}.chat-msg.is-mine .chat-bubble{background:var(--color-accent);color:var(--color-on-accent);border-color:#0000}.chat-bubble.deleted{color:var(--color-text-4);background:var(--color-surface-2);font-style:italic}.chat-mention{color:var(--color-accent);font-weight:var(--weight-semibold)}.chat-msg.is-mine .chat-mention{color:var(--color-on-accent);text-decoration:underline}.chat-mention.is-self{background:var(--color-warning-soft);color:var(--color-warning-fg);border-radius:var(--radius-xs);padding:0 3px}.chat-msg-status{font-size:var(--text-xs);color:var(--color-text-4);margin-top:2px}.chat-msg-status.is-failed{color:var(--color-danger);cursor:pointer;text-decoration:underline}.chat-presence-dot{border-radius:var(--radius-round);background:var(--color-text-4);flex:none;width:9px;height:9px;display:inline-block}.chat-presence-dot.is-online{background:var(--color-success,#22c55e)}.chat-channel-glyph,.chat-avatar{position:relative}.chat-channel-glyph .chat-presence-dot,.chat-avatar .chat-presence-dot{width:11px;height:11px;box-shadow:0 0 0 2px var(--color-surface);position:absolute;bottom:-1px;right:-1px}.chat-avatar.small .chat-presence-dot{width:9px;height:9px}.chat-main-sub{align-items:center;gap:5px;display:flex}.chat-msg-time{align-items:center;gap:4px;display:inline-flex}.chat-receipt{color:var(--color-text-3);opacity:.85;align-items:center;display:inline-flex}.chat-receipt.is-read{color:#34b7f1;opacity:1}.chat-msg-actions{gap:var(--space-2);margin-top:2px;display:none}.chat-msg:hover .chat-msg-actions,.chat-msg.show-actions .chat-msg-actions{display:flex}.chat-msg-act{color:var(--color-text-3);font-size:var(--text-xs);cursor:pointer;background:0 0;border:none;padding:0}.chat-msg-act:hover{color:var(--color-accent);text-decoration:underline}.chat-edit-input{width:260px;max-width:100%;padding:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-accent);background:var(--color-surface);color:var(--color-text);font:inherit;resize:vertical}.chat-typing-row{align-items:center;gap:var(--space-2);padding:2px var(--space-4) var(--space-2);display:flex}.chat-typing-label{font-size:var(--text-sm);color:var(--color-text-3)}.chat-typing-dots{gap:3px;display:inline-flex}.chat-typing-dots i{background:var(--color-text-4);border-radius:50%;width:6px;height:6px;animation:1.2s infinite chat-bounce}.chat-typing-dots i:nth-child(2){animation-delay:.15s}.chat-typing-dots i:nth-child(3){animation-delay:.3s}@keyframes chat-bounce{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.chat-typing-dots i{animation:none}}.chat-att-field{padding:0 var(--space-4)}.chat-att-field .att-chips{padding-top:var(--space-2)}.chat-att-field .att-quota{display:none}.chat-composer{align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom,0px));border-top:1px solid var(--color-border);background:var(--color-surface);display:flex;position:relative}.chat-input-pill{border:1px solid var(--color-border-strong);background:var(--color-surface-2);min-width:0;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:24px;flex:1;align-items:flex-end;gap:2px;padding:2px 4px 2px 6px;display:flex}.chat-input-pill:focus-within{border-color:var(--color-accent);box-shadow:var(--shadow-focus)}.chat-input{resize:none;min-width:0;max-height:120px;padding:9px var(--space-2);color:var(--color-text);font:inherit;line-height:var(--leading-normal);background:0 0;border:none;flex:1}.chat-input:focus{outline:none}.chat-input-pill .att-picker-btn{border-radius:var(--radius-round);width:38px;height:38px;color:var(--color-text-3);cursor:pointer;background:0 0;border:none;flex:none;align-self:flex-end}.chat-input-pill .att-picker-btn:hover:not(:disabled){background:var(--color-surface-3);color:var(--color-accent)}.chat-composer-action{flex:none;align-self:flex-end;width:46px;height:46px;position:relative}.chat-composer-action .chat-send,.chat-composer-action .chat-ptt{border-radius:var(--radius-round);background:var(--color-accent);width:46px;height:46px;color:var(--color-on-accent);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);border:none;place-items:center;display:grid;position:absolute;inset:0}.chat-composer-action .chat-send:hover,.chat-composer-action .chat-ptt:hover{background:var(--color-accent-hover)}.chat-composer .chat-send{display:none}.chat-composer.is-send .chat-send{display:grid}.chat-composer.is-send .chat-ptt{display:none}.chat-mention-pop{left:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:220px;max-width:320px;box-shadow:var(--shadow-lg);z-index:2;position:absolute;bottom:64px;overflow:hidden}.chat-mention-opt{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.chat-mention-opt:hover,.chat-mention-opt.is-active{background:var(--color-accent-soft)}.chat-roster-overlay{background:var(--color-overlay);z-index:3;place-items:center;display:grid;position:absolute;inset:0}.chat-roster-card{gap:var(--space-3);width:min(420px,92%);max-height:80%;padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;display:flex;position:relative}.chat-roster-card h3{color:var(--color-text);margin:0}.chat-roster-close{top:var(--space-3);right:var(--space-3);color:var(--color-text-3);cursor:pointer;background:0 0;border:none;font-size:18px;position:absolute}.chat-roster-search{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border-strong);background:var(--color-surface-2);color:var(--color-text);font:inherit}.chat-roster-list{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.chat-roster-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.chat-roster-row:hover{background:var(--color-surface-3)}.chat-toast-host{top:calc(16px + env(safe-area-inset-top,0px));z-index:var(--z-flyout,10001);gap:var(--space-2);flex-direction:column;display:flex;position:fixed;right:16px}.chat-toast{padding:var(--space-3) var(--space-4);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-left:3px solid var(--color-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-sm);cursor:pointer;animation:chat-toast-in var(--transition-base)}.chat-toast.out{opacity:0;transition:opacity var(--transition-base)}@keyframes chat-toast-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (width<=768px){.chat-launcher{width:64px;height:64px;right:16px}}@media (width<=640px){.chat-launcher{right:calc(max(14px, env(safe-area-inset-right)) - 3px)}}@media (width<=720px){.chat-panel{grid-template-columns:1fr;width:100%;height:100dvh;top:0}.chat-side{width:100%}.chat-main{transition:transform var(--transition-base);background:var(--color-surface);position:absolute;inset:0;transform:translate(100%)}.chat-panel.show-thread .chat-main{transform:translate(0)}.chat-back,.chat-side-close{display:grid}.chat-launcher{bottom:calc(88px + env(safe-area-inset-bottom,0px))}}.chat-ptt{touch-action:none;-webkit-user-select:none;user-select:none;position:relative}.chat-ptt svg{transition:transform .12s}.chat-ptt.is-recording{color:#fff;background:#dc2626;border-radius:50%;animation:1s ease-out infinite chat-ptt-pulse}.chat-ptt.is-recording svg{transform:scale(1.1)}@keyframes chat-ptt-pulse{0%{box-shadow:0 0 #dc262699}70%{box-shadow:0 0 0 12px #dc262600}to{box-shadow:0 0 #dc262600}}@media (prefers-reduced-motion:reduce){.chat-ptt.is-recording{animation:none}}.chat-ptt-speaking{color:var(--color-accent,#2563eb);background:var(--color-surface-2,#f1f5f9);white-space:nowrap;border-radius:999px;align-items:center;margin-right:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.chat-ptt-speaking[hidden]{display:none}.chat-ptt-pending{left:50%;bottom:calc(86px + env(safe-area-inset-bottom,0px));z-index:100000;background:var(--color-accent,#2563eb);color:#fff;cursor:pointer;border:none;border-radius:999px;max-width:calc(100vw - 32px);padding:10px 16px;font-size:13px;font-weight:600;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #00000047}.chat-ptt-pending:disabled{opacity:.7}.chat-voice{background:var(--color-surface-3);color:var(--color-text);border-radius:16px;align-items:center;gap:10px;max-width:min(280px,76vw);margin-top:2px;padding:8px 12px;display:inline-flex}.chat-msg.is-mine .chat-voice{background:var(--color-accent,#2563eb);color:#fff}.chat-voice-play{cursor:pointer;background:var(--color-accent,#2563eb);color:#fff;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.chat-msg.is-mine .chat-voice-play{background:#ffffff38}.chat-voice-play:disabled{opacity:.6;cursor:default}.chat-voice-bar{background:#64748b52;border-radius:2px;flex:auto;min-width:70px;height:4px;overflow:hidden}.chat-msg.is-mine .chat-voice-bar{background:#ffffff59}.chat-voice-fill{background:var(--color-accent,#2563eb);width:0%;height:100%;transition:width .1s linear}.chat-msg.is-mine .chat-voice-fill{background:#fff}.chat-voice-time{font-variant-numeric:tabular-nums;opacity:.85;flex:none;font-size:12px}.chat-voice.is-expired{opacity:.6}.chat-voice.is-expired .chat-voice-time{font-style:italic}
