:root,:root[data-theme=light]{--brand-foreground:#01576f;--brand-background:#446866;--brand-dark:#272c32;--brand-light:#e7e4c9;--background:#f7f6ef;--surface-primary:#fff;--surface-secondary:#f4f3ec;--surface-tertiary:#e9e8df;--surface-hover:#e7e4c9;--text:#446866;--text-primary:#272c32;--text-heading:#272c32;--text-muted:#5f6c6c;--text-on-dark:#e7e4c9;--text-on-accent:#d5d2bd;--border:#d9d7c6;--border-subtle:#e5e4d8;--code-background:#f0efe7;--social-background:#e7e4c973;--drawing-layer-color:var(--color-accent);--drawing-layer-fill:var(--color-accent);--color-accent:#01576f;--color-accent-hover:#01465a;--color-accent-dark:#272c32;--color-accent-50:#edf5f6;--color-accent-100:#d8e8ea;--color-accent-200:#b5d1d5;--color-accent-300:#7fa9b0;--color-accent-a18:#01576f2e;--color-accent-a20:#01576f33;--color-accent-a25:#01576f40;--color-accent-a35:#01576f59;--color-accent-200-a80:#b5d1d5cc;--accent-contrast:#fff;--category-default-start:#01576f;--category-default-end:#446866;--category-device-fallback:#272c32;--surface-primary-a55:#ffffff8c;--component-shadow-soft:0 1px 3px #272c321a;--status-success-text:#166534;--status-success-background:#f0fdf4;--status-success-border:#bbf7d0;--status-error-text:#991b1b;--status-error-background:#fef2f2;--status-error-background-hover:#fee2e2;--status-error-border:#fecaca;--status-danger-action:#dc2626;--status-danger-action-hover:#b91c1c;--color-white:#fff;--color-gray-50:#f8f8f3;--color-gray-100:#f0efe8;--color-gray-200:#e3e1d6;--color-gray-300:#cfcdc0;--color-gray-400:#9aa09b;--color-gray-500:#66706e;--color-gray-600:#4e5958;--color-gray-700:#374342;--color-gray-800:#2e363a;--color-gray-900:#272c32;--color-slate-50:#f6f7f4;--surface-shadow:#272c321f 0 10px 15px -3px, #272c320f 0 4px 6px -2px;--color-green-50:#f0fdf4;--color-green-200:#bbf7d0;--color-green-500:#22c55e;--color-green-800:#166534;--color-green-900:#14532d;--color-lime-500:#84cc16;--color-lime-900:#365314;--color-amber-50:#fffbeb;--color-amber-200:#fde68a;--color-amber-500:#f59e0b;--color-amber-800:#92400e;--color-red-50:#fef2f2;--color-red-200:#fecaca;--color-red-500:#ef4444;--color-red-600:#dc2626;--color-red-700:#b91c1c;--color-red-800:#991b1b;--color-black-a08:#00000014;--color-black-a09:#00000017;--color-black-a12:#0000001f;--color-black-a15:#00000026;--color-black-a16:#00000029;--color-black-a18:#0000002e;--color-black-a28:#00000047;--color-black-a35:#00000059;--color-black-a70:#000000b3;--color-white-a10:#ffffff1a;--color-white-a55:#ffffff8c;--color-white-a75:#ffffffbf;--color-white-a92:#ffffffeb;--color-white-a94:#fffffff0;--color-white-a95:#fffffff2;--color-white-a97:#fffffff7;--color-white-a98:#fffffffa;--color-gray-300-a90:#cfcdc0e6;--color-gray-900-a55:#272c328c;--color-gray-900-a97:#272c32f7;--color-slate-900-a10:#272c321a;--color-slate-900-a18:#272c322e;--color-red-50-a96:#fef2f2f5;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-heading:var(--font-sans);--font-mono:ui-monospace, SFMono-Regular, Consolas, monospace;--drawing-color-red:#dc2626;--drawing-color-orange:#ea580c;--drawing-color-amber:#d97706;--drawing-color-yellow:#eab308;--drawing-color-lime:#84cc16;--drawing-color-green:#16a34a;--drawing-color-teal:#0d9488;--drawing-color-cyan:#0891b2;--drawing-color-blue:#2563eb;--drawing-color-indigo:#4f46e5;--drawing-color-violet:#7c3aed;--drawing-color-magenta:#c026d3;--drawing-color-pink:#db2777;--drawing-color-brown:#92400e;--drawing-color-gray:#4b5563}:root[data-theme=dark]{--background:#1c2024;--surface-primary:#272c32;--surface-secondary:#30373c;--surface-tertiary:#394244;--surface-hover:#446866;--text:#d5d2bd;--text-primary:#f3f1df;--text-heading:#e7e4c9;--text-muted:#b8b7aa;--text-on-dark:#e7e4c9;--text-on-accent:#272c32;--border:#465054;--border-subtle:#3a4347;--code-background:#20262a;--social-background:#44686647;--drawing-layer-color:var(--color-accent);--drawing-layer-fill:var(--color-accent);--color-accent:#7db6c4;--color-accent-hover:#9bc8d2;--color-accent-dark:#01576f;--color-accent-50:#26383d;--color-accent-100:#2d464b;--color-accent-200:#36585d;--color-accent-300:#4e777a;--color-accent-a18:#7db6c42e;--color-accent-a20:#7db6c433;--color-accent-a25:#7db6c440;--color-accent-a35:#7db6c459;--color-accent-200-a80:#36585dcc;--accent-contrast:#172126;--category-default-start:#7db6c4;--category-default-end:#446866;--category-device-fallback:#e7e4c9;--surface-primary-a55:#272c328c;--component-shadow-soft:0 1px 3px #0000003d;--status-success-text:#b7f7c8;--status-success-background:#20392b;--status-success-border:#356b49;--status-error-text:#fecaca;--status-error-background:#482729;--status-error-background-hover:#5a2d30;--status-error-border:#7f3d42;--status-danger-action:#fca5a5;--status-danger-action-hover:#fecaca;--color-gray-50:#30373c;--color-gray-100:#353d42;--color-gray-200:#414b50;--color-gray-300:#596469;--color-gray-400:#8c989a;--color-gray-500:#b0b8b5;--color-gray-600:#c3c8c2;--color-gray-700:#d7d9cf;--color-gray-800:#e7e7dc;--color-gray-900:#f3f1df;--color-slate-50:#343d41;--surface-shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--color-white-a55:#272c328c;--color-white-a75:#272c32bf;--color-white-a94:#272c32f0;--color-white-a95:#272c32f2;--color-white-a97:#272c32f7;--color-white-a98:#272c32fa;--color-gray-300-a90:#596469e6;--color-slate-900-a10:#00000038;--color-slate-900-a18:#00000059}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--background:#1c2024;--surface-primary:#272c32;--surface-secondary:#30373c;--surface-tertiary:#394244;--surface-hover:#446866;--text:#d5d2bd;--text-primary:#f3f1df;--text-heading:#e7e4c9;--text-muted:#b8b7aa;--text-on-dark:#e7e4c9;--text-on-accent:#272c32;--border:#465054;--border-subtle:#3a4347;--code-background:#20262a;--social-background:#44686647;--color-accent:#7db6c4;--color-accent-hover:#9bc8d2;--color-accent-dark:#01576f;--color-accent-50:#26383d;--color-accent-100:#2d464b;--color-accent-200:#36585d;--color-accent-300:#4e777a;--color-accent-a18:#7db6c42e;--color-accent-a20:#7db6c433;--color-accent-a25:#7db6c440;--color-accent-a35:#7db6c459;--color-accent-200-a80:#36585dcc;--accent-contrast:#172126;--category-default-start:#7db6c4;--category-default-end:#446866;--category-device-fallback:#e7e4c9;--surface-primary-a55:#272c328c;--component-shadow-soft:0 1px 3px #0000003d;--status-success-text:#b7f7c8;--status-success-background:#20392b;--status-success-border:#356b49;--status-error-text:#fecaca;--status-error-background:#482729;--status-error-background-hover:#5a2d30;--status-error-border:#7f3d42;--status-danger-action:#fca5a5;--status-danger-action-hover:#fecaca;--color-gray-50:#30373c;--color-gray-100:#353d42;--color-gray-200:#414b50;--color-gray-300:#596469;--color-gray-400:#8c989a;--color-gray-500:#b0b8b5;--color-gray-600:#c3c8c2;--color-gray-700:#d7d9cf;--color-gray-800:#e7e7dc;--color-gray-900:#f3f1df;--color-slate-50:#343d41;--surface-shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--color-white-a55:#272c328c;--color-white-a75:#272c32bf;--color-white-a94:#272c32f0;--color-white-a95:#272c32f2;--color-white-a97:#272c32f7;--color-white-a98:#272c32fa;--color-gray-300-a90:#596469e6;--color-slate-900-a10:#00000038;--color-slate-900-a18:#00000059}}:root{font:18px/145% var(--font-sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2{color:var(--text-heading);font-family:var(--font-heading);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}p{margin:0}code,.counter{color:var(--text-heading);font-family:var(--font-mono);border-radius:4px;display:inline-flex}code{background:var(--code-background);padding:4px 8px;font-size:15px;line-height:135%}@media (width<=1024px){:root{font-size:16px}h1{margin:20px 0;font-size:36px}h2{font-size:20px}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark] #social .button-icon{filter:invert()brightness(2)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) #social .button-icon{filter:invert()brightness(2)}}html,body,#root{width:100%;height:100%;margin:0}body{color:var(--text);background:var(--background);transition:color .16s,background-color .16s}*{box-sizing:border-box}button,input,select,textarea{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-accent-a35);outline-offset:2px}.application-layout{width:100%;height:100%;overflow:hidden}.map-section{width:100%;height:100%;position:relative;overflow:hidden}.map-page,.map-container{width:100%;height:100%}.map-page{position:relative}.map-sidebar{z-index:30;pointer-events:none;display:flex;position:absolute;inset:0 auto 0 0}.map-toolbar{z-index:2;width:58px;height:100%;color:var(--color-gray-50);background:var(--color-gray-900-a97);border-right:1px solid var(--color-white-a10);box-shadow:3px 0 12px var(--color-black-a18);pointer-events:auto;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;display:flex;position:relative}.map-toolbar-brand{-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:10px;flex:none;place-items:center;width:44px;height:44px;margin:0;padding:3px;display:grid;overflow:hidden}.map-toolbar-brand-image{object-fit:contain;width:100%;height:100%;margin:0;display:block}.map-toolbar-button{width:44px;height:44px;color:var(--color-gray-300);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;transition:color .12s,background .12s,transform .12s;display:grid;position:relative}.map-toolbar-button:hover{color:var(--color-white);background:var(--color-white-a10)}.map-toolbar-button:active{transform:scale(.96)}.map-toolbar-button.active{color:var(--color-white);background:var(--color-accent)}.map-toolbar-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:23px;height:23px}.map-toolbar-spacer{flex:1}.toolbar-error-dot{background:var(--color-red-500);border:2px solid var(--color-gray-900);border-radius:999px;width:9px;height:9px;position:absolute;top:6px;right:6px}.map-sidebar-panel{z-index:1;width:min(350px,100vw - 58px);height:100%;color:var(--color-gray-900);background:var(--color-white-a97);border-right:1px solid var(--color-gray-300);box-shadow:5px 0 20px var(--color-black-a16);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;flex-direction:column;animation:.15s ease-out sidebar-panel-in;display:flex;position:relative}@keyframes sidebar-panel-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.sidebar-panel-header{border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:12px 14px 12px 18px;display:flex}.sidebar-panel-title{min-width:0}.sidebar-panel-title h2{margin:0;font-size:1.1rem;line-height:1.25}.sidebar-panel-close{width:38px;height:38px;color:var(--color-gray-600);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;place-items:center;padding:0;display:grid}.sidebar-panel-close:hover{color:var(--color-gray-900);background:var(--color-gray-100)}.sidebar-panel-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:21px;height:21px}.sidebar-panel-body{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;overflow-y:auto}.device-list-content{flex-direction:column;gap:12px;display:flex}.device-overview-button{width:100%;color:var(--color-gray-800);background:var(--color-gray-50);border:1px solid var(--color-gray-300);text-align:left;cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:11px 12px;display:flex}.device-overview-button:hover:not(:disabled){background:var(--color-gray-100)}.device-overview-button:disabled{cursor:wait;opacity:.6}.device-overview-button.active{color:var(--color-accent-hover);background:var(--color-accent-50);border-color:var(--color-accent)}.device-overview-icon{font-size:1.15rem}.device-list-header{color:var(--color-gray-500);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:.78rem;font-weight:700;display:flex}.device-list{flex-direction:column;gap:8px;display:flex}.device-entry{width:100%;color:var(--color-gray-900);background:var(--surface-primary);border:1px solid var(--color-gray-300);text-align:left;cursor:pointer;border-radius:9px;flex-direction:column;gap:4px;padding:11px 12px;transition:background .12s,border-color .12s,transform .12s;display:flex}.device-entry:hover{background:var(--color-gray-50);border-color:var(--color-gray-400);transform:translate(2px)}.device-entry.active{color:var(--color-accent-hover);background:var(--color-accent-50);border-color:var(--color-accent)}.device-entry-main{align-items:center;gap:8px;min-width:0;display:flex}.device-symbol{flex:none;font-size:.75rem}.device-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.device-uuid{color:var(--color-gray-500);text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.76rem;overflow:hidden}.device-description{color:var(--color-gray-600);font-size:.83rem;line-height:1.35}.panel-empty-state{color:var(--color-gray-500);background:var(--color-gray-50);border:1px dashed var(--color-gray-300);text-align:center;border-radius:9px;padding:18px 12px}.device-loading-state{color:var(--color-gray-700);background:linear-gradient(135deg, var(--color-accent-50), var(--color-slate-50));border:1px solid var(--color-accent-200);border-radius:11px;align-items:center;gap:14px;padding:18px 16px;display:flex}.device-loading-spinner{border:4px solid var(--color-accent-a18);border-top-color:var(--color-accent);border-radius:999px;flex:none;width:32px;height:32px;animation:.75s linear infinite spin}.device-loading-text{flex-direction:column;gap:4px;min-width:0;display:flex}.device-loading-text strong{color:var(--color-gray-800);font-size:.9rem}.device-loading-text span{color:var(--color-gray-500);font-size:.78rem;line-height:1.4}.inline-refresh-indicator,.map-refresh-indicator{border:2px solid var(--color-accent-a25);border-top-color:var(--color-accent);border-radius:999px;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.settings-panel-content{flex-direction:column;gap:18px;display:flex}.settings-group{background:var(--surface-primary);border:1px solid var(--color-gray-200);border-radius:11px;flex-direction:column;gap:16px;padding:14px;display:flex}.settings-group-muted{background:var(--color-gray-50)}.settings-group-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.settings-group-header h3{margin:0;font-size:.95rem;line-height:1.3}.settings-group-header p{color:var(--color-gray-500);margin:4px 0 0;font-size:.79rem;line-height:1.4}.marker-preview{border:3px solid var(--color-white);min-width:14px;max-width:58px;min-height:14px;max-height:58px;box-shadow:0 0 0 1px var(--color-black-a16);border-radius:999px;flex:none}.marker-preview-inactive{background:var(--color-gray-500);opacity:.65;width:20px;height:20px}.settings-field{flex-direction:column;gap:8px;font-size:.9rem;display:flex}.settings-field-label{font-weight:650}.color-input-row{align-items:center;gap:10px;display:flex}.color-input-row input[type=color]{background:var(--surface-primary);border:1px solid var(--color-gray-300);cursor:pointer;border-radius:7px;width:48px;height:36px;padding:2px}.color-input-row code{color:var(--color-gray-700);background:var(--color-gray-100);text-transform:uppercase;border-radius:6px;padding:5px 8px;font-size:.8rem}.range-value-row{align-items:center;gap:12px;display:flex}.range-value-row input[type=range]{cursor:pointer;flex:1;min-width:0}.range-value-row output{color:var(--color-gray-700);text-align:right;flex:0 0 48px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem}.settings-summary-list{flex-direction:column;gap:8px;margin:0;display:flex}.settings-summary-list>div{border-top:1px solid var(--color-gray-200);justify-content:space-between;gap:12px;padding-top:8px;display:flex}.settings-summary-list dt{color:var(--color-gray-500);font-size:.82rem}.settings-summary-list dd{color:var(--color-gray-700);margin:0;font-size:.82rem;font-weight:650}.settings-note{color:var(--color-gray-600);background:var(--color-gray-50);border-left:3px solid var(--color-accent);border-radius:0 7px 7px 0;padding:11px 12px;font-size:.82rem;line-height:1.45}.map-style-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.map-style-option{min-width:0;color:var(--color-gray-900);background:var(--surface-primary);border:1px solid var(--color-gray-300);text-align:left;cursor:pointer;border-radius:11px;flex-direction:column;gap:9px;padding:8px;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s;display:flex}.map-style-option:hover{background:var(--surface-hover);border-color:var(--color-gray-400);transform:translateY(-1px)}.map-style-option:focus-visible{outline:3px solid var(--brand-foreground);outline-offset:2px}.map-style-option.active{background:var(--color-accent-50);border-color:var(--color-accent);box-shadow:0 0 0 1px var(--brand-dark)}.map-style-preview{isolation:isolate;background:var(--surface-secondary);border:1px solid var(--color-gray-200);width:100%;height:82px;box-shadow:inset 0 0 0 1px var(--color-white-a10), inset 0 -18px 28px var(--color-black-a08);border-radius:8px;display:block;position:relative;overflow:hidden}.map-style-preview:before,.map-style-preview:after{content:"";pointer-events:none;position:absolute;inset:-18%}.street-preview{background:linear-gradient(145deg, var(--surface-primary), var(--color-accent-50))}.street-preview:before{z-index:-1;background:repeating-linear-gradient(28deg, transparent 0 13px, var(--color-accent-a35) 14px 16px, transparent 17px 31px), repeating-linear-gradient(118deg, transparent 0 19px, var(--color-gray-300) 20px 22px, transparent 23px 39px);filter:blur(5px);opacity:.72;transform:scale(1.08)rotate(-2deg)}.street-preview:after{z-index:-1;background:radial-gradient(circle at 24% 32%, var(--color-accent-300) 0 8%, transparent 9%), radial-gradient(circle at 72% 64%, var(--color-green-200) 0 12%, transparent 13%), linear-gradient(102deg, transparent 0 45%, var(--surface-primary) 46% 54%, transparent 55%);filter:blur(8px);opacity:.9;inset:18% 10%}.satellite-preview{background:linear-gradient(145deg, var(--color-accent-dark), var(--color-green-900))}.satellite-preview:before{z-index:-1;background:radial-gradient(ellipse at 24% 30%, var(--color-lime-500) 0 17%, transparent 34%), radial-gradient(ellipse at 72% 68%, var(--color-green-200) 0 13%, transparent 31%), radial-gradient(ellipse at 78% 18%, var(--color-accent-300) 0 10%, transparent 28%);filter:blur(12px)saturate(.82);opacity:.8;transform:scale(1.15)}.satellite-preview:after{z-index:-1;background:linear-gradient(34deg, transparent 0 42%, var(--color-white-a55) 46% 49%, transparent 53%), linear-gradient(118deg, transparent 0 58%, var(--color-black-a18) 61% 64%, transparent 68%);filter:blur(7px);opacity:.5;inset:-10% 8%}.map-style-option-text{justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:0 2px 2px;display:flex}.map-style-option-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;line-height:1.2;overflow:hidden}.map-style-option.active .map-style-option-text:after{width:18px;height:18px;color:var(--text-on-accent);background:var(--color-accent);content:"✓";border-radius:999px;flex:none;place-items:center;font-size:.68rem;font-weight:800;line-height:1;display:grid}@media (width<=380px){.map-style-options{grid-template-columns:1fr}.map-style-option{grid-template-columns:92px minmax(0,1fr);align-items:center;display:grid}.map-style-preview{height:62px}}.status-panel-content{flex-direction:column;gap:18px;display:flex}.status-list{flex-direction:column;gap:10px;display:flex}.status-row{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:9px;align-items:center;gap:10px;padding:10px 11px;display:flex}.status-row>div{flex-direction:column;gap:2px;display:flex}.status-row strong{font-size:.86rem}.status-row span:not(.status-dot){color:var(--color-gray-500);font-size:.78rem}.status-dot{border-radius:999px;flex:none;width:10px;height:10px}.status-dot.success{background:var(--color-green-500)}.status-dot.error{background:var(--color-red-500)}.status-dot.pending{background:var(--color-amber-500)}.status-summary{background:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:9px;flex-direction:column;gap:4px;padding:12px;display:flex}.status-summary span{color:var(--color-gray-500);font-size:.78rem}.status-summary small{color:var(--color-gray-500);margin-top:3px;line-height:1.35}.status-error-message{color:var(--color-red-800);background:var(--color-red-50);border:1px solid var(--color-red-200);border-radius:8px;padding:11px 12px;font-size:.85rem;line-height:1.4}.secondary-action-button{width:100%;color:var(--color-accent-hover);background:var(--color-accent-50);border:1px solid var(--color-accent-200);cursor:pointer;border-radius:8px;padding:10px 12px;font-weight:600}.secondary-action-button:hover:not(:disabled){background:var(--color-accent-100)}.secondary-action-button:disabled{cursor:wait;opacity:.65}.theme-mode-control{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:9px;flex-direction:column;gap:8px;padding:12px;display:flex}.theme-mode-control-header{flex-direction:column;gap:2px;display:flex}.theme-mode-control-header strong{font-size:.86rem}.theme-mode-control-header span{color:var(--text-muted);font-size:.78rem;line-height:1.35}.theme-mode-options{background:var(--surface-tertiary);border:1px solid var(--border-subtle);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;display:grid}.theme-mode-option{min-width:0;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 5px;font-size:.75rem;font-weight:700;transition:color .12s,background-color .12s,box-shadow .12s}.theme-mode-option:hover{color:var(--text-primary);background:var(--surface-hover)}.theme-mode-option.active{color:var(--accent-contrast);background:var(--color-accent);box-shadow:0 1px 3px var(--color-black-a18)}.theme-mode-option:focus-visible{outline:3px solid var(--color-accent-a35);outline-offset:2px}.keyboard-shortcuts{border-top:1px solid var(--color-gray-200);padding-top:4px}.keyboard-shortcuts h3{margin:0;font-size:.95rem}.keyboard-shortcuts dl{flex-direction:column;gap:7px;margin:10px 0 0;display:flex}.keyboard-shortcuts dl>div{align-items:center;gap:10px;display:flex}.keyboard-shortcuts dt{min-width:38px;color:var(--color-gray-700);background:var(--color-gray-100);border:1px solid var(--color-gray-300);text-align:center;border-radius:5px;padding:3px 6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}.keyboard-shortcuts dd{color:var(--color-gray-500);margin:0;font-size:.82rem}.map-mode-label{z-index:10;max-width:min(420px,100vw - 150px);color:var(--color-gray-900);background:var(--color-white-a94);border:1px solid var(--color-black-a08);box-shadow:0 2px 8px var(--color-black-a16);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:8px;padding:8px 12px;font-size:.86rem;font-weight:700;position:absolute;top:12px;left:70px}.location-warning,.positions-warning,.positions-loading{z-index:10;background:var(--color-white-a95);border:1px solid var(--color-black-a09);max-width:min(420px,100vw - 150px);box-shadow:0 2px 8px var(--color-black-a15);border-radius:8px;padding:9px 12px;font-size:.85rem;position:absolute;left:70px}.location-warning{bottom:22px}.positions-warning{color:var(--color-red-800);background:var(--color-red-50-a96);border-color:var(--color-red-200);bottom:76px}.positions-loading{bottom:22px}.map-refresh-indicator{z-index:10;background:var(--color-white-a75);width:17px;height:17px;position:absolute;bottom:31px;right:54px}.maplibregl-ctrl-top-right{top:6px;right:6px}.maplibregl-ctrl-group{border-radius:8px;overflow:hidden}@media (width<=700px){.map-toolbar{width:52px;padding-inline:4px}.map-toolbar-brand,.map-toolbar-button{width:42px}.map-toolbar-brand{-webkit-user-select:none;user-select:none;background:0 0;border:0;border-radius:11px;place-items:center;width:42px;height:42px;margin-bottom:8px;padding:3px;display:grid;overflow:hidden}.map-sidebar-panel{width:calc(100vw - 52px)}.map-mode-label,.location-warning,.positions-warning,.positions-loading{max-width:calc(100vw - 130px);left:62px}.map-mode-label{font-size:.78rem}.sidebar-panel-body{padding:14px}}@media (width<=480px){.map-mode-label{text-overflow:ellipsis;white-space:nowrap;max-width:none;right:58px;overflow:hidden}.map-style-preview{flex-basis:72px}.settings-group{padding:12px}.device-loading-state{align-items:flex-start;padding:15px 13px}.device-loading-spinner{width:28px;height:28px}}@media (prefers-reduced-motion:reduce){.map-sidebar-panel,.device-entry,.map-toolbar-button{transition:none;animation:none}.inline-refresh-indicator,.map-refresh-indicator,.device-loading-spinner{animation-duration:1.4s}}.data-management-panel{flex-direction:column;gap:16px;display:flex}.data-management-loading{color:var(--color-gray-700);background:linear-gradient(135deg, var(--color-accent-50), var(--color-slate-50));border:1px solid var(--color-accent-200);border-radius:11px;align-items:center;gap:14px;padding:18px 16px;display:flex}.data-management-loading>div{flex-direction:column;gap:4px;display:flex}.data-management-loading strong{font-size:.9rem}.data-management-loading span{color:var(--color-gray-500);font-size:.78rem;line-height:1.4}.data-management-spinner{border:4px solid var(--color-accent-a18);border-top-color:var(--color-accent);border-radius:999px;flex:none;width:32px;height:32px;animation:.75s linear infinite spin}.data-management-message{border:1px solid;border-radius:8px;padding:11px 12px;font-size:.84rem;line-height:1.4}.data-management-message.success{color:var(--color-green-800);background:var(--color-green-50);border-color:var(--color-green-200)}.data-management-message.error{color:var(--color-red-800);background:var(--color-red-50);border-color:var(--color-red-200)}.data-management-summary{background:linear-gradient(135deg, var(--color-accent-50), var(--surface-primary));border:1px solid var(--color-accent-200);border-radius:11px;flex-direction:column;gap:14px;padding:14px;display:flex}.data-management-summary-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.data-management-summary-header>div{flex-direction:column;gap:2px;display:flex}.data-management-summary-header span{color:var(--color-gray-500);letter-spacing:.05em;text-transform:uppercase;font-size:.76rem;font-weight:700}.data-management-summary-header strong{color:var(--color-accent-dark);font-size:1.05rem}.data-management-summary-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.data-management-summary-values>div{background:var(--color-white-a75);border:1px solid var(--color-accent-200-a80);border-radius:8px;flex-direction:column;gap:3px;min-width:0;padding:9px;display:flex}.data-management-summary-values dt{color:var(--color-gray-500);font-size:.7rem}.data-management-summary-values dd{color:var(--color-gray-800);text-overflow:ellipsis;margin:0;font-size:.8rem;font-weight:700;overflow:hidden}.data-management-cleanup-all-button{width:100%;color:var(--color-accent-hover);background:var(--surface-primary);border:1px solid var(--color-accent-300);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-weight:700;display:flex}.data-management-cleanup-all-button:hover:not(:disabled){background:var(--color-accent-100)}.data-management-cleanup-all-button:disabled{cursor:not-allowed;opacity:.5}.data-management-cleanup-all-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:19px;height:19px}.data-management-device-section{flex-direction:column;gap:10px;display:flex}.data-management-section-heading{justify-content:space-between;align-items:center;display:flex}.data-management-section-heading h3{margin:0;font-size:.95rem}.data-management-section-heading>span{min-width:26px;height:24px;color:var(--color-gray-700);background:var(--color-gray-100);border-radius:999px;place-items:center;padding-inline:7px;font-size:.72rem;font-weight:700;display:grid}.data-management-device-list{flex-direction:column;gap:10px;display:flex}.data-management-device-card{background:var(--surface-primary);border:1px solid var(--color-gray-200);border-radius:10px;flex-direction:column;gap:12px;padding:12px;display:flex}.data-management-device-main{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.data-management-device-info{flex-direction:column;gap:3px;min-width:0;display:flex}.data-management-device-info strong{color:var(--color-gray-900);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.data-management-device-info code{color:var(--color-gray-500);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.data-management-device-info>span{color:var(--color-gray-600);font-size:.78rem;line-height:1.35}.data-management-device-actions{flex:none;gap:7px;display:flex}.data-management-icon-button{background:var(--surface-primary);cursor:pointer;border:1px solid;border-radius:8px;place-items:center;width:38px;height:38px;padding:0;transition:background .12s,color .12s,transform .12s;display:grid}.data-management-icon-button:hover:not(:disabled){transform:translateY(-1px)}.data-management-icon-button:active:not(:disabled){transform:translateY(0)}.data-management-icon-button:disabled{cursor:not-allowed;opacity:.35}.data-management-icon-button.cleanup{color:var(--color-accent-hover);border-color:var(--color-accent-200)}.data-management-icon-button.cleanup:hover:not(:disabled){background:var(--color-accent-50)}.data-management-icon-button.delete{color:var(--color-red-600);border-color:var(--color-red-200)}.data-management-icon-button.delete:hover:not(:disabled){color:var(--color-red-700);background:var(--color-red-50)}.data-management-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.data-management-device-statistics{border-top:1px solid var(--color-gray-200);flex-direction:column;gap:6px;margin:0;padding-top:10px;display:flex}.data-management-device-statistics>div{justify-content:space-between;gap:12px;display:flex}.data-management-device-statistics dt{color:var(--color-gray-500);font-size:.75rem}.data-management-device-statistics dd{color:var(--color-gray-700);text-align:right;margin:0;font-size:.75rem;font-weight:650}.data-management-dialog-backdrop{z-index:1000;background:var(--color-gray-900-a55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.data-management-dialog{width:min(440px,100%);max-height:calc(100vh - 40px);color:var(--color-gray-900);background:var(--surface-primary);border:1px solid var(--color-gray-300);box-shadow:0 22px 60px var(--color-black-a28);border-radius:13px;overflow-y:auto}.data-management-dialog header{border-bottom:1px solid var(--color-gray-200);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.data-management-dialog header>div{align-items:center;gap:10px;display:flex}.data-management-dialog h3{margin:0;font-size:1rem}.data-management-dialog-icon{width:36px;height:36px;color:var(--color-accent-hover);background:var(--color-accent-50);border-radius:9px;place-items:center;display:grid}.data-management-dialog-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.data-management-dialog-close{width:34px;height:34px;color:var(--color-gray-500);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.data-management-dialog-close:hover:not(:disabled){color:var(--color-gray-900);background:var(--color-gray-100)}.data-management-dialog-close svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:20px;height:20px}.data-management-dialog-content{flex-direction:column;gap:14px;padding:18px;display:flex}.data-management-dialog-content p{color:var(--color-gray-700);margin:0;font-size:.9rem;line-height:1.5}.data-management-dialog-warning,.data-management-dialog-danger{border:1px solid;border-radius:8px;padding:11px 12px;font-size:.84rem;line-height:1.4}.data-management-dialog-warning{color:var(--color-amber-800);background:var(--color-amber-50);border-color:var(--color-amber-200)}.data-management-dialog-danger{color:var(--color-red-800);background:var(--color-red-50);border-color:var(--color-red-200)}.data-management-confirmation-field{flex-direction:column;gap:7px;display:flex}.data-management-confirmation-field>span{color:var(--color-gray-700);font-size:.82rem;font-weight:650}.data-management-confirmation-field input{width:100%;color:var(--color-gray-900);background:var(--surface-primary);border:1px solid var(--color-gray-300);border-radius:7px;padding:9px 10px}.data-management-dialog footer{background:var(--color-gray-50);border-top:1px solid var(--color-gray-200);border-radius:0 0 13px 13px;justify-content:flex-end;gap:9px;padding:14px 18px;display:flex}.data-management-dialog-cancel,.data-management-dialog-confirm{cursor:pointer;border:1px solid;border-radius:7px;padding:9px 13px;font-weight:650}.data-management-dialog-cancel{color:var(--color-gray-700);background:var(--surface-primary);border-color:var(--color-gray-300)}.data-management-dialog-cancel:hover:not(:disabled){background:var(--color-gray-100)}.data-management-dialog-confirm{color:var(--color-white);background:var(--color-accent);border-color:var(--color-accent)}.data-management-dialog-confirm:hover:not(:disabled){background:var(--color-accent-hover)}.data-management-dialog-confirm.danger{background:var(--color-red-600);border-color:var(--color-red-600)}.data-management-dialog-confirm.danger:hover:not(:disabled){background:var(--color-red-700)}.data-management-dialog button:disabled{cursor:not-allowed;opacity:.55}@media (width<=480px){.data-management-summary-values{grid-template-columns:1fr}.data-management-device-statistics>div{flex-direction:column;gap:2px}.data-management-device-statistics dd{text-align:left}.data-management-dialog footer{flex-direction:column-reverse}.data-management-dialog-cancel,.data-management-dialog-confirm{width:100%}}@media (prefers-reduced-motion:reduce){.data-management-spinner{animation-duration:1.4s}.data-management-icon-button{transition:none}}.devices-panel{flex-direction:column;gap:16px;display:flex}.devices-panel-tabs{background:var(--color-gray-100);border:1px solid var(--color-gray-200);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px;display:grid}.devices-panel-tab{min-width:0;color:var(--color-gray-500);cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:9px 10px;font-size:.82rem;font-weight:700;transition:color .12s,background .12s,box-shadow .12s;display:flex;position:relative}.devices-panel-tab:hover{color:var(--color-gray-800);background:var(--color-white-a55)}.devices-panel-tab.active{color:var(--color-accent-hover);background:var(--surface-primary);box-shadow:0 1px 3px var(--color-black-a12)}.devices-panel-tab svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.devices-panel-tab-count{min-width:21px;height:20px;color:var(--color-gray-600);background:var(--color-gray-200);border-radius:999px;place-items:center;padding-inline:5px;font-size:.68rem;line-height:1;display:grid}.devices-panel-tab.active .devices-panel-tab-count{color:var(--color-accent-hover);background:var(--color-accent-100)}.devices-panel-tab-spinner{border:2px solid var(--color-accent-a20);border-top-color:var(--color-accent);border-radius:999px;width:14px;height:14px;animation:.7s linear infinite spin}.devices-panel-tab-content,.devices-panel-tab-content [role=tabpanel]{min-width:0}@media (width<=380px){.devices-panel-tab{gap:5px;padding-inline:7px;font-size:.76rem}.devices-panel-tab svg{width:16px;height:16px}}@media (prefers-reduced-motion:reduce){.devices-panel-tab{transition:none}.devices-panel-tab-spinner{animation-duration:1.4s}}.keyboard-shortcuts-description{color:var(--color-gray-500);margin:6px 0 0;font-size:.78rem;line-height:1.4}.position-map-popup .maplibregl-popup-content{background:var(--color-white-a98);border:1px solid var(--color-gray-300-a90);min-width:245px;max-width:320px;box-shadow:0 12px 32px var(--color-slate-900-a18), 0 2px 8px var(--color-slate-900-a10);border-radius:12px;padding:0;overflow:hidden}.position-map-popup .maplibregl-popup-tip{border-top-color:var(--color-white-a98);border-bottom-color:var(--color-white-a98)}.position-popup{color:var(--color-gray-900)}.position-popup-header{background:var(--color-gray-50);border-bottom:1px solid var(--color-gray-200);align-items:center;gap:10px;padding:12px 13px;display:flex}.position-popup-header>div{flex-direction:column;gap:2px;min-width:0;display:flex}.position-popup-header strong{color:var(--color-gray-900);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;line-height:1.25;overflow:hidden}.position-popup-header span:not(.position-popup-color){color:var(--color-gray-500);font-size:.7rem}.position-popup-color{border:3px solid var(--color-white);width:18px;height:18px;box-shadow:0 0 0 1px var(--color-black-a18);border-radius:999px;flex:none}.position-popup-details{flex-direction:column;margin:0;padding:5px 13px 9px;display:flex}.position-popup-details>div{border-bottom:1px solid var(--color-gray-100);grid-template-columns:82px minmax(0,1fr);gap:8px;padding:7px 0;display:grid}.position-popup-details>div:last-child{border-bottom:0}.position-popup-details dt{color:var(--color-gray-500);font-size:.7rem;font-weight:650}.position-popup-details dd{overflow-wrap:anywhere;min-width:0;color:var(--color-gray-800);margin:0;font-size:.74rem;font-weight:600;line-height:1.35}.map-container{position:relative;overflow:hidden}.maplibregl-popup{pointer-events:none;will-change:transform;display:flex;top:0;left:0;position:absolute!important}.primary-action-button{color:var(--color-white);background:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;border-radius:8px;padding:9px 13px;font-size:.78rem;font-weight:750}.primary-action-button:hover:not(:disabled){filter:brightness(.94)}.primary-action-button:disabled{cursor:not-allowed;opacity:.58}.geo-photos-intro,.geo-photos-list-section{flex-direction:column;gap:10px;display:flex}.geo-photos-intro h3,.geo-photos-list-header h3{margin:0;font-size:.88rem}.geo-photos-intro p,.geo-photos-empty{color:var(--color-gray-600);margin:0;font-size:.76rem;line-height:1.5}.geo-photos-list li{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:9px;grid-template-columns:54px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px;display:grid}.geo-photos-list img{object-fit:cover;border-radius:6px;width:54px;height:44px}.geo-photos-list li>div{flex-direction:column;gap:3px;min-width:0;display:flex}.geo-photos-list strong{font-size:.75rem}.geo-photo-delete-button{color:var(--status-danger-action);background:var(--status-error-background);border:1px solid var(--status-error-border);cursor:pointer;border-radius:6px;padding:5px 7px;font-size:.65rem;font-weight:700}.geo-photos-error,.geo-photo-dialog-error{color:var(--status-error-text);background:var(--status-error-background);border:1px solid var(--status-error-border);border-radius:8px;padding:9px 10px;font-size:.73rem}.geo-photo-placement-hint{z-index:45;color:var(--text-on-dark);background:var(--brand-dark);border:1px solid var(--color-white-a10);box-shadow:0 8px 24px var(--color-black-a18);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;font-size:.78rem;font-weight:700;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.geo-photo-placement-hint button{color:var(--text-on-dark);background:var(--color-white-a10);border:1px solid var(--color-white-a10);cursor:pointer;border-radius:6px;padding:5px 8px}.geo-photo-dialog-backdrop{z-index:10050;background:var(--color-black-a70);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:18px;display:grid;position:absolute;inset:0}.geo-photo-dialog{width:min(460px,100%);max-height:calc(100vh - 36px);color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);box-shadow:var(--surface-shadow);border-radius:14px;overflow:auto}.geo-photo-dialog>header{background:var(--surface-secondary);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.geo-photo-dialog h2,.geo-photo-dialog p{margin:0}.geo-photo-dialog h2{color:var(--text-heading);font-size:1rem}.geo-photo-dialog p{color:var(--text-muted);margin-top:4px;font-size:.72rem}.geo-photo-dialog-close{color:var(--text-muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:1.6rem;line-height:1}.geo-photo-dialog-close:hover:not(:disabled){color:var(--text-primary)}.geo-photo-dialog form{flex-direction:column;gap:14px;padding:18px;display:flex}.geo-photo-field,.geo-photo-file-field{color:var(--text-primary);flex-direction:column;gap:6px;font-size:.76rem;font-weight:700;display:flex}.geo-photo-field input,.geo-photo-file-field input{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);border-radius:8px;padding:9px 10px;font-size:.78rem}.geo-photo-field input:focus,.geo-photo-file-field input:focus-within{border-color:var(--color-accent);outline:3px solid var(--color-accent-a18)}.geo-photo-file-field input::file-selector-button{color:var(--accent-contrast);background:var(--color-accent);font:inherit;cursor:pointer;border:0;border-radius:6px;margin-right:10px;padding:6px 9px;font-weight:700}.geo-photo-upload-preview{object-fit:contain;background:var(--surface-tertiary);border:1px solid var(--border-subtle);border-radius:10px;width:100%;max-height:280px;display:block}.geo-photo-dialog footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;gap:9px;padding-top:14px;display:flex}.geo-photo-map-popup .maplibregl-popup-content{width:min(340px,70vw);color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);box-shadow:0 14px 38px var(--color-black-a28);border-radius:12px;padding:0;overflow:hidden}.geo-photo-map-popup .maplibregl-popup-tip{border-top-color:var(--surface-primary);border-bottom-color:var(--surface-primary)}.maplibregl-popup.geo-photo-map-popup{z-index:10020;pointer-events:none}.geo-photo-popup-image{object-fit:contain;background:var(--brand-dark);width:100%;max-height:260px;display:block}.geo-photo-popup-caption{background:var(--surface-primary);flex-direction:column;gap:2px;padding:9px 11px;display:flex}.geo-photo-popup-caption strong{color:var(--text-heading);font-size:.8rem}.geo-photo-popup-caption span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;overflow:hidden}.management-panel{flex-direction:column;gap:14px;display:flex}.management-tabs{background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:9px;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px;display:grid}.management-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px 7px;font-size:.76rem;font-weight:700;transition:color .12s,background-color .12s,box-shadow .12s}.management-tab:hover:not(:disabled){color:var(--text-primary);background:var(--surface-primary-a55)}.management-tab.active{color:var(--color-accent);background:var(--surface-primary);box-shadow:0 1px 3px var(--color-black-a12)}.category-panel{color:var(--text-primary);flex-direction:column;gap:14px;display:flex}.category-loading{color:var(--text-muted);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:9px;align-items:center;gap:10px;padding:16px;display:flex}.category-loading>span{border:3px solid var(--color-accent-a20);border-top-color:var(--color-accent);border-radius:999px;width:22px;height:22px;animation:.7s linear infinite spin}.category-message{border:1px solid;border-radius:8px;padding:10px 11px;font-size:.8rem;line-height:1.4}.category-message.error{color:var(--status-error-text);background:var(--status-error-background);border-color:var(--status-error-border)}.category-message.success{color:var(--status-success-text);background:var(--status-success-background);border-color:var(--status-success-border)}.category-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.category-heading h3{color:var(--text-heading);margin:0;font-size:.95rem}.category-heading span{color:var(--text-muted);margin-top:2px;font-size:.74rem;display:block}.category-add-button{color:var(--accent-contrast);background:var(--color-accent);border:1px solid var(--color-accent);cursor:pointer;border-radius:7px;flex:none;padding:7px 9px;font-size:.75rem;font-weight:700;transition:background-color .12s,border-color .12s,transform .12s}.category-add-button:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover);transform:translateY(-1px)}.category-list{flex-direction:column;gap:7px;display:flex}.category-card{width:100%;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border-subtle);text-align:left;cursor:pointer;border-radius:9px;grid-template-columns:minmax(0,1fr) 86px;align-items:center;gap:8px;padding:9px 10px;transition:background-color .12s,border-color .12s,transform .12s;display:grid}.category-card:hover:not(:disabled){background:var(--surface-secondary);border-color:var(--border);transform:translate(2px)}.category-card.active{color:var(--color-accent);background:var(--color-accent-50);border-color:var(--color-accent)}.category-card-title{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.category-card small{color:var(--text-muted);font-size:.7rem}.category-gradient,.category-preview{border:2px solid var(--surface-primary);height:22px;box-shadow:0 0 0 1px var(--color-black-a12);border-radius:999px;display:flex;overflow:hidden}.category-gradient span,.category-preview span{flex:1}.category-editor,.category-details{color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border-subtle);box-shadow:var(--component-shadow-soft);border-radius:10px;flex-direction:column;gap:12px;padding:12px;display:flex}.category-editor h4,.category-details h4{color:var(--text-heading);margin:0;font-size:.9rem}.category-editor label{color:var(--text-primary);flex-direction:column;gap:5px;font-size:.76rem;font-weight:650;display:flex}.category-editor input[type=text]{width:100%;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);border-radius:7px;padding:8px 9px}.category-editor input[type=text]::placeholder{color:var(--text-muted)}.category-color-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.category-color-fields input{background:var(--surface-primary);border:1px solid var(--border);cursor:pointer;border-radius:7px;width:100%;height:38px;padding:2px}.category-preview{height:28px}.category-editor-actions{justify-content:flex-end;gap:8px;display:flex}.category-editor-actions button{color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);cursor:pointer;border-radius:7px;padding:8px 10px}.category-editor-actions button:hover:not(:disabled){background:var(--surface-secondary)}.category-editor-actions button:last-child{color:var(--accent-contrast);background:var(--color-accent);border-color:var(--color-accent)}.category-editor-actions button:last-child:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.category-details>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.category-details header span{color:var(--text-muted);font-size:.72rem}.category-detail-actions{gap:5px;display:flex}.category-detail-actions button,.category-reroll-button{width:32px;height:32px;color:var(--color-accent);background:var(--color-accent-50);border:1px solid var(--color-accent-200);cursor:pointer;border-radius:7px;place-items:center;padding:0;transition:color .12s,background-color .12s,transform .12s;display:grid}.category-detail-actions button:hover:not(:disabled),.category-reroll-button:hover:not(:disabled){background:var(--color-accent-100);transform:translateY(-1px)}.category-detail-actions button.danger{color:var(--status-danger-action);background:var(--status-error-background);border-color:var(--status-error-border)}.category-detail-actions button.danger:hover:not(:disabled){color:var(--status-danger-action-hover);background:var(--status-error-background-hover)}.category-detail-actions svg,.category-reroll-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.category-device-list{flex-direction:column;gap:6px;display:flex}.category-device-row{min-height:38px;color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:6px 7px;display:flex}.category-device-row label{cursor:pointer;align-items:center;gap:8px;min-width:0;display:flex}.category-device-row input[type=checkbox]{accent-color:var(--color-accent)}.category-device-row label>span:last-child{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:650;overflow:hidden}.category-device-color{background:var(--category-device-fallback);border:2px solid var(--surface-primary);width:15px;height:15px;box-shadow:0 0 0 1px var(--color-black-a18);border-radius:999px;flex:none}.category-reroll-button{flex:none;width:30px;height:30px}.category-panel button:disabled{cursor:not-allowed;opacity:.5}.category-empty-state{color:var(--text-muted);background:var(--surface-secondary);border:1px dashed var(--border);border-radius:9px;flex-direction:column;gap:4px;padding:14px;font-size:.78rem;line-height:1.4;display:flex}.category-empty-state strong{color:var(--text-primary)}.category-empty-state.compact{padding:10px}.category-color-values{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:.72rem;display:flex}.category-color-values code{color:var(--text-primary);background:var(--code-background);border:1px solid var(--border-subtle);font-family:var(--font-mono);border-radius:5px;padding:3px 6px}.category-device-name{flex-direction:column;gap:1px;min-width:0;display:flex}.category-device-name small{color:var(--text-muted);font-size:.66rem;font-weight:500}@media (width<=480px){.category-heading{align-items:flex-start}.category-card{grid-template-columns:minmax(0,1fr) 72px}.category-color-fields{grid-template-columns:1fr}.category-editor-actions{flex-direction:column-reverse}.category-editor-actions button{width:100%}}@media (prefers-reduced-motion:reduce){.management-tab,.category-add-button,.category-card,.category-detail-actions button,.category-reroll-button{transition:none}.category-loading>span{animation-duration:1.4s}}.map-style-panel-content{flex-direction:column;gap:18px;display:flex}.visualization-mode-group{gap:12px}.visualization-mode-options{background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:4px;display:grid}.visualization-mode-option{min-width:0;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:9px 10px;font-size:.8rem;font-weight:700;transition:color .12s,background .12s,border-color .12s,box-shadow .12s}.visualization-mode-option:hover:not(:disabled){color:var(--text-primary);background:var(--surface-hover)}.visualization-mode-option.active{color:var(--color-accent);background:var(--surface-primary);border-color:var(--color-accent);box-shadow:var(--component-shadow-soft)}.visualization-mode-option:focus-visible{outline:3px solid var(--color-accent-a35);outline-offset:2px}.visualization-mode-option:disabled{cursor:not-allowed;opacity:.5}.visualization-mode-note{color:var(--text-muted);margin:0;font-size:.76rem;line-height:1.4}@media (width<=380px){.visualization-mode-options{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.visualization-mode-option{transition:none}}.has-border{border-top:1px solid var(--color-gray-200);border-bottom:1px solid var(--color-gray-200);padding-top:1rem;padding-bottom:1rem}.map-page,.map-container,.map-container .maplibregl-map,.map-container .maplibregl-canvas-container{min-width:0;min-height:0}.map-container .maplibregl-canvas{-webkit-tap-highlight-color:transparent}.map-page.drawing-active .maplibregl-canvas,.map-page.drawing-active .maplibregl-canvas-container{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none}.map-page[data-drawing-mode=static] .maplibregl-canvas{cursor:grab}.map-page[data-drawing-mode=static] .maplibregl-canvas:active{cursor:grabbing}.map-page[data-drawing-mode=point] .maplibregl-canvas,.map-page[data-drawing-mode=linestring] .maplibregl-canvas,.map-page[data-drawing-mode=polygon] .maplibregl-canvas,.map-page[data-drawing-mode=freehand-linestring] .maplibregl-canvas,.map-page[data-drawing-mode=freehand] .maplibregl-canvas{cursor:crosshair}.map-page[data-drawing-mode=select] .maplibregl-canvas,.map-page[data-drawing-mode=delete] .maplibregl-canvas{cursor:pointer}.map-sidebar-panel{min-height:0}.sidebar-panel-body{overscroll-behavior-y:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;min-height:0;overflow:hidden auto}.sidebar-panel-body input,.sidebar-panel-body select,.sidebar-panel-body textarea,.sidebar-panel-body button{touch-action:manipulation}@media (pointer:coarse){.map-toolbar-button,.sidebar-panel-close,.device-overview-button,.device-entry,.secondary-action-button,.drawing-layer-refresh-button,.drawing-layer-create-button,.drawing-layer-select,.drawing-tool-button{min-height:44px}.map-toolbar-button,.sidebar-panel-close{min-width:44px}.sidebar-panel-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}}.drawing-layer-panel{flex-direction:column;gap:16px;display:flex}.drawing-layer-section{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.drawing-layer-section-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.drawing-layer-section-header>div{min-width:0}.drawing-layer-section h3{color:var(--text-heading);margin:0;font-size:1rem}.drawing-layer-section-description{color:var(--text-muted);margin:4px 0 0;font-size:.78rem;line-height:1.4}.drawing-layer-refresh-button{color:var(--color-accent);background:var(--surface-primary);border:1px solid var(--color-accent-200);cursor:pointer;border-radius:7px;flex:none;padding:7px 9px;font-size:.75rem;font-weight:700}.drawing-layer-refresh-button:hover:not(:disabled){background:var(--color-accent-50)}.drawing-layer-refresh-button:disabled{cursor:not-allowed;opacity:.55}.drawing-layer-form{flex-direction:column;gap:8px;display:flex}.drawing-layer-form label{color:var(--text-primary);font-size:.9rem;font-weight:600}.drawing-layer-form input{width:100%;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);font:inherit;border-radius:8px;padding:9px 10px}.drawing-layer-form input:hover:not(:disabled){border-color:var(--color-accent)}.drawing-layer-form input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.drawing-layer-form input:disabled{cursor:not-allowed;opacity:.55}.drawing-layer-create-button{width:100%;min-height:40px;color:var(--accent-contrast);background:var(--color-accent);border:1px solid var(--color-accent);font:inherit;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:9px 14px;font-weight:600;transition:background-color .15s,border-color .15s,opacity .15s,transform .15s;display:inline-flex}.drawing-layer-create-button:hover:not(:disabled){background:var(--brand-background);border-color:var(--brand-background)}.drawing-layer-create-button:active:not(:disabled){transform:translateY(1px)}.drawing-layer-create-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.drawing-layer-create-button:disabled{cursor:not-allowed;opacity:.55}.drawing-layer-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.drawing-layer-entry{background:var(--surface-primary);border:1px solid var(--border);border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:9px;display:grid}.drawing-layer-entry.active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-a18)}.drawing-layer-entry>input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer;margin-top:3px}.drawing-layer-entry>input[type=checkbox]:disabled{cursor:not-allowed;opacity:.55}.drawing-layer-select{min-width:0;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:2px;padding:0;display:flex}.drawing-layer-select strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.drawing-layer-select span{color:var(--text-muted);font-size:.8rem}.drawing-layer-select small{color:var(--text-muted);font-size:.7rem;line-height:1.35}.drawing-layer-select:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:4px}.drawing-layer-actions{flex-wrap:wrap;grid-column:2;gap:6px;display:flex}.drawing-layer-actions .secondary-action-button{width:auto;padding:7px 9px;font-size:.75rem}.drawing-layer-actions .secondary-action-button.danger{color:var(--status-danger-action);background:var(--status-error-background);border-color:var(--status-error-border)}.drawing-layer-actions .secondary-action-button.danger:hover:not(:disabled){color:var(--status-danger-action-hover);background:var(--status-error-background-hover)}.drawing-color-palette{grid-template-columns:repeat(5,36px);gap:9px;display:grid}.drawing-color-button{background:var(--surface-primary);border:1px solid var(--border);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;padding:4px;display:inline-flex}.drawing-color-button:hover:not(:disabled){background:var(--surface-hover)}.drawing-color-button.active{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-a18)}.drawing-color-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.drawing-color-button:disabled{cursor:not-allowed;opacity:.55}.drawing-color-preview{border:1px solid var(--border);border-radius:6px;width:24px;height:24px;display:block}.drawing-color-button.active .drawing-color-preview{box-shadow:0 0 0 2px var(--surface-primary), 0 0 0 4px var(--color-accent)}.drawing-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.drawing-tool-button{color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);font:inherit;cursor:pointer;border-radius:8px;padding:8px 10px}.drawing-tool-button:hover:not(:disabled){background:var(--surface-hover)}.drawing-tool-button.danger{color:var(--status-danger-action)}.drawing-tool-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.drawing-active-layer{background:var(--surface-primary);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:2px;padding:10px;display:flex}.drawing-active-layer span{color:var(--text-muted);font-size:.9rem}.drawing-active-layer strong{color:var(--text-primary)}.drawing-layer-empty{color:var(--text-muted);margin:0;font-size:.9rem}.drawing-layer-file-actions{flex-direction:column;gap:8px;display:flex}.drawing-layer-file-input{display:none}.drawing-layer-error{color:var(--status-error-text);background:var(--status-error-background);border:1px solid var(--status-error-border);border-radius:8px;padding:9px}.drawing-toolbar{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;display:grid}.drawing-tool-button{min-width:0;min-height:42px;color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);cursor:pointer;touch-action:manipulation;border-radius:8px;padding:9px 10px;font-weight:650;line-height:1.25;transition:color .12s,background-color .12s,border-color .12s,transform .12s}.drawing-tool-button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--color-gray-400)}.drawing-tool-button:active:not(:disabled){transform:scale(.98)}.drawing-tool-button.active{color:var(--accent-contrast);background:var(--color-accent);border-color:var(--color-accent)}.drawing-tool-button.danger{color:var(--status-danger-action);background:var(--status-error-background);border-color:var(--status-error-border)}.drawing-tool-button.danger.active{color:var(--color-white);background:var(--color-red-600);border-color:var(--color-red-600)}.drawing-tool-button:disabled{cursor:not-allowed;opacity:.5}@media (pointer:coarse){.drawing-toolbar{gap:10px}.drawing-tool-button{min-height:48px;padding:11px 10px}}@media (width<=380px){.drawing-toolbar{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.drawing-tool-button{transition:none}}.map-navigation-controls{z-index:12;background:var(--surface-primary);border:1px solid var(--border);box-shadow:var(--color-gray-900-a55,none);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:12px;right:12px;overflow:hidden}.map-navigation-button{width:40px;height:40px;color:var(--text-primary);background:var(--surface-primary);border:0;border-bottom:1px solid var(--border);cursor:pointer;place-items:center;padding:0;display:grid;position:relative}.map-navigation-button:last-child{border-bottom:0}.map-navigation-button:hover:not(:disabled){background:var(--surface-hover)}.map-navigation-button:focus-visible{z-index:1;outline:2px solid var(--color-accent);outline-offset:-2px}.map-navigation-button:disabled{cursor:not-allowed;opacity:.45}.map-navigation-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.map-navigation-north-button svg{fill:var(--color-accent);stroke:var(--text-primary);stroke-width:1.4px}.map-navigation-north-button span{color:var(--text-muted);font-size:.65rem;font-weight:700;position:absolute;top:3px;right:4px}.panel-search-field{width:100%;margin:10px 0 12px;display:block;position:relative}.panel-search-field:before{z-index:1;border:2px solid var(--text-muted);content:"";pointer-events:none;border-radius:50%;width:14px;height:14px;position:absolute;top:50%;left:12px;transform:translateY(-58%)}.panel-search-field:after{z-index:1;background:var(--text-muted);content:"";pointer-events:none;transform-origin:0;border-radius:2px;width:6px;height:2px;position:absolute;top:50%;left:25px;transform:translateY(5px)rotate(45deg)}.panel-search-field input{box-sizing:border-box;width:100%;min-width:0;height:40px;color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);font:inherit;border-radius:10px;padding:0 34px 0 40px;font-size:.78rem;transition:background .12s,border-color .12s,box-shadow .12s}.panel-search-field input:hover:not(:disabled){background:var(--surface-tertiary);border-color:var(--color-gray-400)}.panel-search-field input:focus{background:var(--surface-primary);border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-a18);outline:0}.panel-search-field input::placeholder{color:var(--text-muted);opacity:1}.panel-search-field input:disabled{cursor:not-allowed;opacity:.55}.panel-search-field input::-webkit-search-cancel-button{cursor:pointer}.geo-photos-panel{flex-direction:column;gap:20px;display:flex}.geo-photos-intro{background:linear-gradient(135deg, var(--color-accent-50), var(--surface-secondary));border:1px solid var(--color-accent-200);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.geo-photos-intro h3{color:var(--text-heading);margin:0;font-size:.9rem}.geo-photos-intro p{color:var(--text-muted);margin:0;font-size:.75rem;line-height:1.5}.geo-photos-list-section{flex-direction:column;gap:12px;display:flex}.geo-photos-list-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.geo-photos-list-header h3{color:var(--text-heading);margin:0;font-size:.85rem}.geo-photos-visible-filter{min-height:42px;color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s;display:grid}.geo-photos-visible-filter:hover{background:var(--surface-tertiary);border-color:var(--color-accent-300)}.geo-photos-visible-filter input{width:17px;height:17px;accent-color:var(--color-accent);cursor:pointer;margin:0}.geo-photos-visible-filter strong{min-width:24px;height:22px;color:var(--color-accent-hover);background:var(--color-accent-100);border:1px solid var(--color-accent-200);border-radius:999px;place-items:center;padding:0 6px;font-size:.68rem;line-height:1;display:grid}.geo-photo-groups{flex-direction:column;gap:16px;display:flex}.geo-photo-group{flex-direction:column;gap:8px;display:flex}.geo-photo-group+.geo-photo-group{border-top:1px solid var(--border-subtle);padding-top:14px}.geo-photo-group h4{color:var(--text-muted);letter-spacing:.035em;text-transform:uppercase;align-items:center;gap:7px;margin:0;font-size:.7rem;font-weight:750;line-height:1.2;display:flex}.geo-photo-group-heading{align-items:center;gap:7px;min-width:0;display:inline-flex}.geo-photo-group-heading>span{color:var(--text-muted);font-size:1rem;font-weight:700}.geo-photo-count{min-width:23px;height:21px;color:var(--text-primary);background:var(--surface-tertiary);border:1px solid var(--border);border-radius:999px;place-items:center;padding:0 6px;font-size:.67rem;line-height:1;display:inline-grid}.geo-photo-group.visible h4{color:var(--color-accent-hover)}.geo-photo-group.visible .geo-photo-count{color:var(--color-accent-hover);background:var(--color-accent-100);border-color:var(--color-accent-200)}.geo-photos-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.geo-photos-list li{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:10px;grid-template-columns:58px minmax(0,1fr);gap:10px;padding:9px;transition:background .12s,border-color .12s,transform .12s;display:grid}.geo-photos-list li:hover{background:var(--surface-tertiary);border-color:var(--color-accent-300);transform:translateY(-1px)}.geo-photos-list img{object-fit:cover;background:var(--brand-dark);border:1px solid var(--border);border-radius:7px;grid-row:1/span 2;width:58px;height:48px}.geo-photos-list li>div{flex-direction:column;justify-content:center;gap:3px;min-width:0;display:flex}.geo-photos-list strong,.geo-photos-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.geo-photos-list strong{color:var(--text-heading);font-size:.76rem}.geo-photos-list span{color:var(--text-muted);font-size:.66rem}.geo-photo-delete-button{width:100%;color:var(--status-danger-action);background:var(--status-error-background);border:1px solid var(--status-error-border);cursor:pointer;border-radius:7px;grid-column:1/-1;padding:6px 8px;font-size:.67rem;font-weight:700}.geo-photo-delete-button:hover:not(:disabled){color:var(--status-danger-action-hover);background:var(--status-error-background-hover)}.geo-photo-delete-button:disabled{cursor:not-allowed;opacity:.5}.geo-photos-empty,.panel-empty-state,.drawing-layer-empty{color:var(--text-muted);background:var(--surface-secondary);border:1px dashed var(--border);text-align:center;border-radius:10px;padding:14px;font-size:.74rem;line-height:1.45}.display-settings-panel{flex-direction:column;gap:16px;display:flex}.display-settings-panel .settings-group{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);box-shadow:var(--component-shadow-soft);border-radius:12px;flex-direction:column;gap:16px;padding:16px;display:flex}.display-settings-panel .settings-group:first-child{background:linear-gradient(135deg, var(--color-accent-50), var(--surface-secondary));border-color:var(--color-accent-200)}.display-settings-panel .settings-group-header{justify-content:space-between;align-items:center;gap:16px;min-height:32px;display:flex}.display-settings-panel .settings-group-header h3{color:var(--text-heading);margin:0;font-size:.9rem;line-height:1.3}.display-settings-panel .settings-field{border-top:1px solid var(--border-subtle);flex-direction:column;gap:10px;padding-top:14px;display:flex}.display-settings-panel .settings-field-label{color:var(--text-primary);font-size:.76rem;font-weight:700}.display-settings-panel .range-value-row{grid-template-columns:minmax(0,1fr) 52px;align-items:center;gap:14px;display:grid}.display-settings-panel .range-value-row input[type=range]{width:100%;min-width:0;accent-color:var(--color-accent);cursor:pointer}.display-settings-panel .range-value-row output{min-width:48px;height:30px;color:var(--color-accent-hover);background:var(--color-accent-100);border:1px solid var(--color-accent-200);font-family:var(--font-mono);text-align:center;border-radius:7px;place-items:center;font-size:.72rem;font-weight:700;display:grid}.display-settings-panel .settings-summary-list{flex-direction:column;gap:0;margin:0;padding-top:4px;display:flex}.display-settings-panel .settings-summary-list>div{border-top:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:36px;padding:8px 0;display:grid}.display-settings-panel .settings-summary-list dt{color:var(--text-muted);font-size:.74rem}.display-settings-panel .settings-summary-list dd{color:var(--text-primary);text-align:right;margin:0;font-size:.74rem;font-weight:700}.display-settings-panel .marker-preview{border-color:var(--surface-primary);box-shadow:0 0 0 1px var(--border), 0 2px 6px var(--color-black-a12);flex:none}@media (width<=480px){.display-settings-panel{gap:12px}.display-settings-panel .settings-group{gap:13px;padding:13px}}.drawing-layer-library{background:0 0;border:0;border-radius:0;gap:12px;padding:0}.drawing-layer-list-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.drawing-layer-library .drawing-layer-list-header h3{color:var(--text-heading);margin:0;font-size:.85rem}.drawing-layer-library .panel-search-field{margin:0}.drawing-layer-library .drawing-layer-list{gap:8px}.drawing-layer-library .drawing-layer-entry{color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border-subtle);border-radius:10px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;padding:9px;transition:background .12s,border-color .12s,box-shadow .12s,transform .12s;display:grid}.drawing-layer-library .drawing-layer-entry:hover{background:var(--surface-tertiary);border-color:var(--color-accent-300);transform:translateY(-1px)}.drawing-layer-library .drawing-layer-entry.active{background:var(--color-accent-50);border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent-a18)}.drawing-layer-visibility{background:var(--surface-primary);border:1px solid var(--border);cursor:pointer;border-radius:8px;place-items:center;width:42px;height:42px;display:grid;position:relative}.drawing-layer-visibility input{opacity:0;width:1px;height:1px;position:absolute}.drawing-layer-visibility span{border:2px solid var(--text-muted);border-radius:50%/60%;width:21px;height:14px;position:relative}.drawing-layer-visibility span:after{background:var(--text-muted);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.drawing-layer-visibility input:checked+span{border-color:var(--color-accent)}.drawing-layer-visibility input:checked+span:after{background:var(--color-accent)}.drawing-layer-visibility:has(input:focus-visible){border-color:var(--color-accent);outline:3px solid var(--color-accent-a18)}.drawing-layer-visibility:has(input:disabled){cursor:not-allowed;opacity:.55}.drawing-layer-library .drawing-layer-select{gap:4px}.drawing-layer-library .drawing-layer-select strong{color:var(--text-heading);font-size:.76rem}.drawing-layer-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.drawing-layer-library .drawing-layer-object-count,.drawing-layer-library .drawing-layer-active-label{font-size:.66rem}.drawing-layer-active-label{background:var(--color-accent-100);border:1px solid var(--color-accent-200);border-radius:999px;padding:2px 6px;font-weight:700;color:var(--color-accent-hover)!important}.drawing-layer-library .drawing-layer-date{color:var(--text-muted);font-size:.64rem}.drawing-layer-library .drawing-layer-actions{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.drawing-layer-library .drawing-layer-actions .secondary-action-button{border-radius:7px;width:100%;min-height:32px;padding:6px 8px;font-size:.67rem;font-weight:700}.maplibregl-popup.position-map-popup{z-index:10000;pointer-events:none}.position-popup-coordinates{font-family:var(--font-mono);white-space:nowrap;font-weight:700;color:var(--color-accent-hover)!important;font-size:.72rem!important}.position-popup-footer{color:var(--text-muted);background:var(--surface-secondary);border-top:1px solid var(--border-subtle);text-align:center;padding:7px 13px 9px;font-size:.64rem}.position-map-popup .maplibregl-popup-close-button{width:26px;height:26px;color:var(--text-primary);background:var(--surface-tertiary);border:1px solid var(--border);cursor:pointer;border-radius:7px;place-items:center;padding:0;font-size:1rem;line-height:1;display:grid;top:7px;right:7px}.position-popup-coordinate-section{align-items:start}.position-popup-coordinates{grid-template-columns:1fr;gap:5px;min-width:0;display:grid}.position-popup-coordinates>span{grid-template-columns:66px minmax(0,1fr);align-items:center;gap:6px;min-width:0;display:grid}.position-popup-coordinates small{color:var(--text-muted);font-size:.62rem;font-weight:600}.position-popup-coordinates code{color:var(--color-accent-hover);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;background:0 0;font-size:.68rem;font-weight:700;overflow:hidden}.position-map-popup .maplibregl-popup-content{pointer-events:auto}.coordinate-system-select-wrapper{width:100%;display:block;position:relative}.coordinate-system-select-wrapper:after{border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);content:"";pointer-events:none;width:8px;height:8px;transition:border-color .14s,transform .14s;position:absolute;top:50%;right:13px;transform:translateY(-70%)rotate(45deg)}.coordinate-system-select-wrapper:focus-within:after{border-color:var(--color-accent);transform:translateY(-55%)rotate(45deg)}.coordinate-system-select{appearance:none;width:100%;min-height:40px;color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);box-shadow:0 1px 2px var(--color-slate-900-a10);font:inherit;cursor:pointer;border-radius:8px;padding:9px 38px 9px 12px;font-size:.76rem;font-weight:650;transition:background-color .14s,border-color .14s,box-shadow .14s}.coordinate-system-select:hover{background:var(--surface-hover);border-color:var(--color-accent-200)}.coordinate-system-select:focus-visible{border-color:var(--color-accent);outline:2px solid var(--color-accent-a18);outline-offset:1px;box-shadow:0 0 0 3px var(--color-accent-a10)}.coordinate-system-select option{color:var(--text-primary);background:var(--surface-primary);font-weight:500}.map-center-coordinate-control{z-index:12;width:min(245px,100vw - 12px);color:var(--text-primary);background:var(--surface-primary);border:1px solid var(--border);box-shadow:0 10px 28px var(--color-slate-900-a18), 0 2px 8px var(--color-slate-900-a10);border-radius:8px;grid-template-columns:1fr;gap:5px;padding:7px;display:grid;position:absolute;bottom:8px;right:6px}.map-center-coordinate-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.map-center-coordinate-fields label{min-width:0;display:block}.map-center-coordinate-fields input{box-sizing:border-box;width:100%;min-width:0;color:var(--text-primary);background:var(--surface-secondary);border:1px solid var(--border);font-family:var(--font-mono);border-radius:6px;padding:5px 6px;font-size:.64rem;font-weight:700}.map-center-coordinate-fields input:focus{border-color:var(--color-accent);outline:2px solid var(--color-accent-a18)}.map-center-coordinate-fields input[aria-invalid=true]{border-color:var(--color-red-500)}.map-center-coordinate-fields input:disabled{cursor:not-allowed;opacity:.5}.map-center-indicator-toggle{min-height:20px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;grid-column:1/-1;align-items:center;gap:6px;padding:0 1px;font-size:.62rem;font-weight:700;display:flex}.map-center-indicator-toggle input{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.map-center-indicator-checkmark{background:var(--surface-secondary);border:1px solid var(--border);border-radius:4px;flex:none;width:15px;height:15px;position:relative}.map-center-indicator-toggle input:checked+.map-center-indicator-checkmark{background:var(--color-accent);border-color:var(--color-accent)}.map-center-indicator-toggle input:checked+.map-center-indicator-checkmark:after{border-right:2px solid var(--accent-contrast);border-bottom:2px solid var(--accent-contrast);content:"";width:4px;height:8px;position:absolute;top:1px;left:4px;transform:rotate(45deg)}.map-center-indicator-toggle input:focus-visible+.map-center-indicator-checkmark{outline:2px solid var(--color-accent);outline-offset:2px}.map-center-indicator{z-index:11;border:2px solid var(--color-red-500);width:30px;height:30px;box-shadow:0 0 0 2px var(--color-white-a75), 0 2px 8px var(--color-black-a18);pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-center-indicator:after{background:var(--color-red-500);content:"";border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-center-coordinate-control>p{color:var(--color-red-700);grid-column:1/-1;margin:0;font-size:.65rem}@media (width<=560px){.map-center-coordinate-control{grid-template-columns:1fr;width:min(245px,100vw - 10px);bottom:8px;right:5px}.map-center-indicator-toggle{padding:2px 0 0}}.map-center-coordinate-control[data-coordinate-system=utm] .map-center-coordinate-fields{grid-template-columns:46px minmax(0,1fr) minmax(0,1fr)}.map-center-coordinate-control[data-coordinate-system=dms]{width:min(360px,100vw - 12px)}.map-center-coordinate-control[data-coordinate-system=mgrs]{width:min(310px,100vw - 12px)}.map-center-coordinate-control[data-coordinate-system=mgrs] .map-center-coordinate-fields{grid-template-columns:minmax(0,1fr)}.map-center-coordinate-control[data-coordinate-system=dms] .map-center-coordinate-fields input{padding-inline:8px;font-size:.68rem}@media (width<=560px){.map-center-coordinate-control[data-coordinate-system=dms]{width:min(360px,100vw - 10px)}.map-center-coordinate-control[data-coordinate-system=mgrs]{width:min(310px,100vw - 10px)}}
