.user-account-menu{flex-shrink:0;position:relative}.user-account-menu__trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;font:inherit;color:var(--color-text-strong);transition:border-color var(--transition-fast), background var(--transition-fast);align-items:center;gap:10px;padding:4px 8px 4px 4px;display:inline-flex}.user-account-menu__trigger:hover{border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.user-account-menu__trigger[aria-expanded=true]{border-color:var(--color-border-strong);background:var(--color-surface-subtle)}.user-account-menu__avatar{border-radius:var(--radius-sm);background:var(--color-text-strong);width:34px;height:34px;color:var(--color-on-accent);letter-spacing:.02em;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.user-account-menu__trigger-text{text-align:left;flex-direction:column;align-items:flex-start;min-width:0;display:flex}.user-account-menu__name{color:var(--color-text-strong);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:14px;font-weight:600;overflow:hidden}.user-account-menu__role{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:500}.user-account-menu__org{color:var(--color-text-hint);text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:11px;font-weight:500;overflow:hidden}.user-account-menu__chevron{color:var(--color-text-hint);flex-shrink:0;margin-right:2px}.user-account-menu__dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:280px;box-shadow:var(--shadow-md);z-index:1200;animation:user-menu-in var(--transition-normal) var(--ease-out);padding:8px;position:absolute;top:calc(100% + 8px);right:0}@keyframes user-menu-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.user-account-menu__card{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-surface-subtle) 0%, var(--color-primary-surface) 100%);align-items:center;gap:12px;padding:10px 10px 12px;display:flex}.user-account-menu__card-avatar{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--color-accent) 0%, var(--color-accent-active) 100%);width:44px;height:44px;color:var(--color-on-accent);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex}.user-account-menu__card-name{color:var(--color-text-strong);font-size:15px;font-weight:600}.user-account-menu__card-email{color:var(--color-text-muted);word-break:break-all;margin-top:2px;font-size:13px}.user-account-menu__card-org{color:var(--color-text-hint);margin-top:4px;font-size:12px}.user-account-menu__sep{background:var(--color-divider);height:1px;margin:6px 4px}.user-account-menu__item{border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--color-text);text-align:left;transition:background var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;display:flex}.user-account-menu__item:hover{background:var(--color-surface-subtle)}.user-account-menu__item--danger{color:var(--color-error)}.user-account-menu__item--danger:hover{background:var(--color-error-surface)}.user-account-menu__item-icon{color:var(--color-text-muted);display:flex}.user-account-menu__item--danger .user-account-menu__item-icon{color:var(--color-error)}.user-settings-modal{z-index:1300;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a73;justify-content:center;align-items:center;padding:24px;animation:.2s ease-out user-modal-backdrop;display:flex;position:fixed;inset:0}@keyframes user-modal-backdrop{0%{opacity:0}to{opacity:1}}.user-settings-modal__panel{background:var(--color-surface);border-radius:18px;width:100%;max-width:440px;max-height:min(90vh,720px);animation:.22s cubic-bezier(.22,1,.36,1) user-modal-panel;overflow-y:auto;box-shadow:0 24px 48px -12px #0f172a47,0 0 0 1px #0f172a0f}@keyframes user-modal-panel{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.user-settings-modal__head{border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:center;padding:20px 22px 12px;display:flex}.user-settings-modal__head h2{color:var(--color-text-strong);letter-spacing:-.02em;margin:0;font-size:1.25rem;font-weight:700}.user-settings-modal__close{background:var(--color-surface-subtle);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;border:none;border-radius:10px;font-size:22px;line-height:1;transition:background .15s,color .15s}.user-settings-modal__close:hover{background:var(--color-surface-pressed);color:var(--color-text-strong)}.user-settings-modal__section{padding:20px 22px}.user-settings-modal__section h3{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0 0 12px;font-size:.85rem;font-weight:700}.user-settings-modal__hint{color:var(--color-text-muted);margin:0 0 16px;font-size:13px;line-height:1.45}.user-settings-modal__label{color:var(--color-text);flex-direction:column;gap:6px;margin-bottom:14px;font-size:13px;font-weight:600;display:flex}.user-settings-modal__label input{border:1px solid #0f172a1f;border-radius:10px;padding:10px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.user-settings-modal__label input:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring);outline:none}.user-settings-modal__primary{background:linear-gradient(180deg, var(--color-primary-light) 0%, var(--color-accent) 100%);color:var(--color-on-accent);cursor:pointer;border:none;border-radius:10px;margin-top:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:filter .15s,transform .1s}.user-settings-modal__primary:hover:not(:disabled){filter:brightness(1.05)}.user-settings-modal__primary:disabled{opacity:.65;cursor:not-allowed}.user-settings-modal__divider{background:#0f172a0f;height:1px;margin:0 22px}.user-settings-modal__secondary{background:var(--color-surface);color:var(--color-text);cursor:pointer;border:1px solid #0f172a1f;border-radius:10px;margin-top:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s}.user-settings-modal__secondary:hover:not(:disabled){background:var(--color-surface-muted);border-color:#0f172a33}.user-settings-modal__secondary:disabled{opacity:.65;cursor:not-allowed}@media (width<=640px){.user-account-menu__trigger-text,.user-account-menu__chevron{display:none}.user-account-menu__trigger{border-radius:12px;padding:4px}.user-account-menu--in-header .user-account-menu__chevron{display:block}.user-account-menu--in-header .user-account-menu__trigger{border-radius:var(--header-nav-radius,10px);padding:6px 7px}}.user-account-menu--in-header{flex-shrink:0}.user-account-menu--in-header .user-account-menu__trigger{padding:var(--header-nav-pad-y,6px) 9px var(--header-nav-pad-y,6px) 10px;min-height:calc(2 * var(--header-nav-pad-y,6px) + 1.25rem + 2px);border-radius:var(--header-nav-radius,10px);color:var(--color-text-muted);font-family:var(--font-sans);letter-spacing:-.01em;transition:background var(--transition-fast) ease, color var(--transition-fast) ease, border-color var(--transition-fast) ease, box-shadow .15s ease;background:0 0;border:1px solid #0000;gap:6px;font-size:.8125rem;font-weight:600}.user-account-menu--in-header .user-account-menu__trigger:hover{color:var(--color-text-strong);background:color-mix(in srgb, var(--color-surface) 55%, transparent);border-color:#0000}.user-account-menu--in-header .user-account-menu__trigger:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 42%, transparent);outline-offset:1px}.user-account-menu--in-header .user-account-menu__trigger[aria-expanded=true]{color:var(--color-primary);background:var(--color-surface);border-color:color-mix(in srgb, var(--color-primary) 24%, transparent);box-shadow:var(--shadow-xs), inset 0 1px 0 color-mix(in srgb, var(--color-surface) 90%, transparent)}.user-account-menu--in-header .user-account-menu__avatar{border-radius:var(--radius-full);background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface));width:26px;height:26px;color:var(--color-primary);font-size:10px;font-weight:700}.user-account-menu--in-header .user-account-menu__name{max-width:10rem;color:inherit;font-size:.8125rem;font-weight:600}.user-account-menu--in-header .user-account-menu__role,.user-account-menu--in-header .user-account-menu__org{display:none}.user-account-menu--in-header .user-account-menu__chevron{color:var(--color-text-hint);opacity:.9;flex-shrink:0;margin-right:0;transition:transform .2s cubic-bezier(.22,1,.36,1)}.user-account-menu--in-header .user-account-menu__trigger[aria-expanded=true] .user-account-menu__chevron{transform:rotate(180deg)}@media (width<=960px){.user-account-menu--in-header .user-account-menu__name{max-width:8.5rem}}@media (prefers-reduced-motion:reduce){.user-account-menu--in-header .user-account-menu__chevron{transition:none}}.app-header{--header-nav-pad-y:6px;--header-nav-pad-x:12px;--header-nav-radius:10px;--header-rail-radius:14px;--header-rail-pad:3px;height:var(--app-header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);width:100%;box-shadow:var(--shadow-xs);z-index:1100;transition:background var(--transition-normal) ease, border-color var(--transition-normal) ease, box-shadow var(--transition-normal) ease;flex-shrink:0;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:clamp(.75rem,2vw,1.25rem);padding:0 clamp(.75rem,2.5vw,1.75rem);display:grid;position:relative}.app-header__brand-cluster{flex:1;justify-self:start;align-items:center;gap:clamp(.5rem,1.75vw,1.1rem);min-width:0;display:flex}.app-header__brand{cursor:pointer;font-family:var(--font-display);letter-spacing:-.03em;color:var(--color-primary);border-radius:var(--radius-sm);transition:color var(--transition-fast) ease, opacity var(--transition-fast) ease;background:0 0;border:none;flex-shrink:0;margin:0;padding:4px 0;font-size:1.28rem;font-weight:700;line-height:1}.app-header__brand:hover{color:var(--color-primary-hover);opacity:.95}.app-header__brand:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.app-header__nav-rail{min-width:0;max-width:100%;padding:var(--header-rail-pad);border-radius:var(--header-rail-radius);background:color-mix(in srgb, var(--color-text) 4.5%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--color-surface) 70%, transparent);scrollbar-width:none;-ms-overflow-style:none;flex:auto;overflow-x:auto}.app-header__nav-rail::-webkit-scrollbar{display:none}.app-header__primary-nav{flex-wrap:nowrap;align-items:center;gap:3px;min-width:min-content;padding:0;display:flex}.app-header__nav-link{padding:var(--header-nav-pad-y) var(--header-nav-pad-x);border-radius:var(--header-nav-radius);cursor:pointer;font-family:var(--font-sans);letter-spacing:-.01em;color:var(--color-text-muted);white-space:nowrap;transition:background var(--transition-fast) ease, color var(--transition-fast) ease, border-color var(--transition-fast) ease, box-shadow .15s ease;background:0 0;border:1px solid #0000;flex-shrink:0;align-items:center;gap:7px;font-size:.8125rem;font-weight:600;display:inline-flex}.app-header__nav-link:hover{color:var(--color-text-strong);background:color-mix(in srgb, var(--color-surface) 55%, transparent)}.app-header__nav-link:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 42%, transparent);outline-offset:1px}.app-header__nav-link--active{color:var(--color-primary);background:var(--color-surface);border-color:color-mix(in srgb, var(--color-primary) 24%, transparent);box-shadow:var(--shadow-xs), inset 0 1px 0 color-mix(in srgb, var(--color-surface) 90%, transparent)}.app-header__nav-icon{opacity:.88;justify-content:center;align-items:center;display:flex}.app-header__nav-link--active .app-header__nav-icon{opacity:1;color:var(--color-primary)}.app-header__nav-link--dropdown{gap:6px;padding-right:9px}@media (width<=960px){.app-header__nav-link--dropdown .app-header__nav-label{text-overflow:ellipsis;max-width:10.5rem;overflow:hidden}}.app-header__nav-chevron{color:var(--color-text-hint);opacity:.9;flex-shrink:0;margin-left:1px;transition:transform .2s cubic-bezier(.22,1,.36,1)}.app-header__nav-link--open .app-header__nav-chevron{transform:rotate(180deg)}.app-header__sources{flex-shrink:0;position:relative}.app-header__sources-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:240px;box-shadow:var(--shadow-md);z-index:1150;padding:0;animation:.18s cubic-bezier(.22,1,.36,1) both app-header-flyout-in;position:absolute;top:calc(100% + 6px);left:0}.app-header__sources-dropdown--portal{z-index:1200;position:fixed;top:auto;left:auto;overflow:hidden}.app-header__sources-dropdown-head{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);border-bottom:1px solid color-mix(in srgb, var(--color-border) 75%, transparent);background:color-mix(in srgb, var(--color-text) 2.5%, var(--color-surface));padding:10px 14px 6px;font-size:.6875rem;font-weight:700;line-height:1.2}.app-header__sources-dropdown-list{flex-direction:column;gap:2px;padding:6px;display:flex}.app-header__sources-item{cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--color-text);text-align:left;transition:background var(--transition-fast) ease;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 11px;font-size:.8125rem;font-weight:500;display:flex}.app-header__sources-item:hover{background:var(--color-surface-subtle)}.app-header__sources-item:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 40%, transparent);outline-offset:0}.app-header__sources-item--active{background:var(--color-primary-soft);color:var(--color-text-strong);font-weight:600}.app-header__sources-item-icon{opacity:.88;color:var(--color-text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.app-header__sources-item--active .app-header__sources-item-icon{opacity:1;color:var(--color-primary)}.app-header__sources-item-label{min-width:0}.app-header__right{flex-shrink:0;justify-content:flex-end;justify-self:end;align-items:center;min-width:0;display:flex}.app-header__meta-rail{min-width:0;padding:var(--header-rail-pad);border-radius:var(--header-rail-radius);background:color-mix(in srgb, var(--color-text) 4.5%, var(--color-surface));border:1px solid color-mix(in srgb, var(--color-border) 85%, transparent);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--color-surface) 70%, transparent);flex-shrink:0;align-items:center;gap:3px;display:flex}.app-header__admin{flex-shrink:0;position:relative}.app-header__admin-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:228px;box-shadow:var(--shadow-md);z-index:1150;padding:6px;animation:.18s cubic-bezier(.22,1,.36,1) both app-header-flyout-in;position:absolute;top:calc(100% + 6px);right:0}@keyframes app-header-flyout-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.app-header__admin-item{border-radius:var(--radius-sm);cursor:pointer;width:100%;font-family:var(--font-sans);color:var(--color-text);text-align:left;transition:background var(--transition-fast) ease;background:0 0;border:none;padding:9px 11px;font-size:.8125rem;font-weight:500;display:block}.app-header__admin-item:hover{background:var(--color-surface-subtle)}.app-header__admin-item:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 40%, transparent);outline-offset:0}.app-header__admin-item--active{background:var(--color-primary-soft);color:var(--color-text-strong);font-weight:600}.app-header__mobile-backdrop,.app-header__menu-toggle{display:none}@media (width<=768px){.app-header{--app-header-offset:calc(var(--app-header-height) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;min-height:var(--app-header-offset);box-sizing:border-box;flex-flow:row;justify-content:space-between;align-items:center;column-gap:10px;height:auto;display:flex}.app-header__mobile-backdrop{bottom:0;left:0;right:0;top:var(--app-header-offset);z-index:1185;opacity:0;pointer-events:none;background:#0f172a73;transition:opacity .2s;display:block;position:fixed}.app-header--mobile-nav-open .app-header__mobile-backdrop{opacity:1;pointer-events:auto}.app-header__menu-toggle{border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-text) 6%, var(--color-surface));width:44px;height:44px;color:var(--color-text-strong);cursor:pointer;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:background .15s;display:inline-flex}.app-header__menu-toggle:hover{background:color-mix(in srgb, var(--color-text) 10%, var(--color-surface))}.app-header__menu-toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 45%, transparent);outline-offset:2px}.app-header__brand-cluster{flex-flow:row;flex:1;align-items:center;gap:8px;min-width:0;display:flex;position:relative}.app-header__nav-rail{left:0;top:var(--app-header-offset);width:min(320px,92vw);height:calc(100dvh - var(--app-header-offset));max-height:calc(100dvh - var(--app-header-offset));padding:12px 12px calc(12px + env(safe-area-inset-bottom,0px));border-right:1px solid var(--color-border);box-shadow:var(--shadow-lg);z-index:1195;transition:transform .22s var(--ease-out);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--color-surface);border-top:none;border-bottom:none;border-left:none;border-radius:0;margin:0;position:fixed;overflow-y:auto;transform:translate(-100%)}.app-header--mobile-nav-open .app-header__nav-rail{transform:translate(0,0)}.app-header__primary-nav{flex-flow:column;align-items:stretch;gap:8px;min-width:0}.app-header__nav-link{white-space:normal;justify-content:flex-start;width:100%;min-height:48px;padding:10px 14px;font-size:1rem}.app-header__nav-label{display:inline!important}.app-header__brand{flex-shrink:0;font-size:1.1rem}.app-header__right{flex-shrink:0}}@media (width<=520px){.app-header{padding-left:max(10px, env(safe-area-inset-left,0px));padding-right:max(10px, env(safe-area-inset-right,0px))}.app-header__nav-rail{width:min(100vw,320px);padding-left:max(12px, env(safe-area-inset-left,0px))}.app-header__brand{font-size:1.125rem}}@media (prefers-reduced-motion:reduce){.app-header__sources-dropdown,.app-header__admin-dropdown{animation:none}.app-header__nav-chevron,.app-header__nav-rail,.app-header__mobile-backdrop{transition:none}}.debug-panel{z-index:1000;min-width:min(220px,100vw - 24px);max-width:min(320px,100vw - 24px);font-family:var(--font-sans);font-size:var(--font-size-xs);background:color-mix(in srgb, var(--color-surface) 94%, var(--color-bg));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-bold);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);line-height:1.45;position:absolute;bottom:12px;left:12px;overflow:hidden}.debug-panel--open{max-width:min(360px,100vw - 24px)}.debug-panel__toolbar{background:var(--color-surface-muted);border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;display:flex}.debug-panel--open .debug-panel__toolbar{border-bottom-color:var(--color-border)}.debug-panel__meta{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.debug-panel__preview{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-secondary);background:color-mix(in srgb, var(--color-text) 6%, var(--color-surface));border-radius:4px;flex-shrink:0;padding:2px 6px;font-weight:600}.debug-panel__title{font-family:var(--font-sans);font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.debug-panel__context{text-transform:none;letter-spacing:normal;color:var(--color-text-secondary);font-weight:500}.debug-panel__toggle{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--font-size-xs);cursor:pointer;transition:background var(--transition-fast) ease, border-color var(--transition-fast) ease, color var(--transition-fast) ease;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;margin:0;padding:4px 8px;font-weight:500;display:inline-flex}.debug-panel__toggle:hover{background:var(--color-surface-subtle);color:var(--color-text-strong)}.debug-panel__toggle:focus-visible{outline:2px solid color-mix(in srgb, var(--color-primary) 40%, transparent);outline-offset:1px}.debug-panel__toggle-label{white-space:nowrap}.debug-panel__chevron{opacity:.75;transition:transform var(--transition-fast) ease;flex-shrink:0}.debug-panel__chevron--open{transform:rotate(180deg)}.debug-panel__body{font-family:var(--font-sans);padding:10px 12px}.debug-panel__grid{grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;margin:0;display:grid}.debug-panel__dt{font-family:var(--font-sans);font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0;font-weight:500}.debug-panel__dd{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-strong);text-align:right;word-break:break-all;font-variant-numeric:tabular-nums;margin:0;font-weight:600}.lpf-modal-overlay{z-index:13000;background:color-mix(in srgb, var(--color-bg,#0f1419) 55%, transparent);padding:max(1rem, calc(var(--app-header-height,58px) + .75rem)) 12px 24px;box-sizing:border-box;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.lpf-modal{background:var(--color-surface,#fff);width:min(520px,100%);max-height:min(90vh,900px);color:var(--color-text-strong,#111);border:1px solid var(--color-border,#ddd);border-radius:8px;flex-direction:column;display:flex;box-shadow:0 12px 40px #0000002e}.lpf-modal__head{border-bottom:1px solid var(--color-border,#ddd);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.lpf-modal__head h3{margin:0;font-size:16px;font-weight:700}.lpf-modal__close{cursor:pointer;color:var(--color-text-muted,#666);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;line-height:1}.lpf-modal__close:hover{background:var(--color-surface-muted,#f3f4f6);color:var(--color-text-strong,#111)}.lpf-modal__body{flex:1;padding:14px 16px;overflow-y:auto}.lpf-modal__lead{color:var(--color-text-muted,#666);margin:0 0 14px;font-size:12px;line-height:1.45}.lpf-section{margin-bottom:18px}.lpf-section__title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted,#666);margin:0 0 8px;font-size:11px;font-weight:700}.lpf-hint{color:var(--color-text-muted,#666);margin:0 0 8px;font-size:11px;line-height:1.4}.lpf-presets{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.lpf-preset{border:1px solid var(--color-border,#ddd);background:var(--color-surface,#fff);cursor:pointer;border-radius:4px;padding:5px 10px;font-size:12px}.lpf-preset.is-active{border-color:var(--color-primary,#2563eb);background:color-mix(in srgb, var(--color-primary,#2563eb) 10%, var(--color-surface,#fff));font-weight:600}.lpf-area-row{flex-direction:column;gap:4px;display:flex}.lpf-label{color:var(--color-text-muted,#666);font-size:11px;font-weight:600}.lpf-input{box-sizing:border-box;border:1px solid var(--color-border,#ddd);background:var(--color-surface,#fff);border-radius:4px;width:100%;padding:8px 10px;font-size:13px}.lpf-input:focus{border-color:var(--color-primary,#2563eb);outline:none}.lpf-grid{flex-direction:column;gap:6px;display:flex}.lpf-check-row{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.lpf-swatch{border:1px solid var(--color-border,#ddd);border-radius:2px;flex-shrink:0;width:12px;height:12px}.lpf-two-cols{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=480px){.lpf-two-cols{grid-template-columns:1fr}}.lpf-error{background:var(--color-error-surface,#fef2f2);color:var(--color-error,#b91c1c);border-radius:4px;margin:0;padding:10px 12px;font-size:13px}.lpf-modal__foot{border-top:1px solid color-mix(in srgb, var(--color-border,#ddd) 85%, var(--color-text-strong,#111) 15%);background:color-mix(in srgb, var(--color-text-strong,#111) 3.5%, var(--color-surface,#fff));border-radius:0 0 8px 8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.lpf-modal__foot-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;display:flex}.lpf-foot-btn{appearance:none;box-sizing:border-box;min-height:40px;font:inherit;letter-spacing:.01em;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;margin:0;padding:0 18px;font-size:13px;font-weight:600;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s;display:inline-flex}.lpf-foot-btn:focus{outline:none}.lpf-foot-btn:focus-visible{box-shadow:0 0 0 2px var(--color-surface,#fff), 0 0 0 4px color-mix(in srgb, var(--color-primary,#2563eb) 45%, transparent);outline:none}.lpf-foot-btn:active:not(:disabled){transform:scale(.98)}.lpf-foot-btn--primary{color:var(--color-on-accent,#fff);background:var(--color-primary,#2563eb);border-color:color-mix(in srgb, var(--color-primary,#2563eb) 88%, #000 12%);box-shadow:0 1px 2px color-mix(in srgb, var(--color-text-strong,#111) 12%, transparent)}.lpf-foot-btn--primary:hover{background:var(--color-primary-hover,#1d4ed8);border-color:color-mix(in srgb, var(--color-primary-hover,#1d4ed8) 90%, #000 10%);box-shadow:0 2px 8px color-mix(in srgb, var(--color-primary,#2563eb) 35%, transparent)}.lpf-foot-btn--secondary{color:var(--color-text-strong,#111);background:var(--color-surface,#fff);border-color:color-mix(in srgb, var(--color-border,#ddd) 92%, var(--color-text-strong,#111) 8%)}.lpf-foot-btn--secondary:hover{background:color-mix(in srgb, var(--color-text-strong,#111) 5%, var(--color-surface,#fff));border-color:color-mix(in srgb, var(--color-text-strong,#111) 18%, var(--color-border,#ddd))}.lpf-foot-btn--ghost{min-height:36px;color:var(--color-text-muted,#666);background:0 0;border-color:#0000;border-radius:8px;margin:0 0 0 -4px;padding:0 12px;font-size:12px;font-weight:500;text-decoration:none}.lpf-foot-btn--ghost:hover{color:var(--color-text-strong,#111);background:color-mix(in srgb, var(--color-text-strong,#111) 6%, var(--color-surface,#fff))}@media (width<=440px){.lpf-modal__foot{flex-direction:column-reverse;align-items:stretch;gap:10px}.lpf-modal__foot-actions{flex-direction:column-reverse;width:100%;margin-left:0}.lpf-modal__foot-actions .lpf-foot-btn{width:100%}.lpf-foot-btn--ghost{align-self:center;margin-top:4px}}.control-panel{top:var(--layout-floating-panel-top);z-index:1000;width:272px;max-height:var(--layout-floating-panel-max-height);font-family:var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:none;border-radius:6px;flex-direction:column;font-size:13px;line-height:1.35;display:flex;position:fixed;right:16px;overflow:hidden}.control-panel--collapsed{width:auto;min-width:40px;max-width:48px;max-height:none;overflow:visible}.control-panel__header{border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.control-panel--collapsed .control-panel__header{border-bottom:none;flex-direction:column;padding:10px 8px}.control-panel__title{letter-spacing:.06em;text-transform:uppercase;min-width:0;color:var(--color-text-muted);flex:1;margin:0;font-size:12px;font-weight:600;line-height:1.2}.control-panel__collapse-btn{width:28px;height:28px;color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.control-panel__collapse-btn:hover{background:color-mix(in srgb, var(--color-text) 5%, transparent);color:var(--color-text-strong)}.control-panel--collapsed .control-panel__collapse-btn{width:32px;height:32px}.control-panel__collapse-icon{border-bottom:1.5px solid;border-right:1.5px solid;width:7px;height:7px;margin-left:-2px;display:block;transform:rotate(-45deg)}.control-panel--collapsed .control-panel__collapse-icon{margin-left:2px;transform:rotate(135deg)}.control-panel__body{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 18%, transparent) transparent;flex:1;min-height:0;padding:12px 14px 14px;overflow:hidden auto}.control-panel__body::-webkit-scrollbar{width:4px}.control-panel__body::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-text) 20%, transparent);border-radius:2px}.section{margin-bottom:0}.section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 8px;font-size:10px;font-weight:600}.layer-group{border-top:1px solid var(--color-border);margin:0;padding:14px 0 2px}.layer-group:first-of-type{border-top:none;padding-top:2px}.layer-group-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0;padding:0;font-size:10px;font-weight:600}.layer-group-toggle{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;border-radius:4px;align-items:center;gap:7px;margin:0 0 8px;padding:5px 4px;transition:background-color .1s;display:flex}.layer-group-toggle:hover{background:color-mix(in srgb, var(--color-text) 4%, transparent)}.layer-group-toggle:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.layer-group-toggle__chevron{border-right:1.5px solid var(--color-text-muted);border-bottom:1.5px solid var(--color-text-muted);flex-shrink:0;width:6px;height:6px;margin-top:1px;transition:transform .15s;display:block;transform:rotate(-45deg)}.layer-group-toggle[aria-expanded=false] .layer-group-toggle__chevron{transform:rotate(45deg)}.layer-group__body{margin:0;padding:0}.layer-control{border-radius:0;align-items:flex-start;gap:10px;margin:0 0 2px;padding:6px 0;transition:none;display:flex}.layer-control:hover{background:0 0}.layer-control input[type=checkbox],.layer-control input[type=radio]{cursor:pointer;width:14px;height:14px;accent-color:var(--color-primary);border-radius:2px;flex-shrink:0;margin:2px 0 0}.layer-control input[type=radio]{border-radius:50%}.layer-control label{cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.layer-swatch{width:3px;min-height:15px;box-shadow:none;border:none;border-radius:1px;flex-shrink:0;align-self:stretch;margin-top:2px;display:block}.layer-swatch--gradient{min-height:18px}.layer-swatch--striped{min-height:15px}.layer-swatch--outline{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--color-primary) 65%, var(--color-border));border-radius:1px;align-self:flex-start;width:10px;min-width:10px;height:10px;min-height:10px;margin-top:4px;background:0 0!important}.layer-label{color:var(--color-text-strong);flex-direction:column;align-items:flex-start;gap:1px;font-size:12.5px;font-weight:500;line-height:1.3;display:flex}.layer-label-hint{letter-spacing:.02em;color:var(--color-text-muted);font-size:10px;font-weight:400;line-height:1.25;display:block}.layer-territories-exclusive-hint{color:var(--color-text-muted);margin:0 0 8px;padding:0 2px;font-size:11px;line-height:1.35}.layer-info{color:var(--color-text-muted);margin:4px 0 2px 24px;font-size:11px;line-height:1.35}.status{border:1px solid #0000;border-radius:4px;margin:0 0 12px;padding:8px 10px;font-size:12px;line-height:1.4}.status.error{background:var(--color-error-surface);color:var(--color-error);border-color:var(--color-error-border-light)}.status.loading{background:var(--color-info-bg-subtle);color:var(--color-primary);border-color:var(--color-info-border-strong)}.status.success{background:var(--color-success-surface);color:var(--color-success);border-color:var(--color-success-border-light)}.search-section{border-bottom:1px solid var(--color-border);margin:0 0 4px;padding:0 0 12px}.search-form{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;align-items:stretch;gap:0;display:flex;overflow:hidden}.search-input{min-width:0;color:var(--color-text-strong);background:0 0;border:none;border-radius:0;outline:none;flex:1;padding:8px 10px;font-size:12px}.search-input::placeholder{color:var(--color-text-hint)}.search-input:focus{box-shadow:inset 0 0 0 1px var(--color-primary)}.search-input:disabled{opacity:.55;cursor:not-allowed}.search-button{letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-text) 4%, transparent);border:none;border-left:1px solid var(--color-border);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast);flex-shrink:0;margin:0;padding:8px 12px;font-size:11px;font-weight:600}.search-button:hover:not(:disabled){color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.search-button:disabled{opacity:.45;cursor:not-allowed}.search-error{color:var(--color-error);margin-top:6px;font-size:11px;line-height:1.3}.landplot-filters{margin-top:6px;margin-left:24px;padding:8px 0}.filter-group{margin-bottom:8px}.filter-group:last-child{margin-bottom:0}.filter-label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:5px;font-size:10px;font-weight:600;display:block}.filter-inputs{align-items:center;gap:6px;display:flex}.filter-input{border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;outline:none;flex:1;padding:6px 8px;font-size:12px}.filter-input:focus{border-color:var(--color-primary)}.filter-separator{color:var(--color-text-hint);padding:0 4px;font-size:12px}.filter-select{border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;border-radius:4px;outline:none;width:100%;padding:6px 8px;font-size:12px}.filter-select:focus{border-color:var(--color-primary)}.egrn-filters-panel{border-top:1px solid var(--color-border);margin:0 0 8px;padding:12px 0 4px}.egrn-filters-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 8px;font-size:10px;font-weight:600;line-height:1.2}.egrn-filter-type-wrap{margin-top:8px}.egrn-filter-type-label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:5px;font-size:10px;font-weight:600;display:block}.egrn-filter-type-input{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);border-radius:4px;width:100%;padding:7px 9px;font-size:12px}.egrn-filter-type-input:focus{border-color:var(--color-primary);outline:none}.layer-nested-panel{border-left:1px solid color-mix(in srgb, var(--color-border) 88%, transparent);margin:6px 0 10px 22px;padding:0 0 2px 12px}.landplot-purpose-field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 6px;font-size:10px;font-weight:600;display:block}.control-panel .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.landplot-purpose-presets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.landplot-purpose-vri-picker{margin-top:8px}.landplot-purpose-summary{color:var(--color-text-muted);margin:10px 0 8px;font-size:11px;line-height:1.45}.control-panel .landplot-purpose-filters-btn{appearance:none;box-sizing:border-box;width:100%;font:inherit;letter-spacing:.02em;color:var(--color-text-muted);background:color-mix(in srgb, var(--color-text) 4.5%, transparent);border:1px solid color-mix(in srgb, var(--color-border) 92%, var(--color-text) 8%);cursor:pointer;transition:color var(--transition-fast), background-color var(--transition-fast), border-color var(--transition-fast);border-radius:4px;margin-top:6px;padding:8px 26px 8px 12px;font-size:11px;font-weight:500;line-height:1.3;display:block;position:relative}.control-panel .landplot-purpose-filters-btn:hover{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 9%, var(--color-surface));border-color:color-mix(in srgb, var(--color-primary) 28%, var(--color-border))}.control-panel .landplot-purpose-filters-btn:focus{outline:none}.control-panel .landplot-purpose-filters-btn:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary) 35%, transparent);outline:none}.control-panel .landplot-purpose-filters-btn:active{background:color-mix(in srgb, var(--color-primary) 14%, var(--color-surface))}.control-panel .landplot-purpose-filters-btn__label{text-align:center;display:block}.control-panel .landplot-purpose-filters-btn:after{content:"";opacity:.5;pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;margin-top:-3px;position:absolute;top:50%;right:12px;transform:rotate(-45deg)}.control-panel .landplot-purpose-filters-btn:hover:after{opacity:.8}.landplot-purpose-preset{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-strong);cursor:pointer;border-radius:4px;padding:4px 8px;font-size:11px;line-height:1.3}.landplot-purpose-preset:hover{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border))}.landplot-purpose-preset.is-active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, var(--color-surface));font-weight:600}.landplot-purpose-area-row{align-items:stretch;gap:0;margin-bottom:6px;display:flex}.landplot-purpose-number-input{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-surface);min-width:0;color:var(--color-text-strong);border-right:none;border-radius:4px 0 0 4px;flex:1;padding:6px 8px;font-size:12px;line-height:1.35}.landplot-purpose-number-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary);z-index:1;outline:none}.landplot-purpose-area-suffix{color:var(--color-text-muted);border:1px solid var(--color-border);background:var(--color-surface-muted);border-radius:0 4px 4px 0;align-items:center;padding:0 10px;font-size:12px;display:flex}.landplot-purpose-min-area-hint{color:var(--color-text-muted);margin:0 0 11px;font-size:10px;line-height:1.4}.layer-category-picker__title{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 5px;font-size:10px;font-weight:600;display:block}.layer-category-picker__grid{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--color-text) 16%, transparent) transparent;flex-direction:column;gap:0;max-height:min(210px,38vh);margin:0 -2px 0 0;padding:1px 2px 2px 0;display:flex;overflow:hidden auto}.layer-category-picker__grid::-webkit-scrollbar{width:3px}.layer-category-picker__grid::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--color-text) 18%, transparent);border-radius:2px}.layer-category-row{cursor:pointer;min-height:27px;color:var(--color-text-secondary);border-radius:4px;grid-template-columns:13px 3px minmax(0,1fr);align-items:center;column-gap:8px;margin:0 0 0 -2px;padding:1px 6px 1px 2px;font-size:11px;line-height:1.3;transition:background-color .1s;display:grid}.layer-category-row:hover{background:color-mix(in srgb, var(--color-text) 4%, transparent)}.layer-category-row__input{cursor:pointer;width:13px;height:13px;accent-color:var(--color-primary);margin:0}.layer-category-row__swatch{border-radius:1px;flex-shrink:0;width:3px;height:13px}.layer-category-row__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.viewport-stats-section{border-top:1px solid var(--color-border);margin-top:4px;padding-top:14px}.viewport-stats-title{letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 10px;font-size:10px;font-weight:600}.viewport-stats{flex-direction:column;gap:2px;display:flex}.viewport-stat-item{border-bottom:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);justify-content:space-between;align-items:baseline;gap:12px;min-width:0;padding:4px 0;font-size:12px;display:flex}.viewport-stat-item .stat-label,.viewport-stat-item .stat-value{min-width:0}.viewport-stat-item:last-of-type{border-bottom:none}.viewport-stat-detail{color:var(--color-text-muted);justify-content:space-between;align-items:baseline;gap:12px;min-width:0;margin-left:0;padding:2px 0 6px;font-size:11px;display:flex}.viewport-stat-detail .stat-label,.viewport-stat-detail .stat-value{min-width:0}.viewport-stat-detail .stat-value{text-overflow:ellipsis;white-space:nowrap;text-align:right;flex-shrink:1;overflow:hidden}.stat-label{color:var(--color-text-muted);font-weight:400}.stat-value{font-variant-numeric:tabular-nums;color:var(--color-text-strong);text-align:right;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;font-size:12px;font-weight:600;overflow:hidden}.viewport-stats-loading{color:var(--color-text-muted);padding:8px 0;font-size:11px}.viewport-stats-empty{color:var(--color-text-hint);padding:8px 0;font-size:11px;line-height:1.4}.viewport-purpose-breakdown{border-top:1px dashed color-mix(in srgb, var(--color-border) 85%, transparent);margin-top:10px;padding-top:10px}.viewport-purpose-breakdown__total{margin-bottom:6px}.viewport-purpose-breakdown__list{flex-direction:column;gap:4px;margin:0 0 8px;padding:0;list-style:none;display:flex}.viewport-purpose-breakdown__row{grid-template-columns:12px 1fr auto;align-items:center;gap:8px 10px;font-size:12px;line-height:1.35;display:grid}.viewport-purpose-breakdown__swatch{border:1px solid color-mix(in srgb, var(--color-border) 70%, transparent);border-radius:2px;width:10px;height:10px}.viewport-purpose-breakdown__name{color:var(--color-text-strong);word-break:break-word;min-width:0}.viewport-purpose-breakdown__count{font-variant-numeric:tabular-nums;color:var(--color-text-muted);font-weight:600}.viewport-purpose-breakdown__hint{color:var(--color-text-muted);margin:0;font-size:10px;line-height:1.4}.layer-color{border:none;border-radius:1px;flex-shrink:0;width:3px;height:12px;margin-right:0}.kbd-help-overlay{z-index:10000;background:color-mix(in srgb, var(--color-text) 32%, transparent);justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.kbd-help-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:1.25rem 1.5rem}.kbd-help-modal h3{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text-strong);margin:0 0 1rem;font-size:1.15rem;font-weight:700}.kbd-help-list{grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:0;font-size:.9rem;display:grid}.kbd-help-list dt{font-weight:600;font-family:var(--font-mono)}.kbd-help-list dd{margin:0}.kbd-help-close{border-radius:var(--radius-sm);border:1px solid var(--color-border-bold);background:var(--color-surface-muted);cursor:pointer;margin-top:1.25rem;padding:.45rem 1rem}.kbd-help-close:hover{background:color-mix(in srgb, var(--color-text) 6%, var(--color-surface))}.confirm-dialog-backdrop{z-index:10050;background:#0f172a73;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.confirm-dialog{width:100%;max-width:min(420px,100vw)}.confirm-dialog__title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600}.confirm-dialog__message{color:var(--color-text-muted,#64748b);margin:0 0 1.25rem;line-height:1.5}.confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.confirm-dialog__btn-confirm{background:var(--color-danger,#b91c1c);color:#fff;cursor:pointer;font:inherit;border:none;border-radius:6px;padding:.5rem 1rem}.confirm-dialog__btn-confirm:hover{filter:brightness(1.05)}.login-container{min-height:100dvh;padding:max(var(--spacing-lg), env(safe-area-inset-top,0px)) max(var(--spacing-lg), env(safe-area-inset-right,0px)) max(var(--spacing-lg), env(safe-area-inset-bottom,0px)) max(var(--spacing-lg), env(safe-area-inset-left,0px));background:var(--color-bg);justify-content:center;align-items:center;display:flex}.login-box{width:100%;max-width:400px;padding:var(--spacing-xl);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-box h2{margin:0 0 var(--spacing-lg);text-align:center;font-family:var(--font-display);font-size:var(--font-size-xl);letter-spacing:-.02em;color:var(--color-text-strong);font-weight:700}.login-box .form-group{margin-bottom:var(--spacing-md)}.login-box .form-group label{margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:500;display:block}.login-box .form-group input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);width:100%;font-size:max(16px, var(--font-size-md));font-family:var(--font-family);color:var(--color-text-strong);background:var(--color-surface);transition:border-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease;box-sizing:border-box;padding:12px 14px}.login-box .form-group input::placeholder{color:var(--color-text-muted)}.login-box .form-group input:focus{border-color:var(--color-accent);box-shadow:var(--focus-ring);outline:none}.login-box .form-group input:disabled{background:var(--color-surface-subtle);cursor:not-allowed;color:var(--color-text-muted)}.login-button{width:100%;margin-top:var(--spacing-sm);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-accent);font-size:var(--font-size-md);font-family:var(--font-sans);cursor:pointer;transition:background var(--transition-fast) ease, filter var(--transition-fast) ease;border:none;padding:12px 16px;font-weight:600}.login-button:hover:not(:disabled){background:var(--color-primary-hover)}.login-button:active:not(:disabled){filter:brightness(.95)}.login-button:disabled{opacity:.55;cursor:not-allowed}@media (width<=520px){.login-container{padding-top:max(var(--spacing-md), env(safe-area-inset-top,0px));align-items:flex-start}.login-box{padding:var(--spacing-lg);border-radius:var(--radius-md);max-width:none}.login-box h2{font-size:clamp(1.25rem,5vw,1.5rem)}.login-button{min-height:48px;padding:14px 16px}}.app{flex-direction:column;width:100%;height:100vh;max-height:100vh;display:flex;position:relative;overflow:hidden}.app:has(.database-browser){overflow:hidden}.app.table-view-active{height:100vh;max-height:100vh;overflow:hidden}.app.table-view-active .app-main{flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.app-main{flex:1;min-height:0;position:relative;overflow:hidden}.app-map-shell{z-index:1;position:absolute;inset:0}.app-map-shell--parked{visibility:hidden;pointer-events:none;z-index:0}.app-view-stacked{z-index:2;background:var(--color-bg-subtle);flex-direction:column;min-height:0;display:flex;position:absolute;inset:0;overflow:hidden}.app-view-stacked>*{flex:1 1 0;min-width:0;min-height:0}.app-view-fallback{text-align:center;color:var(--color-text-secondary);padding:2rem}@media (width<=768px){.app,.app.table-view-active{height:100dvh;max-height:100dvh}}:root{--font-sans:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Syne", "Outfit", system-ui, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--font-family:var(--font-sans);--color-bg:#e8ecf2;--color-bg-subtle:#f1f5f9;--color-surface:#fff;--color-surface-muted:#f1f5f9;--color-surface-subtle:#f1f5f9;--color-surface-pressed:#e2e8f0;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-border-legacy:#e2e8f0;--color-border-light:#f1f5f9;--color-border-bold:#cbd5e1;--color-divider:#0f172a14;--color-text:#0f172a;--color-text-strong:#0f172a;--color-text-muted:#64748b;--color-text-subtle:#94a3b8;--color-text-secondary:#475569;--color-text-hint:#94a3b8;--color-primary:#1d6cff;--color-primary-hover:#155ceb;--color-primary-pressed:#1247c4;--color-primary-soft:#1d6cff1f;--color-primary-soft-hover:#1d6cff2e;--color-primary-dark:var(--color-primary-hover);--color-primary-light:#3b82f6;--color-accent:var(--color-primary);--color-accent-hover:var(--color-primary-hover);--color-accent-active:var(--color-primary-pressed);--color-accent-light:var(--color-primary-light);--color-accent-mix:#1d6cff1f;--color-accent-subtle:var(--color-primary-soft);--color-accent-border-soft:#1d6cff47;--color-danger:#dc2626;--color-danger-soft:#fef2f2;--color-success:#059669;--color-success-emphasis:#047857;--color-warning:#d97706;--color-error:var(--color-danger);--color-info:#0369a1;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--shadow-xs:0 1px 2px #0f172a0d;--shadow-sm:0 2px 8px #0f172a0f;--shadow-md:0 8px 30px #0f172a14;--shadow-lg:0 20px 50px #0f172a1f;--nav-height:72px;--app-header-height:var(--nav-height);--app-sidebar-rail-collapsed:64px;--app-sidebar-rail-expanded:240px;--ease-out:cubic-bezier(.22, 1, .36, 1);--transition-fast:.15s var(--ease-out);--transition-normal:.22s var(--ease-out);--transition-slow:.3s var(--ease-out);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--layout-sticky-header-gutter:var(--spacing-xs);--layout-sticky-below-header-top:calc(var(--app-header-height,58px) + var(--layout-sticky-header-gutter));--layout-sticky-panel-bottom-clearance:10px;--layout-viewport-max-height-under-header:calc(100vh - var(--app-header-height,58px) - var(--layout-sticky-panel-bottom-clearance));--layout-feed-post-scroll-margin-extra:12px;--layout-feed-post-scroll-margin-top:calc(var(--app-header-height,58px) + var(--layout-feed-post-scroll-margin-extra));--layout-floating-panel-top-gutter:10px;--layout-floating-panel-bottom-clearance:20px;--layout-floating-panel-top:calc(var(--app-header-height,58px) + var(--layout-floating-panel-top-gutter));--layout-floating-panel-max-height:calc(100vh - var(--app-header-height,58px) - var(--layout-floating-panel-bottom-clearance));--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:24px;--color-on-accent:#fff;--focus-ring-color:var(--color-primary);--focus-ring:0 0 0 3px var(--color-primary-soft);--color-warning-surface:#fff7ed;--color-warning-text:#c2410c;--color-warning-border-soft:#fed7aa;--color-amber-ink:#92400e;--color-amber-surface:#fffbeb;--color-amber-border:#fde68a;--color-amber-text:#78350f;--color-primary-surface:#eff6ff;--color-info-bg-subtle:#dbeafe;--color-info-bg-medium:#bfdbfe;--color-info-border-strong:#93c5fd;--color-success-surface:#d1fae5;--color-success-border-light:#6ee7b7;--color-error-surface:#fef2f2;--color-error-border-light:#fecaca;--color-crm-purple:#9333ea;--color-crm-purple-surface:#f3e8ff;--color-crm-purple-dark:#6b21a8;--color-success-grad-end:#bbf7d0;--color-error-grad-end:#fecaca;--color-bg-secondary:var(--color-bg-subtle);--color-bg-hover:var(--color-surface-subtle);--color-dark-surface:#18181b;--color-dark-elevated:#27272a;--color-dark-shimmer-mid:#3f3f46;--color-bg-legacy-card:var(--color-surface);--content-narrow-max-width:500px;--content-page-lead-max-width:38rem;--content-prose-narrow-max:28rem;--content-prose-medium-max:40rem;--content-system-lead-max:42rem;--content-prose-medium-wide-max:46rem;--content-container-max:48rem;--content-prose-wide-max:52rem;--content-page-lead-markup-wide:var(--content-prose-wide-max);--telegram-feed-column-max:var(--content-narrow-max-width);--telegram-markup-shell-max:1180px;--telegram-markup-column-gap:.65rem;--telegram-markup-tools-column-min:252px;--telegram-markup-work-max:min(calc(var(--telegram-feed-column-max) + var(--telegram-markup-column-gap) + var(--telegram-feed-column-max)), 100%);--telegram-feed-muted-band-half:50rem;--telegram-markup-sticky-nav-offset:3.85rem;--crm-kanban-detail-panel-width:var(--content-narrow-max-width)}@media (prefers-reduced-motion:reduce){:root{--transition-fast:.01ms;--transition-normal:.01ms;--transition-slow:.01ms}}@media (width<=768px){:root{--nav-height:64px;--app-header-height:var(--nav-height);--font-size-xs:13px;--font-size-sm:15px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:22px}}@media (width<=520px){:root{--nav-height:60px;--app-header-height:var(--nav-height)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-sans);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg);text-rendering:optimizelegibility;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);margin:0;font-size:15px;line-height:1.5}code{font-family:var(--font-mono);font-size:.9em}body.table-view{overflow:hidden}#root{width:100%;max-width:100%;min-height:100dvh;overflow-x:hidden}body.app-mobile-nav-open{touch-action:none;overflow:hidden}.leaflet-control-attribution{display:none!important}*{box-sizing:border-box}.btn{border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-normal);justify-content:center;align-items:center;gap:var(--spacing-xs);border:none;padding:.5rem 1rem;display:inline-flex}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{background-color:var(--color-primary);color:var(--color-on-accent)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-bg-secondary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.table{border-collapse:collapse;background-color:var(--color-surface);width:100%}.table thead{background-color:var(--color-bg-subtle)}.table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;color:var(--color-text);border-bottom:2px solid var(--color-border);font-weight:600}.table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.table tbody tr:hover{background-color:var(--color-bg-hover)}.form-group{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);color:var(--color-text);font-weight:500}.form-input,.form-select{padding:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);transition:border-color var(--transition-normal)}.form-input:focus,.form-select:focus{border-color:var(--color-primary);outline:none}.text-center{text-align:center}.text-muted{color:var(--color-text-muted)}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.container{max-width:1200px;margin:0 auto;padding:0 20px}@media (width<=768px){.btn{min-height:44px;font-size:var(--font-size-sm);padding:.5rem 1.1rem}.container{padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px))}html{-webkit-tap-highlight-color:color-mix(in srgb, var(--color-primary) 18%, transparent);font-size:16px;overflow-x:hidden}body{overscroll-behavior-x:none;font-size:1rem;line-height:1.55}table{font-size:.9375rem}.modal-content{width:min(95vw, calc(100vw - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));max-width:95vw;max-height:calc(100dvh - 2rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:1rem auto;padding:1rem;overflow-y:auto}.control-panel{left:max(8px, env(safe-area-inset-left,0px));right:max(8px, env(safe-area-inset-right,0px));width:auto;max-width:none;top:calc(var(--app-header-height) + env(safe-area-inset-top,0px) + 8px);max-height:calc(100dvh - var(--app-header-height) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px);padding:0;font-size:.9375rem;line-height:1.45}.control-panel .control-panel__title{font-size:.8125rem}.control-panel .control-panel__collapse-btn{width:40px;min-width:40px;height:40px;min-height:40px}.control-panel.control-panel--collapsed .control-panel__collapse-btn{width:44px;height:44px}.control-panel.control-panel--collapsed{width:auto;max-width:52px;max-height:none;left:auto;right:max(10px, env(safe-area-inset-right,0px))}.map-container{min-height:220px;height:calc(100dvh - var(--app-header-height) - env(safe-area-inset-top,0px) - 180px);height:calc(100vh - var(--app-header-height) - env(safe-area-inset-top,0px) - 180px)}}@media (width<=480px){body{font-size:1rem;line-height:1.55}table{font-size:.875rem}.secondary-info{display:none}}@media (width<=768px) and (orientation:portrait){.map-container{height:min(52dvh, calc(100dvh - var(--app-header-height) - env(safe-area-inset-top,0px) - 140px));height:min(52vh, calc(100vh - var(--app-header-height) - env(safe-area-inset-top,0px) - 140px))}}@media (width<=1024px) and (orientation:landscape){.map-container{height:min(72dvh, calc(100dvh - var(--app-header-height) - env(safe-area-inset-top,0px) - 80px));height:min(72vh, calc(100vh - var(--app-header-height) - env(safe-area-inset-top,0px) - 80px))}}@media (hover:none) and (pointer:coarse){button,a[role=button],input[type=submit],input[type=button],input[type=reset],input[type=checkbox],input[type=radio],select{touch-action:manipulation;min-height:44px}input[type=text],input[type=email],input[type=password],input[type=search],input[type=url],input[type=tel],textarea{min-height:44px;font-size:16px}.clickable{padding:.75rem}.app-header a,.app-header button{touch-action:manipulation}}.Toastify__toast{font-family:var(--font-sans);font-size:var(--font-size-sm);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:1px solid var(--color-divider)}.Toastify__toast--success,.Toastify__toast--error,.Toastify__toast--info,.Toastify__toast--warning{background:var(--color-surface);color:var(--color-text-strong)}.Toastify__progress-bar--success{background:var(--color-success)}.Toastify__progress-bar--error{background:var(--color-error)}.Toastify__progress-bar--info{background:var(--color-accent)}.Toastify__progress-bar--warning{background:var(--color-warning)}.Toastify__close-button{color:var(--color-text-muted);opacity:.8}.Toastify__close-button:hover{opacity:1;color:var(--color-text-strong)}
