.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 40% 30%,#152e58,#090f1a 70%);padding:var(--spacing-lg)}.login-container{background:var(--color-bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg),0 0 80px #4d9fff0f;max-width:420px;width:100%;overflow:hidden;animation:login-slide-in .3s ease}@keyframes login-slide-in{0%{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}.login-header{padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-lg);text-align:center;border-bottom:1px solid var(--border-subtle)}.login-header h1{margin:0 0 var(--spacing-sm) 0;font-family:var(--font-family-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:.01em}.login-header p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted)}.login-body{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-md)}.login-button{background:var(--accent-primary);color:var(--color-text-on-accent);border:none;padding:12px var(--spacing-xl);border-radius:var(--radius-md);font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);letter-spacing:.02em;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 8px #4d9fff4d;width:100%}.login-button:hover{background:var(--accent-primary-hover);box-shadow:0 4px 16px #4d9fff66;transform:translateY(-1px)}.login-button:active{transform:translateY(0);box-shadow:0 1px 4px #4d9fff4d}.login-info{text-align:center;padding:var(--spacing-md);background:var(--color-bg-elevated);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.login-info p{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.login-info strong{color:var(--accent-primary);font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.login-footer{background:var(--color-bg-elevated);padding:var(--spacing-md);text-align:center;border-top:1px solid var(--border-subtle)}.login-footer p{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted)}@media(max-width:768px){.login-container{max-width:90vw}.login-header h1{font-size:var(--font-size-lg)}}:root{--color-bg-base: #090f1a;--color-bg-surface: #102442;--color-bg-elevated: #152e58;--color-bg-overlay: #1c3a6e;--color-bg-input: #0c1c35;--accent-primary: #4d9fff;--accent-primary-hover:#75b8ff;--accent-primary-dim: rgba(77, 159, 255, .1);--accent-primary-glow: rgba(77, 159, 255, .2);--accent-primary-border: rgba(77, 159, 255, .35);--accent-success: #10b981;--accent-success-dim: rgba(16, 185, 129, .12);--accent-warning: #f59e0b;--accent-warning-dim: rgba(245, 158, 11, .12);--accent-error: #ef4444;--accent-error-dim: rgba(239, 68, 68, .1);--color-text-primary: #e8f1fb;--color-text-secondary: #b0cce8;--color-text-muted: #7198b8;--color-text-on-accent: #ffffff;--border-subtle: rgba(255, 255, 255, .05);--border-default: rgba(255, 255, 255, .09);--border-medium: rgba(255, 255, 255, .16);--border-accent: rgba(77, 159, 255, .35);--clr-signal-radar: #10b981;--clr-signal-text-radar: #ffffff;--clr-signal-skarp: #4d9fff;--clr-signal-text-skarp: #ffffff;--clr-signal-signal: #ef4444;--clr-signal-text-signal: #ffffff;--clr-signal-klaff: #4d9fff;--clr-signal-text-klaff: #ffffff;--clr-bg: #090f1a;--clr-bg-accent: #102442;--clr-bg-skog: #152e58;--clr-bg-hav: #1c3a6e;--clr-bg-jord: #0c1c35;--clr-bg-neutral: #3f5e7c;--clr-text-skog: #0c1c35;--clr-text-hav: #0d2040;--clr-text-jord: #0a1628;--clr-text-dark: #7198b8;--clr-text-light1: #e8f1fb;--clr-text-light2: #dfedf8;--clr-text-light3: #d5e6f5;--clr-text-light4: #eaf2fb;--clr-text-accent1: #b0cce8;--clr-text-accent2: #a8c8e8;--clr-text-accent3: #aec4de;--clr-text-lightest: #eaf2fb;--color-primary: var(--accent-primary);--color-primary-light: var(--accent-primary-hover);--color-primary-lighter: var(--color-bg-elevated);--color-primary-dark: var(--color-bg-input);--color-secondary: var(--accent-primary);--color-secondary-light: var(--accent-primary-hover);--color-secondary-dark: #2a6fc4;--color-accent-green: var(--accent-success);--color-accent-red: var(--accent-error);--color-accent-orange: var(--accent-warning);--color-neutral-white: #0c1c35;--color-neutral-light: #152e58;--color-neutral-medium: #3f5e7c;--color-neutral-dark: #7fa3cc;--color-neutral-darker: #dce8f7;--color-neutral-darkest: #eaf2fb;--color-text-inverse: #090f1a;--color-text-on-primary: #dce8f7;--color-bg-primary: var(--color-bg-surface);--color-bg-secondary: var(--color-bg-elevated);--color-bg-accent: var(--color-bg-overlay);--color-bg-dark: var(--color-bg-base);--color-border: rgba(255, 255, 255, .07);--color-border-light: rgba(255, 255, 255, .09);--color-border-medium: rgba(255, 255, 255, .16);--color-border-primary: rgba(77, 159, 255, .3);--color-success: #10b981;--color-success-light: rgba(16, 185, 129, .12);--color-warning: #f59e0b;--color-warning-light: rgba(245, 158, 11, .12);--color-error: #ef4444;--color-error-light: rgba(239, 68, 68, .1);--font-family-primary: "ForsvarsmaktenSans", "Inter", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-family-stencil: "ForsvarsmaktenSans-Stencil", "ForsvarsmaktenSans", sans-serif;--font-family-mono: "Monaco", "Menlo", "Ubuntu Mono", "Consolas", monospace;--font-size-xs: .725rem;--font-size-sm: .8375rem;--font-size-base: .9375rem;--font-size-lg: 1.0625rem;--font-size-xl: 1.2rem;--font-size-2xl: 1.45rem;--font-size-3xl: 1.8rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-condensed: 400;--font-weight-medium: 500;--font-weight-bold: 600;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--radius-xl: 14px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 16px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .3);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6), 0 4px 8px rgba(0, 0, 0, .35);--shadow-s: 0 1px 3px rgba(0, 0, 0, .45);--shadow-m: 0 4px 16px rgba(0, 0, 0, .4), 0 2px 4px rgba(0, 0, 0, .25);--shadow-l: 0 12px 40px rgba(0, 0, 0, .55), 0 4px 8px rgba(0, 0, 0, .3);--button-box-shadow: 0 1px 3px rgba(0, 0, 0, .4);--button-box-shadow-hover: 0 4px 10px rgba(0, 0, 0, .45);--button-box-shadow-active: inset 0 1px 3px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .22s ease;--transition-slow: .35s ease;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:1.55;color:var(--color-text-primary);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);line-height:1.25;color:var(--color-text-primary);margin-bottom:var(--spacing-md)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}select{appearance:none;background-color:transparent;border:none;padding:0 1em 0 0;margin:0;width:100%;font-family:inherit;font-size:inherit;cursor:inherit;line-height:inherit;outline:none}.fm-title{font-family:var(--font-family-stencil);font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase}.fm-label{font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.fm-text-light{font-weight:var(--font-weight-light)}.fm-text-normal{font-weight:var(--font-weight-normal)}.fm-text-bold{font-weight:var(--font-weight-bold)}.fm-text-condensed{font-weight:var(--font-weight-condensed);font-stretch:condensed}.fm-text-stencil{font-family:var(--font-family-stencil);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em}button,input[type=submit],input[type=reset]{background:none;color:inherit;border:none;padding:0;cursor:pointer;outline:inherit}.fm-button-primary,.fm-button-secondary{display:inline-flex;align-items:center;gap:6px;padding:7px var(--spacing-md);border-radius:var(--radius-md);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.03em;transition:all var(--transition-fast);cursor:pointer;white-space:nowrap}.fm-button-primary{background:var(--accent-primary);color:var(--color-text-on-accent);border:1px solid transparent;box-shadow:0 1px 3px #0006}.fm-button-primary:hover:not([disabled]){background:var(--accent-primary-hover);box-shadow:0 3px 10px #4d9fff4d}.fm-button-primary:active:not([disabled]){transform:translateY(1px);box-shadow:none}.fm-button-secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--border-default)}.fm-button-secondary:hover:not([disabled]){background:#ffffff0f;border-color:var(--border-medium);color:var(--color-text-primary)}.fm-button-secondary:active:not([disabled]){transform:translateY(1px)}.fm-button-primary[disabled],.fm-button-secondary[disabled]{opacity:.4;cursor:not-allowed}.fm-input{font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:7px var(--spacing-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);background-color:var(--color-bg-input);color:var(--color-text-primary)}.fm-input:focus{border-color:var(--accent-primary-border);outline:none;box-shadow:0 0 0 3px var(--accent-primary-glow)}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none;box-shadow:none}code,pre{font-family:var(--font-family-mono);font-size:var(--font-size-sm);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text-primary)}.btn-content-align{display:flex;align-items:center;justify-content:flex-start;gap:8px}.btn-content-align-center{display:flex;align-items:center;justify-content:center;gap:8px}input[type=range]:focus{outline:none}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-Bold-BMf1Fnx_.woff2) format("woff2");font-weight:700;font-style:normal;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-BoldItalic-CRxqbSWb.woff2) format("woff2");font-weight:700;font-style:italic;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-Condensed-CgYCOEIB.woff2) format("woff2");font-weight:400;font-style:normal;font-stretch:condensed}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-Light-Q4tvzq7H.woff2) format("woff2");font-weight:lighter;font-style:normal;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-LightItalic-D8XrFZcO.woff2) format("woff2");font-weight:lighter;font-style:italic;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-Regular-CLAsKywk.woff2) format("woff2");font-weight:400;font-style:normal;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans;src:url(/assets/ForsvarsmaktenSans-RegularItalic-BtSoZDlG.woff2) format("woff2");font-weight:400;font-style:italic;font-stretch:normal}@font-face{font-family:ForsvarsmaktenSans-Stencil;src:url(/assets/ForsvarsmaktenSans-Stencil-DKgVhhNX.woff2) format("woff2");font-weight:700;font-style:normal}:root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:.9;--rt-transition-show-delay:.15s;--rt-transition-closing-delay:.15s;--rt-arrow-size:8px}.core-styles-module_tooltip__3vRRp{left:0;opacity:0;pointer-events:none;position:absolute;top:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{background:inherit;position:absolute;z-index:-1}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay) ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay) ease-in}.styles-module_tooltip__mnnfp{border-radius:3px;font-size:90%;padding:8px 16px;width:max-content}.styles-module_arrow__K0L3T{height:var(--rt-arrow-size);width:var(--rt-arrow-size)}[class*=react-tooltip__place-top]>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*=react-tooltip__place-right]>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*=react-tooltip__place-bottom]>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*=react-tooltip__place-left]>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}.yaml-editor{border-radius:0 0 var(--radius-lg) var(--radius-lg);overflow:hidden;flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-top:none}.editor-toolbar{background:var(--color-bg-elevated);border-bottom:1px solid var(--accent-primary-border);padding:6px var(--spacing-md);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);flex-shrink:0}.editor-label{font-weight:var(--font-weight-bold);color:var(--color-text-secondary);letter-spacing:.03em;text-transform:uppercase;font-size:11px}.editor-info{color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:11px}.codemirror-container{flex:1;overflow:auto;background:var(--color-bg-base)}.codemirror-container .cm-editor{height:100%;background:transparent}.codemirror-container .cm-scroller{font-family:var(--font-family-mono);font-size:13px;line-height:1.55}.header{background:linear-gradient(90deg,#07101f,#0e213f 45%,#0d1e38);color:var(--color-text-primary);padding:0 var(--spacing-lg);position:relative;height:52px;min-height:52px;display:flex;align-items:center;flex-shrink:0;border-bottom:1px solid var(--border-subtle)}.header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent-primary);opacity:.7;transition:background var(--transition-slow),opacity var(--transition-slow)}.header--connected:after{background:var(--accent-primary);opacity:.8;box-shadow:0 0 8px var(--accent-primary-glow)}.header-content{width:100%;display:flex;align-items:center;gap:var(--spacing-lg)}.header-title{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0}.header-title h1{font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;margin:0;color:var(--color-text-primary);white-space:nowrap}.header .fm-subtitle{display:none}.file-info{display:flex;flex-direction:row;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.header .filename-label{font-family:var(--font-family-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-xs);color:var(--accent-error);white-space:nowrap;flex-shrink:0;letter-spacing:.02em;text-transform:uppercase;transition:color var(--transition-slow)}.header--connected .filename-label{color:var(--accent-success)}.header .filename-input{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:var(--color-text-secondary);padding:3px var(--spacing-sm);border-radius:var(--radius-sm);font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);flex:1;min-width:0;text-align:left;transition:all var(--transition-slow)}.header .filename-input:focus{border-color:var(--accent-primary-border);background:#ffffff14;outline:none;box-shadow:0 0 0 3px var(--accent-primary-glow)}.header .filename-input[disabled]{color:#ef4444b3;background:#ef44440d;border-color:#ef444426;cursor:default;opacity:1}.header--connected .filename-input[disabled]{color:#10b981cc;background:#10b9810f;border-color:#10b98133}.live-mode-indicator{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;flex-shrink:0;color:var(--accent-error);transition:color var(--transition-slow)}.live-mode-indicator.connected{color:var(--accent-success)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-error);flex-shrink:0;transition:background var(--transition-slow)}.live-mode-indicator.connected .live-dot{background:var(--accent-success);box-shadow:0 0 6px #10b98199;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.5}}.modified-indicator{color:var(--accent-warning);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);animation:pulse-dot 2s infinite;flex-shrink:0}.processing-indicator{color:var(--accent-primary);font-size:var(--font-size-sm);animation:spin 1s linear infinite;flex-shrink:0}.header-actions{display:flex;flex-direction:row;gap:var(--spacing-sm);align-items:center;justify-content:flex-end;flex-shrink:0}.app-version{font-family:var(--font-family-mono);font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--color-text-muted);letter-spacing:.04em;-webkit-user-select:none;user-select:none}.header .load-button,.header .save-button{font-size:var(--font-size-sm);white-space:nowrap}.header .save-button:disabled{opacity:.4;cursor:not-allowed}@media(max-width:768px){.header{padding:0 var(--spacing-sm)}.header .filename-input{display:none}.header-content{gap:var(--spacing-sm)}}.time-config-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.time-config-dialog{background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:0 20px 60px #0006;width:80vw;max-width:80vw;max-height:92vh;overflow:hidden;display:flex;flex-direction:column}.dialog-header{background:var(--color-bg-accent);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-light);display:flex;justify-content:space-between;align-items:center}.dialog-header h3{margin:0;color:var(--color-text-primary);font-size:var(--font-size-lg)}.close-button{background:none;border:none;font-size:var(--font-size-lg);cursor:pointer;color:var(--color-text-secondary);padding:var(--spacing-xs)}.close-button:hover{color:var(--color-text-primary)}.dialog-content{padding:var(--spacing-lg);overflow-y:auto;flex:1}.dialog-actions{padding:var(--spacing-lg);border-top:1px solid var(--color-border-light);display:flex;justify-content:flex-end;gap:var(--spacing-md);background:var(--color-bg-accent)}@media(max-width:768px){.time-config-dialog{width:95%;margin:var(--spacing-sm)}.dialog-content{padding:var(--spacing-md)}.dialog-actions{padding:var(--spacing-md);flex-direction:column}}.modal-overlay{position:fixed;inset:0;background:#0000008c;z-index:1300;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-dialog{position:relative;background:var(--color-bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:0 24px 48px #00000073;display:flex;flex-direction:column;max-width:95vw;max-height:90vh;overflow:hidden}.modal-size-sm{width:400px}.modal-size-md{width:560px}.modal-size-lg{width:800px}.modal-size-xl{width:85vw;max-width:1400px;height:85vh}.modal-danger{border-color:#ef444480;box-shadow:0 24px 48px #ef444433,0 24px 48px #00000073}.modal-close{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;z-index:1;transition:background var(--transition-fast),color var(--transition-fast)}.modal-close:hover{background:var(--accent-primary-dim);color:var(--accent-primary)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 50px 12px 16px;border-bottom:1px solid var(--border-subtle);background:var(--color-bg-elevated)}.modal-header h3{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);flex:1 1 auto;min-width:0}.modal-header-actions{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.modal-body{flex:1 1 auto;min-height:0;padding:14px 16px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border-subtle);background:var(--color-bg-elevated)}.modal-size-xl .modal-body{padding:0;gap:0;overflow:hidden}.csd-dialog{width:80vw;max-width:1100px}.csd-service-info{padding:var(--spacing-md);margin-bottom:var(--spacing-md);border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--border-subtle)}.csd-service-info>div:first-child strong{font-size:var(--font-size-base);color:var(--color-text-primary)}.csd-service-meta{margin-top:4px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.csd-service-meta code{background:var(--color-bg-input);padding:1px 6px;border-radius:var(--radius-sm);font-size:.85em;word-break:break-all}.csd-row{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--color-bg-secondary)}.csd-row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-subtle)}.csd-row-header h4{margin:0;font-size:var(--font-size-base);color:var(--color-text-primary);font-weight:var(--font-weight-bold)}.csd-row-remove{display:inline-flex;align-items:center;gap:4px;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);padding:4px 10px;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.csd-row-remove:hover{background:var(--accent-error-dim);border-color:#ef44444d;color:var(--accent-error)}.csd-row-field{margin-bottom:var(--spacing-md)}.csd-row-field:last-child{margin-bottom:0}.csd-hint{display:block;margin-top:4px;font-size:var(--font-size-sm);color:var(--color-text-muted)}.csd-hint code{background:var(--color-bg-input);padding:1px 5px;border-radius:var(--radius-sm);font-size:.85em}.csd-layers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.csd-select-all{background:transparent;border:none;color:var(--accent-primary);cursor:pointer;font-size:var(--font-size-sm);text-decoration:underline}.csd-select-all:hover{color:var(--color-text-primary)}.csd-layers-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--color-bg-input)}.csd-layer-item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border-subtle);font-size:var(--font-size-sm)}.csd-layer-item:last-child{border-bottom:none}.csd-layer-item:hover{background:var(--color-bg-surface)}.csd-layer-item input[type=checkbox]{flex-shrink:0}.csd-layer-title{flex:1;color:var(--color-text-primary)}.csd-layer-name{color:var(--color-text-muted);font-size:.85em;background:transparent}.csd-badge{background:var(--accent-primary);color:var(--color-bg-surface);padding:1px 6px;border-radius:var(--radius-sm);font-size:.7em;text-transform:uppercase;letter-spacing:.05em}.csd-empty{padding:var(--spacing-md);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.csd-layer-item.csd-layer-selected{background:var(--color-bg-surface);border-bottom-color:var(--border-default)}.csd-layer-divider{padding:4px 10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background:var(--color-bg-secondary);border-bottom:1px solid var(--border-subtle)}.csd-layer-arrows{display:inline-flex;gap:2px;margin-left:auto;flex-shrink:0}.csd-arrow{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.csd-arrow:hover:not(:disabled){background:var(--accent-primary);border-color:var(--accent-primary);color:var(--color-bg-surface)}.csd-arrow:disabled{opacity:.3;cursor:not-allowed}.csd-toggle-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.csd-toggle-group-3{grid-template-columns:1fr 1fr 1fr}.csd-toggle{text-align:left;padding:10px 12px;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--color-bg-input);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);display:flex;flex-direction:column;gap:4px}.csd-toggle strong{font-size:var(--font-size-sm)}.csd-toggle small{color:var(--color-text-muted);font-size:.75rem;line-height:1.3}.csd-toggle small code{background:#0003;padding:0 4px;border-radius:3px;font-size:.95em;word-break:break-all}.csd-toggle:hover{border-color:var(--accent-primary)}.csd-toggle.active{border-color:var(--accent-primary);background:var(--color-bg-secondary);box-shadow:0 0 0 1px var(--accent-primary) inset}.csd-cache-fields{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-left:3px solid var(--accent-primary);background:var(--color-bg-input);border-radius:0 var(--radius-md) var(--radius-md) 0}.csd-cache-field{margin-bottom:var(--spacing-sm)}.csd-cache-field:last-child{margin-bottom:0}.csd-required{color:var(--accent-error);font-weight:var(--font-weight-bold)}.csd-add-row{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px dashed var(--accent-primary);color:var(--accent-primary);padding:8px 16px;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-bold);transition:all var(--transition-fast);width:100%;justify-content:center}.csd-add-row:hover{background:var(--color-bg-secondary)}@media(max-width:720px){.csd-dialog{min-width:unset;width:95vw}.csd-toggle-group,.csd-toggle-group-3{grid-template-columns:1fr}}.file-upload-section{margin-bottom:var(--spacing-xl)}.file-upload-section h3{margin-bottom:var(--spacing-lg);color:var(--color-text-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.file-drop-zone{border:2px dashed var(--color-border-light);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;transition:all var(--transition-normal);cursor:pointer;min-height:200px;display:flex;flex-direction:column;justify-content:center;align-items:center}.file-drop-zone:hover{border-color:var(--clr-signal-skarp);transform:translateY(-2px);box-shadow:var(--shadow-md)}.file-drop-zone.drag-over{border-color:var(--clr-signal-radar);background:var(--color-success-light);transform:scale(1.02);box-shadow:var(--shadow-lg)}.file-drop-zone.processing{border-color:var(--clr-signal-skarp);background:var(--color-warning-light);cursor:not-allowed;animation:pulse-processing 2s ease-in-out infinite}@keyframes pulse-processing{0%,to{opacity:1}50%{opacity:.8}}.upload-icon{font-size:3rem;margin-bottom:var(--spacing-lg);color:var(--color-text-secondary)}.file-drop-zone p{margin:var(--spacing-sm) 0;color:var(--color-text-primary);font-family:var(--font-family-primary);font-weight:var(--font-weight-normal)}.upload-subtitle{color:var(--color-text-muted)!important;font-size:var(--font-size-sm);font-style:italic;margin:var(--spacing-md) 0}.processing-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.processing-indicator p{color:var(--color-text-primary);font-weight:var(--font-weight-medium);margin:0}.spinner{width:40px;height:40px;border:4px solid var(--clr-text-accent1);border-top:4px solid var(--clr-signal-radar);border-radius:50%;animation:spin 1s linear infinite}.error-message{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-error-light);border:2px solid var(--color-error);border-left:4px solid var(--color-error);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);word-break:break-all}.error-icon{flex-shrink:0;font-size:var(--font-size-lg)}.success-message{margin-top:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-success-light);border:2px solid var(--color-success);border-left:4px solid var(--color-success);border-radius:var(--radius-md);color:var(--clr-signal-text-radar);display:flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium)}.method-selector{margin-bottom:var(--spacing-lg)}.method-tabs{display:flex;border-bottom:2px solid var(--color-border-light)}.method-tab{flex:1;padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;border-bottom:3px solid transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-normal);font-family:var(--font-family-primary);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);text-align:center}.method-tab:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-bg-accent)}.method-tab.active{color:var(--clr-signal-radar);border-bottom-color:var(--clr-signal-radar);font-weight:var(--font-weight-bold)}.method-tab:disabled{opacity:.5;cursor:not-allowed}.append-mode-section{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-accent);border-radius:var(--radius-md);border:1px solid var(--color-border-light)}.append-toggle{display:flex;align-items:flex-start;gap:var(--spacing-sm);cursor:pointer}.append-toggle input[type=checkbox]{margin:0;transform:scale(1.2);accent-color:var(--clr-signal-radar)}.append-label{display:flex;flex-direction:column;gap:var(--spacing-xs)}.append-label small{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.url-input-section{min-height:200px;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-xl);border:2px dashed var(--color-border-light);border-radius:var(--radius-lg)}.url-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.url-input-group{display:flex;flex-direction:column;gap:var(--spacing-sm)}.url-input{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.url-examples{display:flex;flex-direction:column;gap:var(--spacing-xs)}.url-examples small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.example-urls{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.example-button{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.example-button:hover:not(:disabled){background:var(--clr-signal-radar);color:var(--color-text-inverse)}.example-button:disabled{opacity:.5;cursor:not-allowed}.url-submit-button{align-self:center;min-width:200px}.append-info{margin-top:var(--spacing-lg)}.append-info-box{background:var(--color-warning-light);border:1px solid var(--clr-signal-skarp);border-radius:var(--radius-md);padding:var(--spacing-md)}.append-info-box h5{margin:0 0 var(--spacing-sm) 0;color:var(--clr-signal-text-skarp);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.append-info-box p{margin:0;color:var(--clr-signal-text-skarp);font-size:var(--font-size-sm)}@media(max-width:768px){.file-drop-zone{padding:var(--spacing-lg);min-height:150px}.upload-icon{font-size:2.5rem;margin-bottom:var(--spacing-md)}.file-drop-zone p{font-size:var(--font-size-sm)}.method-tabs{flex-direction:column}.method-tab{text-align:center;border-bottom:1px solid var(--color-border-light);border-right:none}.method-tab.active{border-bottom-color:var(--clr-signal-radar)}.example-urls{flex-direction:column}.url-input-section{padding:var(--spacing-lg)}}.yaml-validator{padding:1rem 0;max-height:100%;overflow-y:auto}.yaml-validator h3{margin-bottom:1rem;color:var(--color-text-primary);font-size:1.1rem;font-weight:600}.validation-status{padding:.75rem;border-radius:6px;font-weight:600;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.validation-status.valid{background:var(--color-success-light);border:1px solid var(--clr-signal-radar)}.validation-status.invalid{background:var(--color-error-light);border:1px solid var(--clr-signal-signal)}.validation-section{margin-bottom:1rem;padding:.75rem;border-radius:6px;border-left:4px solid}.validation-section h4{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.validation-section ul{margin:0;padding-left:1.25rem;list-style-type:disc}.validation-section li{margin:.25rem 0;font-size:.9rem;line-height:1.4;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word}.validation-section.errors{background:var(--color-error-light);border-left-color:var(--clr-signal-signal)}.validation-section.warnings{background:var(--color-warning-light);border-left-color:var(--clr-signal-skarp)}.validation-section.suggestions{background:var(--color-success-light);border-left-color:var(--clr-signal-radar)}.config-service-manager{padding:var(--spacing-sm) var(--spacing-sm) 0;flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.service-actions{display:flex;justify-content:stretch;margin-bottom:var(--spacing-xs)}.add-service-btn{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;background:var(--accent-primary);color:var(--color-text-on-accent);border:none;padding:7px var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.02em;transition:all var(--transition-fast);box-shadow:0 1px 4px #4d9fff4d}.add-service-btn:hover{background:var(--accent-primary-hover);box-shadow:0 3px 10px #4d9fff66}.add-service-btn:active{transform:translateY(1px);box-shadow:none}.service-list-actions{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--spacing-xs);overflow-y:auto;flex:1;min-height:0;padding-bottom:var(--spacing-xs)}.service-list-actions::-webkit-scrollbar{width:4px}.service-list-actions::-webkit-scrollbar-track{background:transparent}.service-list-actions::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.service-list-actions::-webkit-scrollbar-thumb:hover{background:#4d9fff66}.service-item-actions{display:flex;justify-content:space-between;align-items:center;padding:5px var(--spacing-sm);background:transparent;border:1px solid transparent;border-left:2px solid transparent;border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;-webkit-user-select:none;user-select:none}.service-item-actions:hover{background:#ffffff08;border-color:var(--border-subtle);border-left-color:#4d9fff66}.service-item-actions.selected{background:var(--accent-primary-dim);border-color:var(--border-subtle);border-left-color:var(--accent-primary)}.service-name-label{font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;display:flex;align-items:center;gap:6px}.service-default-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-primary);flex-shrink:0;opacity:.7}.bbox-badge-sm{font-size:9px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:#38bdf8;background:#0ea5e91f;border:1px solid rgba(14,165,233,.25);padding:1px 4px;border-radius:3px;flex-shrink:0}.service-buttons{display:flex;gap:4px;flex-shrink:0}.rename-btn,.delete-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);padding:3px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted);transition:all var(--transition-fast);line-height:1}.rename-btn:hover{border-color:#4d9fff59;background:var(--accent-primary-dim);color:var(--accent-primary);transform:none}.delete-btn:hover:not(:disabled){border-color:#ef444459;background:var(--accent-error-dim);color:var(--accent-error);transform:none}.delete-btn:disabled{opacity:.25;cursor:not-allowed}.modal-body .fm-label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-muted);font-size:11px}.modal-body .fm-input{width:100%;margin-bottom:var(--spacing-sm);background:var(--color-bg-input)}.input-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:var(--spacing-xs) 0 var(--spacing-md) 0;font-style:italic;line-height:1.5}.input-hint code{background:#ffffff0d;padding:1px 5px;border-radius:var(--radius-sm);font-family:var(--font-family-mono);color:var(--accent-primary);font-style:normal}.rename-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);line-height:1.5}.rename-info strong{color:var(--accent-primary);font-family:var(--font-family-mono);font-size:var(--font-size-xs)}.delete-warning{text-align:center;padding:var(--spacing-sm) 0}.delete-warning p{margin:var(--spacing-sm) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.service-name-highlight{font-size:var(--font-size-base);color:var(--accent-error);font-family:var(--font-family-mono);background:var(--accent-error-dim);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border:1px solid rgba(239,68,68,.2);margin:var(--spacing-md) 0}.warning-text{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic;line-height:1.5}.delete-cache-option{margin-top:var(--spacing-md);padding:var(--spacing-md);background:#ffffff08;border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.modal-body .error-message{background:var(--accent-error-dim);color:var(--accent-error);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);border-left:3px solid var(--accent-error);font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.fm-button-danger{display:inline-flex;align-items:center;gap:6px;background:var(--accent-error);color:#fff;border:none;padding:7px var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:.02em;transition:all var(--transition-fast);box-shadow:0 1px 4px #ef444459}.fm-button-danger:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 3px 10px #ef444466}.fm-button-danger:active:not(:disabled){transform:translateY(1px);box-shadow:none}.fm-button-danger:disabled{opacity:.4;cursor:not-allowed}.bbox-upload-section{margin:var(--spacing-xs) 0}.bbox-upload-toggle-btn{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;background:none;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.bbox-upload-toggle-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary-border)}.bbox-upload-panel{margin-top:var(--spacing-xs);display:flex;flex-direction:column;gap:var(--spacing-xs)}.bbox-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 10px;border:2px dashed var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast),background var(--transition-fast);text-align:center}.bbox-drop-zone:hover,.bbox-drop-zone.drag-over{border-color:var(--accent-primary);color:var(--color-text-primary);background:var(--accent-primary-dim)}.bbox-drop-hint{font-size:11px;color:var(--color-text-muted)}.bbox-upload-progress{display:flex;flex-direction:column;gap:4px;padding:8px 0}.bbox-upload-filename{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bbox-progress-bar{height:6px;background:var(--color-bg-elevated);border-radius:3px;overflow:hidden}.bbox-progress-fill{height:100%;background:var(--accent-primary);border-radius:3px;transition:width .15s ease}.bbox-upload-stats{display:flex;justify-content:space-between;align-items:center}.bbox-upload-pct,.bbox-upload-speed{font-size:11px;color:var(--color-text-muted);font-family:var(--font-family-mono)}.bbox-upload-header{display:flex;align-items:center;justify-content:space-between;gap:4px}.upload-cancel-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:2px;border-radius:3px;display:flex;align-items:center}.upload-cancel-btn:hover{color:var(--color-error, #ef4444);background:var(--color-bg-elevated)}.bbox-upload-resumed{font-size:10px;color:var(--accent-primary);font-family:var(--font-family-mono)}.bbox-upload-phase{font-size:10px;color:var(--color-text-muted);font-style:italic}.bbox-upload-error{margin:0;padding:8px 10px;font-size:var(--font-size-xs);font-family:inherit;line-height:1.5;color:var(--color-error, #ef4444);background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word}.bbox-upload-info{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid rgba(56,189,248,.25);background:#0ea5e914;border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-muted)}.service-item-actions.bbox-normalizing,.service-item-actions.bbox-converting,.service-item-actions.bbox-failed{cursor:default}.service-item-actions.bbox-normalizing .service-name-label,.service-item-actions.bbox-converting .service-name-label,.service-item-actions.bbox-failed .service-name-label{opacity:.7}.service-item-actions.bbox-normalizing:hover,.service-item-actions.bbox-converting:hover{background:inherit}.bbox-status-tag{font-size:9px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;margin-left:4px;flex-shrink:0}.bbox-status-normalizing{color:#fbbf24;background:#fbbf241a;border:1px solid rgba(251,191,36,.3)}.bbox-status-converting{color:#38bdf8;background:#38bdf81a;border:1px solid rgba(56,189,248,.3)}.bbox-status-failed{color:#ef4444;background:#ef44441a;border:1px solid rgba(239,68,68,.3)}.bbox-status-lowdetail{color:#f59e0b;background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);cursor:help}.config-status-private{color:#a78bfa;background:#a78bfa1a;border:1px solid rgba(167,139,250,.35);cursor:help}.svc-marquee{flex:1 1 0;min-width:0;overflow:hidden}.svc-marquee__track{display:flex;width:max-content;animation:svc-marquee-scroll 12s linear infinite;will-change:transform}.service-item-actions:hover .svc-marquee__track{animation-play-state:paused}.svc-marquee__seg{display:flex;align-items:center;gap:6px;white-space:nowrap;padding-right:2.5rem}@keyframes svc-marquee-scroll{to{transform:translate(-50%)}}.svc-name-static{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(prefers-reduced-motion:reduce){.svc-marquee__track{animation:none}.svc-marquee__seg[aria-hidden=true]{display:none}}.upload-queue{margin-top:8px;display:flex;flex-direction:column;gap:4px}.upload-queue-header{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-xs);color:var(--color-text-muted);padding:2px 4px}.upload-queue-clear-finished{background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xs);text-decoration:underline}.upload-queue-list{display:flex;flex-direction:column;gap:4px;max-height:360px;overflow-y:auto}.upload-queue-row{padding:6px 8px;background:var(--color-bg-elevated, rgba(255, 255, 255, .02));border:1px solid var(--border-subtle);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:4px}.upload-queue-row.phase-done{border-color:#22c55e66}.upload-queue-row.phase-error,.upload-queue-row.phase-cancelled{border-color:#ef444466}.upload-queue-row-top{display:flex;align-items:center;gap:8px}.upload-queue-filename{flex:1;font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-queue-status{font-size:var(--font-size-xs);color:var(--color-text-muted);flex-shrink:0}.upload-queue-error{font-size:var(--font-size-xs);color:#ef4444}.upload-queue-retry{margin-left:8px;background:transparent;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xs)}.upload-queue-vtpk-options{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs)}.vtpk-format-toggle{display:inline-flex;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.vtpk-format-btn{padding:2px 8px;background:transparent;border:none;color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer}.vtpk-format-btn.active{background:#38bdf826;color:#38bdf8}.vtpk-format-toggle.disabled .vtpk-format-btn{cursor:default;opacity:.5}.upload-target-toggle{display:flex;gap:0;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.upload-target-btn{flex:1;padding:4px 10px;background:transparent;border:none;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);font-family:var(--font-family-primary);cursor:pointer;transition:all var(--transition-fast)}.upload-target-btn:first-child{border-right:1px solid var(--border-subtle)}.upload-target-btn:hover:not(.active){color:var(--color-text-secondary);background:#ffffff08}.upload-target-btn.active{background:var(--accent-primary-dim);color:var(--accent-primary);font-weight:var(--font-weight-bold)}.upload-wmts-url{display:flex;flex-direction:column;gap:6px;padding:10px;background:#4d9fff0f;border:1px solid rgba(77,159,255,.2);border-radius:var(--radius-sm)}.upload-wmts-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--accent-primary)}.upload-wmts-copy-row{display:flex;gap:4px}.upload-wmts-input{flex:1;min-width:0;padding:4px 8px;background:var(--color-bg-input);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:11px;font-family:var(--font-family-mono)}.upload-wmts-copy-btn{padding:4px 10px;background:var(--accent-primary);color:var(--color-text-on-accent);border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);font-family:var(--font-family-primary);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast)}.upload-wmts-copy-btn:hover{background:var(--accent-primary-hover)}.upload-wmts-hint{font-size:11px;color:var(--color-text-muted);font-style:italic}.upload-wmts-dismiss{align-self:flex-end;padding:3px 12px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);font-family:var(--font-family-primary);cursor:pointer;transition:all var(--transition-fast)}.upload-wmts-dismiss:hover{color:var(--color-text-secondary);border-color:var(--border-default)}@media(max-width:768px){.modal-content{min-width:90vw;max-width:90vw;margin:var(--spacing-md);border-radius:var(--radius-lg)}.service-item-actions{gap:var(--spacing-sm)}}.config-selector{display:flex;flex-direction:column;gap:0;overflow:hidden;height:100%}.config-selector-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.config-selector-header h3{margin:0;font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.08em}.config-selector-header h3 svg{color:var(--accent-primary);opacity:.7}.refresh-btn{display:flex;align-items:center;gap:4px;background:transparent;color:var(--color-text-muted);border:1px solid var(--border-subtle);padding:3px 8px;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);letter-spacing:.03em;transition:all var(--transition-fast)}.refresh-btn:hover:not(:disabled){background:#ffffff0d;color:var(--color-text-secondary);border-color:var(--border-default)}.refresh-btn:active:not(:disabled){transform:translateY(1px)}.refresh-btn:disabled{opacity:.35;cursor:not-allowed}.error-message{background:var(--accent-error-dim);color:var(--accent-error);padding:var(--spacing-sm) var(--spacing-md);margin:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);border-left:3px solid var(--accent-error);font-size:var(--font-size-xs);flex-shrink:0}.loading{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted);font-size:var(--font-size-sm)}.config-list{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-xs) var(--spacing-sm);overflow-y:auto;flex:1}.no-configs{text-align:center;padding:var(--spacing-2xl) var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.6}.config-item{position:relative;border:1px solid var(--border-subtle);border-left:2px solid transparent;border-radius:var(--radius-md);padding:10px var(--spacing-md);cursor:pointer;transition:all var(--transition-fast);background:transparent}.config-item:hover{background:#ffffff08;border-left-color:#4d9fff66}.config-item.selected{background:var(--accent-primary-dim);border-color:var(--border-default);border-left-color:var(--accent-primary)}.bbox-item{cursor:default}.bbox-item:hover{border-left-color:#4d9fff59}.config-disconnect-btn{position:absolute;top:6px;right:6px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);padding:0;z-index:1}.config-disconnect-btn:hover{background:var(--accent-error-dim);border-color:#ef444459;color:var(--accent-error)}.config-disconnect-btn:disabled{opacity:.3;cursor:not-allowed}.config-name{display:flex;align-items:center;gap:6px;margin-bottom:4px}.config-name strong{font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:.01em}.default-badge{background:var(--accent-primary-dim);color:var(--accent-primary);border:1px solid var(--accent-primary-border);padding:1px 5px;border-radius:3px;font-size:10px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.bbox-badge{background:#0ea5e91f;color:#38bdf8;border:1px solid rgba(14,165,233,.3);padding:1px 5px;border-radius:3px;font-size:10px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.config-details{display:flex;gap:var(--spacing-md);margin-bottom:2px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.config-filename{font-family:var(--font-family-mono);font-size:11px;color:var(--color-text-secondary);background:#ffffff0a;padding:1px 5px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.config-size{color:var(--color-text-muted);font-size:11px}.config-cache-size{margin-top:1px}.config-cache-label{color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.cache-size-loading{opacity:.35;font-size:11px}.config-modified{font-size:11px;color:var(--color-text-muted);margin-top:4px}.config-capabilities{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-subtle);align-items:center}.capability-title{font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;flex-basis:100%;margin-bottom:2px;display:flex;align-items:center;gap:4px}.capability-btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-family-primary);font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-decoration:none;padding:2px 7px;border-radius:3px;background:#ffffff0a;border:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast);text-transform:uppercase;letter-spacing:.05em;min-width:44px;text-align:center;white-space:nowrap}.capability-btn.connected{color:var(--color-text-muted)}.capability-btn:hover{background:var(--accent-primary-dim);border-color:var(--accent-primary-border);color:var(--accent-primary-hover);transform:none}.capability-btn:active{transform:translateY(1px)}a.capability-btn{display:inline-flex;align-items:center;justify-content:center}.config-list::-webkit-scrollbar{width:4px}.config-list::-webkit-scrollbar-track{background:transparent}.config-list::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.config-list::-webkit-scrollbar-thumb:hover{background:#4d9fff66}.multi-badge{background:var(--accent-primary-dim);color:var(--accent-primary);border:1px solid var(--accent-primary-border);padding:1px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em}@media(max-width:768px){.config-selector-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm)}.refresh-btn{width:100%;justify-content:center;padding:var(--spacing-sm)}.config-details{flex-direction:column;gap:var(--spacing-xs)}.config-capabilities{flex-direction:column;align-items:stretch}.capability-btn{width:100%;justify-content:center;font-size:var(--font-size-xs);padding:var(--spacing-xs);min-width:unset}}@media(max-width:480px){.config-item{padding:var(--spacing-sm)}.config-name strong{font-size:var(--font-size-xs)}}.config-manager{display:flex;flex-direction:column;height:100%;max-height:100%;overflow:hidden;background:transparent}.config-manager h3{margin:0 0 var(--spacing-xs) 0;color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);flex-shrink:0;text-transform:uppercase;letter-spacing:.06em}.config-manager-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--spacing-sm);padding-right:var(--spacing-xs)}.config-manager-content::-webkit-scrollbar{width:4px}.config-manager-content::-webkit-scrollbar-track{background:transparent}.config-manager-content::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.config-manager-content::-webkit-scrollbar-thumb:hover{background:#4d9fff66}.config-status,.config-path-section,.config-actions,.error-message,.live-config-info{flex-shrink:0}.config-status{padding:var(--spacing-md);border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin-bottom:var(--spacing-sm);background:var(--color-bg-elevated)}.status-indicator{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.status-indicator.connected .status-text{color:var(--accent-success);font-weight:var(--font-weight-bold)}.status-indicator.disconnected .status-text{color:var(--color-text-muted)}.last-loaded{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.config-path-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.config-path-input{width:100%;font-family:var(--font-family-mono);font-size:var(--font-size-sm)}.path-suggestions small{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.suggestion-buttons{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-right:var(--spacing-xs);height:100%}.suggestion-button{padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family-mono);text-align:left;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-button:hover:not(:disabled){background:var(--accent-primary-dim);border-color:var(--accent-primary-border);color:var(--color-text-primary)}.suggestion-button:disabled{opacity:.35;cursor:not-allowed}.os-info{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.config-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;margin-bottom:var(--spacing-sm);justify-content:center}.live-config-info{margin-top:var(--spacing-md)}.info-box{background:var(--accent-success-dim);border:1px solid rgba(16,185,129,.25);border-radius:var(--radius-md);padding:var(--spacing-md)}.info-box h5{margin:0 0 var(--spacing-sm) 0;color:var(--accent-success);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold)}.info-box ul{margin:0;padding-left:var(--spacing-lg);color:var(--color-text-secondary)}.info-box li{margin:var(--spacing-xs) 0;font-size:var(--font-size-sm)}.error-message{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-error-dim);border:1px solid rgba(239,68,68,.25);border-left:3px solid var(--accent-error);border-radius:var(--radius-md);display:flex;align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--accent-error);word-break:break-all}.error-icon{flex-shrink:0;font-size:var(--font-size-base)}@media(max-height:600px){.config-manager-content{gap:var(--spacing-sm)}}@media(max-width:768px){.config-actions{flex-direction:column;gap:var(--spacing-sm)}.config-actions button{width:100%}}.playback-controls{display:flex;gap:4px;flex-shrink:0}.playback-controls button{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-subtle);border-radius:6px;background:var(--color-bg-input, var(--clr-bg-jord));color:var(--color-text-primary);cursor:pointer;transition:background .15s,color .15s,transform .1s;padding:0}.playback-controls button:hover:not(:disabled){background:var(--color-bg-overlay, var(--clr-bg-hav));color:var(--clr-signal-skarp)}.playback-controls button:focus-visible{outline:2px solid var(--clr-signal-skarp);outline-offset:1px}.playback-controls button:disabled{opacity:.4;cursor:not-allowed}.playback-controls .play-button{background:var(--clr-signal-skarp);color:#fff;border-color:var(--clr-signal-skarp)}.playback-controls .play-button:hover:not(:disabled){background:var(--clr-signal-klaff);color:#fff;border-color:var(--clr-signal-klaff)}.time-range-slider{position:relative;width:100%;height:28px}.trs-track{position:absolute;top:50%;left:0;right:0;height:6px;transform:translateY(-50%);background:var(--color-bg-input, var(--clr-bg-jord));border:1px solid var(--border-subtle);border-radius:3px;cursor:pointer}.trs-track-selected{position:absolute;top:-1px;height:calc(100% + 2px);background:var(--clr-signal-skarp);opacity:.55;border-radius:3px;pointer-events:none}.trs-playhead{position:absolute;top:50%;width:2px;height:18px;background:var(--clr-signal-klaff);transform:translate(-1px,-50%);pointer-events:none;box-shadow:0 0 6px var(--clr-signal-klaff);border-radius:1px}.trs-thumb{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none;margin:0}.trs-thumb::-webkit-slider-runnable-track{background:transparent;height:100%}.trs-thumb::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--clr-signal-skarp);border:2px solid var(--color-text-primary);box-shadow:0 2px 6px #00000080;cursor:grab;transition:transform .15s,box-shadow .15s}.trs-thumb::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 3px 10px #4d9fff99}.trs-thumb::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.05)}.trs-thumb::-moz-range-track{background:transparent;height:100%}.trs-thumb::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--clr-signal-skarp);border:2px solid var(--color-text-primary);box-shadow:0 2px 6px #00000080;cursor:grab;transition:transform .15s,box-shadow .15s}.trs-thumb::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 3px 10px #4d9fff99}.speed-control{display:flex;flex-direction:column;align-items:center;gap:2px;flex-shrink:0}.speed-control-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.speed-control-select{padding:4px 8px;border:1px solid var(--border-subtle);border-radius:6px;font-size:12px;background:var(--color-bg-input, var(--clr-bg-jord));color:var(--color-text-primary);cursor:pointer}.speed-control-select:hover{border-color:var(--clr-signal-skarp)}.speed-control-select:focus-visible{outline:2px solid var(--clr-signal-skarp);outline-offset:1px}.prepare-panel{display:flex;flex-direction:column;align-items:stretch;gap:4px;flex-shrink:0;min-width:110px}.prepare-btn{padding:6px 12px;border:1px solid var(--border-subtle);border-radius:6px;cursor:pointer;font-size:12px;font-weight:500;background:var(--color-bg-input, var(--clr-bg-jord));color:var(--color-text-primary);transition:background .15s,color .15s,border-color .15s;text-align:center;white-space:nowrap}.prepare-btn:hover:not(:disabled){background:var(--color-bg-overlay, var(--clr-bg-hav));border-color:var(--clr-signal-skarp);color:var(--clr-signal-skarp)}.prepare-btn:disabled{opacity:.4;cursor:not-allowed}.prepare-progress{width:100%;height:3px;border-radius:2px;background:var(--color-bg-input, var(--clr-bg-jord));overflow:hidden}.prepare-progress-bar{height:100%;background:var(--clr-signal-skarp);transition:width .2s ease-out}.time-controls{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:min(90vw,1100px);background:var(--color-bg-surface);color:var(--color-text-primary);border:1px solid var(--border-subtle);border-radius:8px;box-shadow:var(--shadow-m, 0 6px 20px rgba(0, 0, 0, .35));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:8px 14px 10px;display:flex;flex-direction:column;gap:4px;z-index:10}.time-readout-label{display:block;text-align:center;font-size:12px;font-weight:500;color:var(--color-text-primary);letter-spacing:.02em}.time-readout-info{text-align:center;font-size:11px;color:var(--color-text-muted);margin-top:2px}.time-controls-row{display:flex;align-items:center;gap:14px;padding:4px 4px 0}.time-controls-row .time-slider{flex:1;min-width:0}.time-slider{display:flex;flex-direction:column;gap:6px}.opacity-slider-container{display:flex;flex-direction:column;gap:8px;width:100%;padding:8px 0}.opacity-label{font-size:12px;color:var(--color-text-muted);display:flex;justify-content:space-between;align-items:center}.opacity-slider{width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,#4d9fff00,#4d9fff33,#4d9fff80,#4d9fffbf,#4d9fff);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--clr-signal-radar);border:2px solid white;box-shadow:0 2px 4px #0000004d;cursor:pointer;transition:transform .2s,box-shadow .2s}.opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 3px 6px #0006}.opacity-slider::-webkit-slider-thumb:active{transform:scale(1.05);box-shadow:0 1px 3px #0006}.opacity-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--clr-signal-radar);border:2px solid white;box-shadow:0 2px 4px #0000004d;cursor:pointer;transition:transform .2s,box-shadow .2s}.opacity-slider::-moz-range-thumb:hover{transform:scale(1.15);box-shadow:0 3px 6px #0006}.opacity-slider::-moz-range-thumb:active{transform:scale(1.05);box-shadow:0 1px 3px #0006}.opacity-slider::-moz-range-track{height:6px;border-radius:3px}.opacity-marks{display:flex;justify-content:space-between;font-size:10px;color:var(--color-text-muted);padding:0 2px}@media(max-width:768px){.opacity-slider-container{gap:6px}.opacity-label{font-size:11px}.opacity-slider{height:8px}.opacity-slider::-webkit-slider-thumb{width:18px;height:18px}.opacity-slider::-moz-range-thumb{width:18px;height:18px}.opacity-marks{font-size:9px}}:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}.map-viewer{position:relative;width:100%;height:100%;border:1px solid var(--border-subtle);overflow:hidden;background:#1a2535}.map-container{width:100%;height:100%}.map-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#ffffffe6;padding:20px 40px;border-radius:8px;text-align:center;pointer-events:none}.map-overlay p{margin:0;font-size:16px}.ol-popup{position:absolute;background-color:var(--clr-bg-accent);box-shadow:0 4px 12px #0000004d;padding:16px;border-radius:8px;bottom:12px;left:-50px}.ol-popup:after,.ol-popup:before{top:100%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.ol-popup:after{border-top-color:var(--clr-bg-accent);border-width:10px;left:48px;margin-left:-10px}.ol-popup:before{border-top-color:#0003;border-width:11px;left:48px;margin-left:-11px}.ol-popup-closer{position:absolute;top:8px;right:8px;background:transparent;border:none;font-size:20px;cursor:pointer;color:#666;z-index:1;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.ol-popup-closer:hover{color:var(--clr-signal-skarp)}.ol-popup-content{overflow-y:auto}.ol-popup-content table{font-size:13px}.ol-popup-content table td{padding:8px 12px}.ol-popup-content table td:first-child{border-right:1px solid rgb(240,240,240)}.ol-popup-content table tr:hover{background-color:var(--clr-bg)}.ol-popup-content h4{margin:0 0 12px;color:var(--clr-signal-skarp);font-size:16px;padding-right:24px}.feature-info{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #eee}.feature-info:last-child{border-bottom:none;margin-bottom:0}.feature-info strong{color:var(--clr-signal-skarp);font-size:14px;display:block;margin-bottom:8px}.feature-info table{width:100%;border-collapse:collapse}.feature-info td{padding:4px 8px;font-size:13px;border-bottom:1px solid #f5f5f5}.feature-info td:first-child{width:40%;color:#666}.feature-info tr:last-child td{border-bottom:none}.html-response{font-size:13px;max-width:100%;overflow-x:auto}.html-response table{width:100%;border-collapse:collapse}.html-response td,.html-response th{padding:4px 8px;border:1px solid #ddd;font-size:12px}.text-response{font-size:12px;white-space:pre-wrap;word-wrap:break-word;padding:8px;border-radius:4px;margin:0}.map-token-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;max-width:380px;width:calc(100% - 48px);padding:28px 32px;border-radius:12px;text-align:center;background:#141414ed;border:1px solid var(--clr-signal-signal);box-shadow:0 8px 40px #0009;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff}.map-token-error__icon{color:var(--clr-signal-signal);margin-bottom:10px;display:flex;justify-content:center}.map-token-error h3{margin:0 0 12px;font-size:16px;font-weight:600;color:var(--clr-signal-signal);letter-spacing:.03em}.map-token-error p{margin:0 0 10px;font-size:13px;line-height:1.55;opacity:.88}.map-token-error p:last-of-type{margin-bottom:18px}.map-token-error__input{width:100%;box-sizing:border-box;margin:8px 0 10px;padding:8px 10px;background:#ffffff12;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:11px;font-family:monospace;line-height:1.5;resize:vertical;outline:none;transition:border-color .15s}.map-token-error__input:focus{border-color:var(--clr-signal-signal)}.map-token-error__input::placeholder{color:#ffffff59}.map-token-error__update-error{color:var(--clr-signal-signal)!important;font-size:12px!important;margin:0 0 8px!important;opacity:1!important}.map-token-error__actions{display:flex;gap:8px;justify-content:center;align-items:center}.map-token-error__update-btn{background:var(--clr-signal-signal);border:none;color:#fff;padding:7px 20px;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600;transition:opacity .15s}.map-token-error__update-btn:disabled{opacity:.45;cursor:not-allowed}.map-token-error__update-btn:not(:disabled):hover{opacity:.85}.map-token-error__dismiss{background:transparent;border:1px solid rgba(255,255,255,.25);color:#ffffffbf;padding:6px 20px;border-radius:6px;cursor:pointer;font-size:13px;transition:background .15s,color .15s}.map-token-error__dismiss:hover{background:#ffffff1a;color:#fff}.map-info-toggle-btn{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;border:1px solid var(--border-subtle);background:var(--color-bg-surface);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-s);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:background .15s,color .15s;z-index:10}.map-info-toggle-btn:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .12));color:var(--color-text-primary)}.map-info-panel{position:absolute;top:8px;right:8px;background:var(--color-bg-surface);color:var(--color-text-muted);padding:8px 12px;border-radius:6px;font-size:12px;box-shadow:var(--shadow-s);border:1px solid var(--border-subtle);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:10;min-width:220px}.map-info-close-btn{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;transition:background .15s,color .15s}.map-info-close-btn:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .12));color:var(--color-text-primary)}.map-info-panel>div{margin-bottom:4px;padding-right:20px}.map-info-panel>div:last-child{margin-bottom:0}.map-info-panel .map-info-url{word-break:break-all}.map-legend-toggle-btn{position:absolute;bottom:24px;left:8px;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:6px;border:1px solid var(--border-subtle);background:var(--color-bg-surface);color:var(--color-text-muted);cursor:pointer;box-shadow:var(--shadow-s);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:background .15s,color .15s;z-index:10}.map-legend-toggle-btn:hover{background:var(--color-bg-hover, rgba(255, 255, 255, .12));color:var(--color-text-primary)}.map-legend-panel{position:absolute;bottom:24px;left:8px;background:var(--color-bg-surface);color:var(--color-text-muted);padding:8px 12px;border-radius:6px;font-size:12px;box-shadow:var(--shadow-s);border:1px solid var(--border-subtle);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:11;max-width:280px;max-height:50%;overflow-y:auto}.map-legend-header{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;color:var(--color-text-primary, #fff);margin-bottom:6px}.map-legend-header .map-info-close-btn{position:static}.map-legend-img{display:block;max-width:100%;background:#fff;border-radius:4px;padding:4px}.map-legend-rows{display:flex;flex-direction:column;gap:4px}.map-legend-row{display:flex;align-items:center;gap:8px;min-width:0}.map-legend-swatch{flex-shrink:0;width:16px;height:16px;border-radius:3px;border:1px solid rgba(255,255,255,.25)}.map-legend-swatch--line{height:0;border:none;border-top:3px solid;border-radius:2px}.map-legend-swatch--circle{border-radius:50%}.map-legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-info-query-toggle{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.map-info-query-toggle input{accent-color:var(--accent-primary, #4d9fff);cursor:pointer}.guide-viewer{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow:hidden}.guide-dropdown-bar{padding:8px 12px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;background:var(--color-bg-elevated);display:flex;align-items:center;gap:var(--spacing-sm)}.guide-doc-actions{display:flex;gap:4px;flex-shrink:0;margin-left:auto}.guide-action-btn{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:4px 6px;cursor:pointer;color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.guide-action-btn:hover{color:var(--color-text-primary);border-color:var(--color-border)}.guide-action-btn-delete:hover:not(:disabled){color:#e74c3c;border-color:#e74c3c66}.guide-action-btn:disabled{opacity:.35;cursor:not-allowed}.guide-editor-bar{display:flex;align-items:center;gap:var(--spacing-sm)}.guide-editing-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guide-filename-input{flex:1;min-width:0;padding:4px 8px;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit}.guide-filename-input:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 3px var(--accent-primary-glow)}.guide-editor-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0;margin-left:auto}.guide-editor-error{font-size:var(--font-size-xs);color:#e74c3c}.guide-editor-btn{display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:4px 10px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.guide-editor-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border)}.guide-editor-btn:disabled{opacity:.5;cursor:not-allowed}.guide-editor-btn-save{color:var(--accent-primary);border-color:var(--accent-primary-border)}.guide-editor-btn-save:hover:not(:disabled){color:var(--accent-primary);background:var(--accent-primary-dim);border-color:var(--accent-primary-border)}.guide-editor-textarea{flex:1;min-height:0;resize:none;padding:var(--spacing-md);background:var(--color-bg-base, #0d1117);border:none;color:var(--color-text-primary);font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:1.6;outline:none;box-sizing:border-box;width:100%}.guide-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.guide-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.guide-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);color:var(--color-text-muted);font-size:var(--font-size-sm)}.guide-empty a{color:var(--accent-primary);text-decoration:none;font-size:var(--font-size-sm)}.guide-empty a:hover{color:var(--accent-primary-hover);text-decoration:underline}.markdown-content{font-family:var(--font-family-primary);font-size:var(--font-size-base);line-height:1.65;color:var(--color-text-secondary);margin:0;padding:var(--spacing-lg);height:100%;overflow-y:auto;padding-right:12px}.markdown-content h1,.markdown-content h2{border-bottom:1px solid var(--border-subtle);padding-bottom:.3em;margin:24px 0 16px}.markdown-content h1{font-size:1.8em;color:var(--color-text-primary)}.markdown-content h2{font-size:1.4em;color:var(--color-text-primary)}.markdown-content h3{font-size:1.2em;color:var(--color-text-primary);margin:20px 0 12px}.markdown-content h4{font-size:1.05em;color:var(--color-text-primary);margin:16px 0 10px}.markdown-content p{margin:0 0 16px}.markdown-content ul,.markdown-content ol{margin:0 0 16px;padding-left:1.8em}.markdown-content li{margin-bottom:.3em}.markdown-content strong{font-weight:600;color:var(--color-text-primary)}.markdown-content a{color:var(--accent-primary);text-decoration:none}.markdown-content a:hover{color:var(--accent-primary-hover);text-decoration:underline}.markdown-content table{border-collapse:collapse;width:100%;margin:16px 0;font-size:var(--font-size-sm)}.markdown-content th,.markdown-content td{padding:8px 12px;text-align:left;border:1px solid var(--border-subtle)}.markdown-content th{background:var(--color-bg-elevated);color:var(--color-text-primary);font-weight:600}.markdown-content tr:nth-child(2n){background:#ffffff05}.markdown-content blockquote{border-left:3px solid var(--accent-primary-border);padding-left:1em;color:var(--color-text-muted);margin:16px 0;font-style:italic}.markdown-content code:not([class*=language-]){padding:2px 5px;border-radius:3px;font-family:var(--font-family-mono);font-size:.875em;background:var(--color-bg-elevated);border:1px solid var(--border-subtle);color:var(--accent-primary-hover)}.markdown-content pre{background:var(--color-bg-base);color:#e6edf3;padding:16px;margin:16px 0;border-radius:var(--radius-md);overflow-x:auto;border:1px solid var(--border-subtle);position:relative;font-size:var(--font-size-sm)}.markdown-content pre code{background:none;border:none;padding:0;color:inherit;font-family:var(--font-family-mono);font-size:.9em;line-height:1.5}.markdown-content .codehilite{background:var(--color-bg-base)!important}.markdown-content .codehilite .nt{color:#7ee787;font-weight:700}.markdown-content .codehilite .na{color:#79c0ff}.markdown-content .codehilite .l{color:#a5d6ff}.markdown-content .codehilite .l-Scalar-Plain{color:#79c0ff}.markdown-content .codehilite .p{color:#d2a8ff}.markdown-content .codehilite .c{color:#8b949e;font-style:italic}.markdown-content .codehilite .err{color:#f85149;background:#f851491a}.markdown-content .codehilite .k{color:#d2a8ff}.markdown-content .codehilite .s{color:#a5d6ff}.markdown-content .codehilite .m{color:#f69d50}.markdown-content .codehilite .linenos{color:#8b949e;padding-right:1em;width:65px}.markdown-content hr{border:none;height:1px;background:var(--border-subtle);margin:24px 0}.markdown-content::-webkit-scrollbar{width:4px}.markdown-content::-webkit-scrollbar-track{background:transparent}.markdown-content::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.markdown-content::-webkit-scrollbar-thumb:hover{background:#4d9fff66}.guide-content .markdown-content{height:100%;overflow-y:auto}._dropDownOption_vv420_1{padding:6px 10px;border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-family-primary);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropDown{position:relative;width:100%}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 10px;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-family-primary);font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:border-color var(--transition-fast),background var(--transition-fast);-webkit-user-select:none;user-select:none;box-sizing:border-box}.dropdown-trigger:hover{border-color:var(--border-medium);background:var(--color-bg-elevated);color:var(--color-text-primary)}.dropdown-trigger.open{border-color:var(--accent-primary-border);background:var(--color-bg-elevated);color:var(--color-text-primary)}.dropdown-trigger-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-trigger-icon{flex-shrink:0;color:var(--color-text-muted);transition:transform var(--transition-fast)}.dropdown-trigger.open .dropdown-trigger-icon{transform:rotate(180deg)}.dropdown-clear{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:transparent;border:none;color:var(--color-text-muted);font-size:11px;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast);padding:0;line-height:1}.dropdown-clear:hover{background:var(--accent-error-dim);color:var(--accent-error)}.dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:var(--z-dropdown);background:var(--color-bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);overflow-y:auto;max-height:240px;padding:4px}.dropdown-menu::-webkit-scrollbar{width:4px}.dropdown-menu::-webkit-scrollbar-track{background:transparent}.dropdown-menu::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.layer-selector{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.layer-selector label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);color:var(--color-text-muted);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}.layer-selector .dropDown{flex:1;max-width:300px}.layer-info{display:flex;align-items:center;gap:6px;padding:4px 10px;background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--font-size-xs);flex:1;min-width:0;overflow:hidden;white-space:nowrap}.layer-name{color:var(--accent-primary);font-weight:var(--font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}@media(max-width:768px){.layer-selector{flex-direction:column;align-items:stretch}.layer-selector .dropDown{max-width:100%}}.drawer-backdrop{display:none;position:fixed;inset:0;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1100;opacity:0;transition:opacity .2s ease}.drawer-backdrop.open{display:block;opacity:1}.drawer-panel{position:fixed;top:0;right:0;height:100vh;width:420px;max-width:92vw;background:var(--color-bg-surface);border-left:1px solid var(--border-default);box-shadow:-6px 0 40px #00000080;z-index:1101;display:flex;flex-direction:column;transform:translate(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);overflow:hidden}.drawer-panel.open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0;background:var(--color-bg-elevated)}.drawer-title{font-family:var(--font-family-primary);font-size:var(--font-size-base);font-weight:var(--font-weight-bold);letter-spacing:.01em;color:var(--color-text-primary);margin:0}.drawer-close{display:flex;align-items:center;justify-content:center;padding:5px;min-width:32px;min-height:32px;border-radius:var(--radius-sm);border:1px solid transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.drawer-close:hover{background:var(--accent-error-dim);border-color:#ef444433;color:var(--accent-error)}.drawer-body{flex:1;overflow-y:auto;padding:var(--spacing-lg)}@media(max-width:768px){.drawer-panel{width:100vw;max-width:100vw}}.bbox-panel{padding:var(--spacing-md);display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:var(--spacing-lg);flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.bbox-panel-section{width:100%;box-sizing:border-box;flex:0 0 auto;min-width:0}.bbox-panel-header{display:flex;align-items:center;gap:var(--spacing-sm)}.bbox-panel-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.bbox-panel-section h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--spacing-xs)}.bbox-loading{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.bbox-meta-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.bbox-meta-table td{padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-xs) 0;vertical-align:top;border-bottom:1px solid var(--color-border)}.bbox-meta-table td:first-child{font-weight:var(--font-weight-bold);color:var(--color-text-secondary);white-space:nowrap;width:110px}.bbox-bounds{font-family:var(--font-family-mono);font-size:var(--font-size-xs);word-break:break-all}.bbox-url-row{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.bbox-url-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.bbox-url-field-wrap{display:flex;gap:var(--spacing-xs);align-items:stretch}.bbox-url-input{flex:1;font-family:var(--font-family-mono);font-size:var(--font-size-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-input);color:var(--color-text-primary);min-width:0}.bbox-url-input:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 3px var(--accent-primary-glow)}.bbox-url-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-decoration:none;white-space:nowrap;transition:all var(--transition-fast);min-width:36px}.bbox-url-btn:hover{background:var(--accent-primary-dim);border-color:var(--accent-primary-border);color:var(--accent-primary-hover)}.bbox-tab-strip{display:flex;gap:0;border-bottom:1px solid var(--border-subtle)}.bbox-tab-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.bbox-tab-btn:hover{color:var(--color-text-primary)}.bbox-tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.bbox-tab-count{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--color-bg-elevated);color:var(--color-text-secondary);min-width:18px;text-align:center}.bbox-tab-btn.active .bbox-tab-count{background:var(--accent-primary-dim);color:var(--accent-primary)}.bbox-asset-uploader{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--spacing-sm)}.bbox-asset-uploader .bbox-drop-zone{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-elevated);cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-xs);transition:all var(--transition-fast)}.bbox-asset-uploader .bbox-drop-zone:hover,.bbox-asset-uploader .bbox-drop-zone.drag-over{border-color:var(--accent-primary);color:var(--color-text-primary)}.bbox-asset-uploader .bbox-drop-zone.uploading{cursor:progress;opacity:.7}.bbox-asset-uploader .bbox-upload-error{color:var(--color-error, #ef4444);font-size:var(--font-size-xs)}.bbox-asset-list{list-style:none;padding:0;margin:var(--spacing-sm) 0 0 0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.bbox-asset-row{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-elevated)}.bbox-asset-main{display:flex;align-items:center;gap:8px}.bbox-asset-name{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bbox-asset-badge{font-size:9px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;background:var(--accent-primary-dim);color:var(--accent-primary)}.bbox-default-toggle{display:inline-flex;align-items:center;justify-content:center;padding:3px;background:transparent;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-muted)}.bbox-default-toggle:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.bbox-default-toggle.is-default{color:#fbbf24;border-color:#fbbf2480;background:#fbbf2414;cursor:default}.bbox-hint{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.45}.bbox-hint code,.bbox-callout code{background:var(--color-bg-elevated);padding:1px 4px;border-radius:3px;font-family:var(--font-family-mono);font-size:.95em;word-break:break-all;overflow-wrap:anywhere}.bbox-callout{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;margin:0 0 var(--spacing-sm) 0;border-radius:var(--radius-sm);background:#38bdf80f;border-left:3px solid #38bdf8;color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.5;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word}.bbox-callout-icon{flex-shrink:0;margin-top:1px;color:#38bdf8}.bbox-callout-body{min-width:0;flex:1}.bbox-empty{margin:var(--spacing-sm) 0 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.bbox-asset-badge-lock{display:inline-flex;align-items:center;gap:3px;background:#a8a8a826;color:var(--color-text-muted);border:1px solid var(--border-subtle);margin-left:6px}.bbox-bindings-row{display:flex;flex-wrap:wrap;gap:12px;padding:4px 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.bbox-binding-label{display:inline-flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-bold)}.bbox-binding-select{background:var(--color-bg-input);color:var(--color-text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:3px 6px;font-size:var(--font-size-xs);font-family:inherit;text-transform:none;letter-spacing:normal;font-weight:var(--font-weight-normal);max-width:200px}.bbox-binding-select:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 2px var(--accent-primary-glow)}.bbox-binding-select:disabled{opacity:.6;cursor:not-allowed}.bbox-binding-checkbox{gap:5px;cursor:pointer}.bbox-binding-checkbox input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent-primary)}.bbox-binding-checkbox input[type=checkbox]:disabled{cursor:not-allowed}.bbox-glyphs-template{display:flex;flex-direction:column;gap:6px;margin:var(--spacing-sm) 0;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--color-bg-elevated)}.bbox-glyphs-template-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.bbox-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.bbox-icon-btn:hover:not(:disabled){background:var(--accent-primary-dim);color:var(--accent-primary)}.bbox-icon-btn:disabled{opacity:.4;cursor:not-allowed}.bbox-style-editor-title{display:inline-flex;align-items:center;gap:10px;text-transform:none!important;letter-spacing:0!important;font-family:var(--font-family-mono)}.bbox-style-editor-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;padding:2px 6px;border-radius:3px;background:#a8a8a826;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.bbox-style-editor-dirty{color:#fbbf24;font-size:18px;line-height:1}.bbox-style-editor-actions{display:flex;gap:4px}.modal-size-xl .modal-body>div{flex:1 1 0;min-height:0;height:100%;display:flex;flex-direction:column}.modal-size-xl .modal-body .cm-editor{flex:1 1 0;height:100%!important;min-height:0;font-size:13px}.modal-size-xl .modal-body .cm-scroller{overflow:auto!important;font-family:var(--font-family-mono)}.modal-size-xl .modal-body .cm-panel.cm-search{padding:8px 12px;background:var(--color-bg-elevated);border-top:1px solid var(--border-subtle);display:flex;flex-wrap:wrap;align-items:center;gap:6px}.modal-size-xl .modal-body .cm-panel.cm-search .cm-textfield,.modal-size-xl .modal-body .cm-panel.cm-search input[type=text],.modal-size-xl .modal-body .cm-panel.cm-search input[type=search]{background:var(--color-bg-input);color:var(--color-text-primary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:5px 8px;font-size:var(--font-size-sm);font-family:var(--font-family-mono);min-width:160px;height:auto}.modal-size-xl .modal-body .cm-panel.cm-search .cm-textfield:focus,.modal-size-xl .modal-body .cm-panel.cm-search input[type=text]:focus,.modal-size-xl .modal-body .cm-panel.cm-search input[type=search]:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 2px var(--accent-primary-glow)}.modal-size-xl .modal-body .cm-panel.cm-search .cm-button,.modal-size-xl .modal-body .cm-panel.cm-search button{background:transparent;color:var(--color-text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-sm);padding:5px 12px;font-size:var(--font-size-sm);font-family:inherit;font-weight:var(--font-weight-bold);cursor:pointer;text-transform:none;line-height:1.3;height:auto}.modal-size-xl .modal-body .cm-panel.cm-search .cm-button:hover,.modal-size-xl .modal-body .cm-panel.cm-search button:hover{color:var(--accent-primary);border-color:var(--accent-primary-border);background:var(--accent-primary-dim)}.modal-size-xl .modal-body .cm-panel.cm-search label{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-text-muted);margin:0 4px;text-transform:uppercase;letter-spacing:.04em;font-weight:var(--font-weight-bold)}.modal-size-xl .modal-body .cm-panel.cm-search label input[type=checkbox]{margin:0;cursor:pointer}.modal-size-xl .modal-body .cm-panel.cm-search button[name=close]{padding:4px 8px;margin-left:auto}.bbox-style-editor-error{padding:8px 14px;background:#ef444414;border-top:1px solid rgba(239,68,68,.3);color:var(--color-error, #ef4444);font-size:var(--font-size-xs)}.service-drawer-inner{width:280px;height:100%;display:flex;flex-direction:column;background:var(--color-bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.sd-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-subtle);flex-shrink:0;background:var(--color-bg-elevated);gap:6px}.sd-title{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.sd-title strong{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sd-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.sd-close:hover{background:var(--accent-error-dim);border-color:#ef444433;color:var(--accent-error)}.sd-body{flex:1;overflow-y:auto;padding:var(--spacing-md);display:flex;flex-direction:column;gap:8px}.sd-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.sd-dot{color:var(--color-text-muted);opacity:.4;font-size:11px}.sd-zoom-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:7px 12px;background:#ffffff0a;color:var(--color-text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sd-zoom-btn:hover{background:#ffffff12;border-color:var(--border-medium);color:var(--color-text-primary)}.sd-private-toggle{display:flex;align-items:center;gap:6px;font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.sd-private-toggle input{accent-color:#a78bfa;cursor:pointer}.sd-private-note{font-size:9px;font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.04em;padding:1px 5px;border-radius:3px;color:#a78bfa;background:#a78bfa1a;border:1px solid rgba(167,139,250,.35)}.sd-section-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.07em;margin-top:4px}.sd-caps{display:flex;flex-wrap:wrap;gap:4px}.sd-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border-subtle);flex-shrink:0;background:var(--color-bg-elevated)}.sd-btn-secondary{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:5px 12px;background:#ffffff0a;color:var(--color-text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.sd-btn-secondary:hover{background:#ffffff12;border-color:var(--border-medium);color:var(--color-text-primary)}.sd-btn-danger{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-family-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);padding:5px 12px;background:var(--accent-error);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);box-shadow:0 1px 4px #ef44444d}.sd-btn-danger:hover{filter:brightness(1.1);box-shadow:0 3px 8px #ef444466}.ssl-cert-manager{height:100%;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);box-sizing:border-box}.ssl-manager-header{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary)}.ssl-manager-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.ssl-manager-desc{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.ssl-section{background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.ssl-section h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em}.ssl-section-titlerow{display:flex;align-items:center;justify-content:space-between}.ssl-status-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ssl-empty-text{font-style:italic}.ssl-error-text{margin:0;font-size:var(--font-size-sm);color:#e74c3c}.ssl-success-text{margin:0;font-size:var(--font-size-sm);color:var(--clr-signal-radar)}.ssl-icon-btn{background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:4px 6px;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;transition:color var(--transition-fast),border-color var(--transition-fast)}.ssl-icon-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border)}.ssl-icon-btn:disabled{opacity:.5;cursor:not-allowed}.ssl-cert-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ssl-cert-card{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.ssl-cert-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ssl-cert-toprow{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.ssl-cert-subject{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);word-break:break-all}.ssl-cert-dn{font-size:.7rem;color:var(--color-text-muted);word-break:break-all;margin-top:1px}.ssl-badge-group{display:flex;gap:4px;flex-shrink:0}.ssl-badge{font-size:.7rem;border-radius:3px;padding:1px 6px;color:#fff;white-space:nowrap}.ssl-badge-purple{background:#8e44ad}.ssl-badge-green{background:#27ae60}.ssl-cert-meta{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.5}.ssl-cert-fp{font-family:var(--font-family-mono);font-size:.7rem;word-break:break-all}.ssl-delete-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 6px;cursor:pointer;color:var(--color-text-secondary);display:flex;align-items:center;flex-shrink:0;transition:color var(--transition-fast),border-color var(--transition-fast)}.ssl-delete-btn:hover:not(:disabled){color:#e74c3c;border-color:#e74c3c66}.ssl-delete-btn:disabled{opacity:.4;cursor:not-allowed}.ssl-mode-tabs{display:flex;gap:var(--spacing-xs);border-bottom:1px solid var(--color-border-light);padding-bottom:var(--spacing-sm)}.ssl-mode-tab{display:flex;align-items:center;gap:5px;background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:5px 12px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.ssl-mode-tab:hover{color:var(--color-text-primary);border-color:var(--color-border)}.ssl-mode-tab.active{color:var(--accent-primary);border-color:var(--accent-primary-border);background:var(--accent-primary-dim)}.ssl-add-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ssl-add-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.ssl-url-row{display:flex;gap:var(--spacing-sm)}.ssl-url-input{flex:1;min-width:0;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit}.ssl-url-input:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 3px var(--accent-primary-glow)}.ssl-pem-textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xs);font-family:var(--font-family-mono);resize:vertical;box-sizing:border-box;line-height:1.5}.ssl-pem-textarea:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 3px var(--accent-primary-glow)}.ssl-inline-code{font-family:var(--font-family-mono);font-size:.8em;background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:3px;padding:1px 4px}@media(max-width:600px){.ssl-cert-manager{padding:var(--spacing-md)}.ssl-url-row{flex-direction:column}}.basemap-manager{height:100%;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);box-sizing:border-box}.basemap-header{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary)}.basemap-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.basemap-desc{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.basemap-section{background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md)}.basemap-section h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em}.basemap-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.5}.basemap-hint code{background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:3px;padding:1px 5px;font-size:.85em;color:var(--color-text-secondary)}.basemap-input-row{display:flex;gap:var(--spacing-sm);align-items:stretch}.basemap-input{flex:1;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:monospace;outline:none;transition:border-color .15s}.basemap-input:focus{border-color:var(--accent-primary-border)}.basemap-input::placeholder{color:var(--color-text-muted)}.basemap-input:disabled{opacity:.5;cursor:not-allowed}.basemap-save-btn{display:flex;align-items:center;gap:6px;padding:var(--spacing-sm) var(--spacing-md);background:var(--accent-primary);color:var(--color-text-on-accent);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;white-space:nowrap;transition:background .15s}.basemap-save-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.basemap-save-btn:disabled{opacity:.5;cursor:not-allowed}.basemap-status{margin:0;font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md)}.basemap-status--success{background:var(--accent-success-dim);color:var(--accent-success);border:1px solid var(--accent-success)}.basemap-status--error{background:var(--accent-error-dim);color:var(--accent-error);border:1px solid var(--accent-error)}.system-monitor{height:100%;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);box-sizing:border-box}.system-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-sm)}.system-header-title{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-primary)}.system-header-title h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.system-header-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.system-last-updated{font-size:var(--font-size-xs);color:var(--color-text-muted)}.system-refresh-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:5px 12px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast),border-color var(--transition-fast)}.system-refresh-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border)}.system-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.system-error{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md);padding:var(--spacing-md);display:flex;align-items:center;gap:var(--spacing-md)}.system-error p{margin:0;flex:1;font-size:var(--font-size-sm);color:#e74c3c}.system-error button{background:none;border:1px solid rgba(231,76,60,.5);border-radius:var(--radius-sm);padding:4px 12px;cursor:pointer;color:#e74c3c;font-size:var(--font-size-sm);white-space:nowrap;transition:background var(--transition-fast)}.system-error button:hover{background:#e74c3c26}.system-loading{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;padding:var(--spacing-lg)}.system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}.sys-card{background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.sys-card-header{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.sys-card-value{font-size:2rem;font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.sys-card-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.4}.sys-progress-bar{height:6px;background:var(--color-bg-surface);border-radius:3px;overflow:hidden}.sys-progress-fill{height:100%;border-radius:3px;transition:width .4s ease}.sys-fill-ok{background:var(--clr-signal-radar, #27ae60)}.sys-fill-warning{background:#f39c12}.sys-fill-danger{background:#e74c3c}.sys-card-row{display:flex;gap:var(--spacing-md)}.sys-net-item{display:flex;flex-direction:column;gap:2px;flex:1}.sys-net-label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.sys-net-value{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}@media(max-width:1100px){.system-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.system-grid{grid-template-columns:1fr}.system-monitor{padding:var(--spacing-md)}}.bbox-picker-dialog{width:min(88vw,1100px);height:min(85vh,760px);min-width:520px;min-height:420px;resize:both}.bbox-picker-dialog .modal-body{padding:0;gap:0;overflow:hidden;flex:1}.bbox-map-wrap{position:relative;flex:1;min-height:0;background:#1a1a2e;overflow:hidden}.bbox-map-wrap .ol-viewport{position:absolute!important;inset:0!important}.bbox-map-wrap canvas{display:block}.bbox-hint{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#0000008c;color:#ffffffbf;font-size:11px;padding:3px 10px;border-radius:10px;pointer-events:none;white-space:nowrap;z-index:10}.bbox-rect{position:absolute;border:2px solid var(--accent-primary, #4d9fff);background:#4d9fff1f;box-sizing:border-box;z-index:5;pointer-events:none}.bbox-interior{position:absolute;inset:8px;cursor:move;pointer-events:auto}.bbox-handle{position:absolute;width:10px;height:10px;background:#fff;border:2px solid var(--accent-primary, #4d9fff);border-radius:2px;box-sizing:border-box;z-index:6;pointer-events:auto;user-select:none;-webkit-user-select:none}.bbox-handle:hover{background:var(--accent-primary, #4d9fff)}.bbox-coord-row{display:flex;gap:16px;flex-wrap:wrap;padding:8px 14px;background:var(--color-bg-surface);border-top:1px solid var(--border-subtle)}.bbox-coord-cell{display:flex;flex-direction:column;gap:1px}.bbox-coord-label{font-size:10px;font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.bbox-coord-val{font-size:var(--font-size-sm);font-family:var(--font-family-mono);color:var(--color-text-primary)}.seed-container{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);overflow:hidden}.seed-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:8px 12px;border-bottom:1px solid var(--border-subtle);background:var(--color-bg-elevated);flex-shrink:0}.seed-header-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.seed-select{flex:1;max-width:280px;padding:5px 8px;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit}.seed-select:focus{outline:none;border-color:var(--accent-primary-border);box-shadow:0 0 0 3px var(--accent-primary-glow)}.seed-mode-toggle{display:flex;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.seed-mode-btn{padding:4px 12px;background:none;border:none;color:var(--color-text-muted);font-size:var(--font-size-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.seed-mode-btn+.seed-mode-btn{border-left:1px solid var(--border-subtle)}.seed-mode-btn.active{background:var(--accent-primary-dim);color:var(--accent-primary)}.seed-mode-btn:hover:not(.active){background:var(--color-bg-elevated);color:var(--color-text-secondary)}.seed-tabs{display:flex;align-items:center;gap:2px;padding:4px 8px;border-bottom:1px solid var(--border-subtle);background:var(--color-bg-base);flex-shrink:0;overflow-x:auto}.seed-tabs::-webkit-scrollbar{height:3px}.seed-tabs::-webkit-scrollbar-track{background:transparent}.seed-tabs::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.seed-tab{display:flex;align-items:center;gap:5px;padding:4px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.seed-tab:hover{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.seed-tab.active{background:var(--color-bg-elevated);border-color:var(--border-subtle);color:var(--color-text-primary)}.seed-tab-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:#8b949e}.seed-tab.running .seed-tab-dot{background:var(--accent-primary);animation:seed-tab-pulse 1.5s ease-in-out infinite}.seed-tab.done .seed-tab-dot{background:#3fb950}.seed-tab.failed .seed-tab-dot{background:#e74c3c}@keyframes seed-tab-pulse{0%,to{opacity:1}50%{opacity:.4}}.seed-tab-label{max-width:160px;overflow:hidden;text-overflow:ellipsis}.seed-tab-close{display:flex;align-items:center;justify-content:center;padding:1px;border-radius:2px;color:var(--color-text-muted);transition:color var(--transition-fast),background var(--transition-fast)}.seed-tab-close:hover{color:#e74c3c;background:#e74c3c26}.seed-tab-new{color:var(--accent-primary);gap:3px}.seed-tab-new:hover{color:var(--accent-primary-hover)}.seed-job-summary{padding:16px;display:flex;flex-direction:column;gap:10px;flex:1}.seed-job-summary-header{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.seed-job-summary-row{display:flex;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.seed-job-summary-label{color:var(--color-text-muted);min-width:70px;flex-shrink:0}.seed-body{display:flex;flex:1;min-height:0;overflow:hidden}.seed-col{display:flex;flex-direction:column;min-height:0;overflow:hidden}.seed-col-left{flex:0 0 55%;border-right:1px solid var(--border-subtle)}.seed-col-right{flex:1}.seed-configure{flex-shrink:0;max-height:45%;overflow-y:auto;padding:10px 12px;border-bottom:1px solid var(--border-subtle);background:var(--color-bg-base);display:flex;flex-direction:column;gap:10px}.seed-configure::-webkit-scrollbar{width:4px}.seed-configure::-webkit-scrollbar-track{background:transparent}.seed-configure::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.seed-info-loading{color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.seed-checks-row{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.seed-checks-group{display:flex;flex-direction:column;gap:4px}.seed-checks-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.seed-checks-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm)}.seed-checks-toggle-all{background:none;border:none;color:var(--color-accent);font-size:var(--font-size-xs);cursor:pointer;padding:0;text-decoration:underline}.seed-checks-toggle-all:hover{color:var(--color-accent-hover, var(--color-accent))}.seed-checks{display:flex;flex-wrap:wrap;gap:6px}.seed-check{display:flex;align-items:center;gap:5px;font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.seed-check input[type=checkbox]{accent-color:var(--accent-primary);width:13px;height:13px;cursor:pointer}.seed-section-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.seed-areas-header{display:flex;align-items:center;gap:var(--spacing-sm)}.seed-areas-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic;flex:1}.seed-add-area-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--accent-primary);font-size:var(--font-size-xs);cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.seed-add-area-btn:hover{background:var(--accent-primary-dim)}.seed-areas-list{display:flex;flex-direction:column;gap:6px}.seed-area-row{background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:6px}.seed-area-row-top,.seed-area-row-bottom{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.seed-input{padding:3px 7px;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:inherit}.seed-input:focus{outline:none;border-color:var(--accent-primary-border)}.seed-input-name{flex:1;min-width:120px}.seed-input-zoom{width:54px;text-align:center}.seed-input-bbox{width:80px}.seed-input-srs{width:100px}.seed-zoom-group{display:flex;align-items:center;gap:4px;flex-shrink:0}.seed-zoom-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.seed-zoom-sep{color:var(--color-text-muted);font-size:var(--font-size-sm)}.seed-bbox-label{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.seed-remove-area-btn{display:flex;align-items:center;justify-content:center;padding:3px 5px;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast);flex-shrink:0}.seed-remove-area-btn:hover{color:#e74c3c;border-color:#e74c3c66}.seed-generate-bar{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm)}.seed-editor-wrapper{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.seed-editor-wrapper .yaml-editor{flex:1;min-height:0}.seed-controls{display:flex;align-items:center;gap:var(--spacing-sm);padding:8px 12px;border-bottom:1px solid var(--border-subtle);background:var(--color-bg-elevated);flex-shrink:0}.seed-status-pill{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.seed-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.seed-status-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seed-control-btns{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.seed-concurrency-label{display:flex;align-items:center;gap:5px;font-size:var(--font-size-xs);color:var(--color-text-muted)}.seed-concurrency-input{width:52px;padding:3px 6px;background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-sm);font-family:var(--font-family-mono);text-align:center}.seed-concurrency-input:disabled{opacity:.5}.seed-btn{display:flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:none;font-size:var(--font-size-sm);font-family:inherit;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);color:var(--color-text-secondary)}.seed-btn:disabled{opacity:.4;cursor:not-allowed}.seed-btn-generate{color:var(--accent-primary);border-color:var(--accent-primary-border)}.seed-btn-generate:hover:not(:disabled){background:var(--accent-primary-dim)}.seed-btn-start{color:#3fb950;border-color:#3fb95059}.seed-btn-start:hover:not(:disabled){background:#3fb9501a}.seed-btn-stop{color:#e74c3c;border-color:#e74c3c59}.seed-btn-stop:hover:not(:disabled){background:#e74c3c1a}.seed-error{font-size:var(--font-size-xs);color:#e74c3c;flex:1}.seed-log{flex:1;min-height:0;overflow-y:auto;background:var(--color-bg-base, #0d1117);padding:8px 12px}.seed-log::-webkit-scrollbar{width:4px}.seed-log::-webkit-scrollbar-track{background:transparent}.seed-log::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.seed-log-line{font-family:var(--font-family-mono);font-size:12px;line-height:1.5;color:#8b949e;white-space:pre-wrap;word-break:break-all}.seed-log-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.seed-history{flex-shrink:0;max-height:35%;overflow-y:auto;border-top:1px solid var(--border-subtle)}.seed-history::-webkit-scrollbar{width:4px}.seed-history::-webkit-scrollbar-track{background:transparent}.seed-history::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}.seed-history-header{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg-elevated);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;z-index:1}.seed-history-clear{margin-left:auto;padding:2px 8px;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-xs);cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.seed-history-clear:hover{color:#e74c3c;border-color:#e74c3c66}.seed-history-empty{padding:10px 12px;font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.seed-history-entry{display:flex;align-items:flex-start;gap:8px;padding:7px 12px;border-bottom:1px solid var(--border-subtle)}.seed-history-entry:last-child{border-bottom:none}.seed-history-icon{font-size:13px;line-height:1.4;flex-shrink:0}.seed-history-entry.success .seed-history-icon{color:#3fb950}.seed-history-entry.failed .seed-history-icon{color:#e74c3c}.seed-history-body{display:flex;flex-direction:column;gap:2px;min-width:0}.seed-history-service{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.seed-history-areas{font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seed-history-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.seed-coverage-chip{display:flex;align-items:center;gap:4px;padding:2px 8px;background:var(--color-bg-input);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);max-width:220px;min-width:0}.seed-coverage-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seed-coverage-clear{background:none;border:none;padding:0;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;flex-shrink:0;line-height:1}.seed-coverage-clear:hover{color:#e74c3c}.seed-coverage-picker{background:var(--color-bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md, 0 4px 12px rgba(0,0,0,.15));max-height:200px;overflow-y:auto;padding:4px 0}.seed-coverage-picker-row{display:flex;align-items:center;gap:6px;padding:5px 10px}.seed-coverage-picker-row:hover{background:var(--color-bg-hover)}.seed-coverage-picker-name{flex:1;font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;color:var(--color-text-primary)}.seed-coverage-picker-empty{padding:10px;font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:center}.App{min-height:100vh;max-height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg-base)}.container{flex:1;padding:var(--spacing-sm);max-width:none;margin:0;width:100%;overflow:hidden}.app-content{display:flex;gap:var(--spacing-sm);height:calc(100vh - 56px - var(--spacing-sm) * 2);overflow:hidden}.service-detail-panel{flex-shrink:0;width:0;overflow:hidden;margin-left:calc(var(--spacing-sm) * -1);transition:width .25s cubic-bezier(.4,0,.2,1),margin-left .25s cubic-bezier(.4,0,.2,1)}.service-detail-panel.panel-open{width:280px;margin-left:0}.sidebarContainer{width:256px;flex-shrink:0;height:100%;overflow:hidden}.sidebar{background:var(--color-bg-surface);border-radius:var(--radius-lg);padding:var(--spacing-sm) 0;box-shadow:var(--shadow-sm);height:100%;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--border-subtle)}.sidebar-nav{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-xs) var(--spacing-sm) var(--spacing-sm);border-bottom:1px solid var(--border-subtle);margin-bottom:4px;flex-shrink:0}.nav-tab{display:flex;align-items:center;padding:7px 10px;background:transparent;border:none;border-left:2px solid transparent;border-radius:0 var(--radius-md) var(--radius-md) 0;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-align:left;color:var(--color-text-secondary);letter-spacing:.01em;-webkit-user-select:none;user-select:none}.nav-tab p{margin:0;line-height:1}.nav-tab:hover:not(:disabled):not(.active){background:#ffffff0a;border-left-color:#4d9fff59;color:var(--color-text-primary)}.nav-tab.active{background:var(--accent-primary-dim);border-left-color:var(--accent-primary);color:var(--accent-primary-hover);font-weight:var(--font-weight-bold)}.nav-tab.disconnected:hover:not(:disabled):not(.active){border-left-color:#ef444466;background:#ef44440f;color:var(--color-text-primary)}.nav-tab.active.disconnected{background:#ef444414;border-left-color:var(--accent-error);color:#fc7474}.nav-tab:disabled{opacity:.35;cursor:not-allowed}.sidebar-content{flex:1;overflow-y:auto;min-height:0}.editor-area{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column}.map-viewer-controls{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--color-bg-surface);border:1px solid var(--border-subtle);border-bottom:none;border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0;flex-wrap:wrap}.toolbar-spacer{flex:1}.toolbar-btn{display:flex;align-items:center;gap:5px;padding:5px 11px;font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);letter-spacing:.01em;background:#ffffff0a;color:var(--color-text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.toolbar-btn:hover:not(:disabled){background:#ffffff12;border-color:var(--border-medium);color:var(--color-text-primary)}.toolbar-btn:active:not(:disabled){transform:translateY(1px)}.toolbar-btn:disabled{opacity:.3;cursor:not-allowed}.toolbar-btn-save:not(:disabled){background:var(--accent-primary);color:var(--color-text-on-accent);border-color:transparent;box-shadow:0 1px 4px #4d9fff59}.toolbar-btn-save:not(:disabled):hover{background:var(--accent-primary-hover);box-shadow:0 3px 10px #4d9fff66;border-color:transparent}.toolbar-btn-save:disabled{opacity:.3;cursor:not-allowed;background:#ffffff0a;color:var(--color-text-secondary);box-shadow:none;border-color:var(--border-default)}.toggle-map-btn{display:flex;align-items:center;gap:5px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:5px 11px;background:#ffffff0a;color:var(--color-text-secondary);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.toggle-map-btn:hover:not(.disabled){background:#ffffff12;border-color:var(--border-medium);color:var(--color-text-primary)}.toggle-map-btn.disabled{opacity:.3;cursor:not-allowed}.map-viewer-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic;margin-left:var(--spacing-xs)}.toolbar-actions{display:flex;gap:6px;margin-left:auto;flex-shrink:0;align-items:center}.toolbar-menu-wrapper{position:relative}.toolbar-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;background:var(--color-bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:1000;min-width:160px;overflow:hidden}.toolbar-menu-dropdown button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-family:var(--font-family-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:transparent;border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);text-align:left;white-space:nowrap}.toolbar-menu-dropdown button:hover:not(:disabled){background:#ffffff0f;color:var(--color-text-primary)}.toolbar-menu-dropdown button:disabled{opacity:.3;cursor:not-allowed}.toolbar-menu-dropdown button.menu-btn-save:not(:disabled){color:var(--accent-primary)}.toolbar-menu-dropdown button.menu-btn-save:not(:disabled):hover{background:var(--accent-primary-dim)}.map-viewer-container{flex:1;min-height:0;overflow:hidden;border-radius:0 0 var(--radius-lg) var(--radius-lg)}.welcome-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;text-align:center;background:var(--color-bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:var(--spacing-xl) var(--spacing-2xl);box-shadow:var(--shadow-sm)}.welcome-screen h2{font-family:var(--font-family-primary);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);letter-spacing:.01em}.welcome-screen p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);max-width:360px;line-height:1.6}.welcome-screen ul{text-align:left;background:var(--color-bg-elevated);border:1px solid var(--border-subtle);border-left:3px solid var(--accent-primary-border);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);max-width:480px;width:100%}.welcome-screen li{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin:var(--spacing-sm) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);list-style-type:none;line-height:1.5}.welcome-screen li svg{flex-shrink:0;margin-top:2px;color:var(--accent-primary);opacity:.7}.welcome-screen li strong{color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);font-size:var(--font-size-sm)}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#4d9fff33;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#4d9fff66}::-webkit-scrollbar-corner{background:transparent}@media(max-width:480px){.sidebar{width:90%}.editor-area{padding:2px}}
