: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}.maplibregl-popup.position-map-popup{z-index:10000;pointer-events:none}.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-navigation-controls{z-index:12;background:var(--surface-primary);border:1px solid var(--border);box-shadow:var(--shadow-card,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}.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 h3{color:var(--text-heading);margin:0;font-size:1rem}.drawing-layer-section-description{color:var(--text-muted);margin:0;font-size:.88rem;line-height:1.45}.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:center;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}.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: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-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.active{color:var(--accent-contrast);background:var(--color-accent);border-color:var(--color-accent)}.drawing-tool-button.danger{color:var(--status-danger-action)}.drawing-tool-button.danger.active{color:var(--accent-contrast);background:var(--status-danger-action);border-color:var(--status-danger-action)}.drawing-tool-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.drawing-tool-button:disabled{cursor:not-allowed;opacity:.55}.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}
