:root{color-scheme:light dark;--bg: #0b0f16;--panel: rgba(255, 255, 255, .06);--panel-2: rgba(255, 255, 255, .1);--text: rgba(255, 255, 255, .92);--muted: rgba(255, 255, 255, .66);--danger: #ff5c5c;--ok: #4ade80;--border: rgba(255, 255, 255, .12);--focus: rgba(56, 189, 248, .5)}@media (prefers-color-scheme: light){:root{--bg: #f6f7fb;--panel: rgba(0, 0, 0, .04);--panel-2: rgba(0, 0, 0, .06);--text: rgba(0, 0, 0, .9);--muted: rgba(0, 0, 0, .6);--border: rgba(0, 0, 0, .12);--focus: rgba(2, 132, 199, .35)}}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Apple Color Emoji","Segoe UI Emoji";background:radial-gradient(1200px 900px at 20% 0%,rgba(56,189,248,.18),transparent 60%),radial-gradient(1200px 900px at 80% 0%,rgba(168,85,247,.16),transparent 60%),var(--bg);color:var(--text)}.container{max-width:1200px;margin:0 auto;padding:18px 12px;height:100vh;min-height:0;display:flex;flex-direction:column}.title{margin:0;font-size:22px;letter-spacing:.2px}.headerBar{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px}.tagline{color:var(--muted);line-height:1.35;text-align:right;font-size:13px;max-width:520px}@media (max-width: 720px){.headerBar{flex-direction:column;align-items:flex-start}.tagline{text-align:left;max-width:none}}.layout{display:grid;grid-template-rows:minmax(280px,1fr) minmax(280px,1fr);gap:14px;flex:1;min-height:0}@media (max-height: 760px){.layout{grid-template-rows:minmax(320px,1.2fr) minmax(240px,.8fr)}}.topRow{display:grid;grid-template-columns:1fr 1fr;gap:14px;min-height:0}.col{min-height:0;overflow:hidden}.stack{display:grid;gap:14px;height:100%;grid-template-rows:auto 1fr;overflow:auto;padding-right:4px}.grid{display:grid;grid-template-columns:1fr;gap:14px}@media (min-width: 820px){.grid{grid-template-columns:1fr 1fr}}.card{border:1px solid var(--border);border-radius:14px;padding:14px;background:linear-gradient(180deg,var(--panel),transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card h2{margin:0 0 12px;font-size:15px;color:var(--muted);font-weight:600;letter-spacing:.2px}.row{display:grid;grid-template-columns:160px 1fr;gap:10px;align-items:center;margin:10px 0}label{color:var(--muted);font-size:13px}input,select,button,textarea{font:inherit}input,select{width:100%;padding:10px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);outline:none}select option,select optgroup{background-color:Window;color:WindowText;background-color:Canvas;color:CanvasText}input:focus,select:focus{box-shadow:0 0 0 4px var(--focus)}@media (forced-colors: active){input,select,textarea{background:Canvas;color:CanvasText;border-color:CanvasText}}button{padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);color:var(--text);cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{border-color:#38bdf873;background:#38bdf826}.status{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:var(--muted);font-size:13px}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:#0000000d;padding:6px 10px;border-radius:999px}.ok{color:var(--ok)}.bad{color:var(--danger)}.logCard{display:flex;flex-direction:column;min-height:0}.log{width:100%;flex:1;min-height:0;resize:none;padding:10px;border-radius:10px;border:1px solid var(--border);background:#0000001f;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;line-height:1.4}.list{border:1px solid var(--border);border-radius:12px;overflow:auto;max-height:100%}.listRow{display:grid;grid-template-columns:92px 64px 1fr;gap:10px;align-items:baseline;padding:10px;border-bottom:1px solid rgba(255,255,255,.06);cursor:pointer}.listRow:hover{background:#ffffff0d}.listRowSelected{background:#38bdf824;outline:1px solid rgba(56,189,248,.4)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.spotTitle{font-size:13px;line-height:1.2}.spotSub{font-size:12px;color:var(--muted);line-height:1.25;margin-top:2px}.filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.spotsHeader{padding-bottom:10px;border-bottom:1px solid var(--border)}.spotsCardBody{display:flex;flex-direction:column;gap:10px;min-height:0;flex:1}.mapWrap{height:100%;min-height:0;display:flex;flex-direction:column}.mapCanvas{width:100%;height:100%;display:block;border-radius:12px;border:1px solid var(--border);background:#0000001f}.leafletContainer{flex:1;min-height:0;width:100%;border-radius:12px;border:1px solid var(--border);overflow:hidden}.mapHeader{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}.mapPills{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.hint{margin-top:8px;color:var(--muted);font-size:12px;line-height:1.4}.alert{margin-top:10px;padding:10px 12px;border-radius:12px;border:1px solid rgba(255,92,92,.35);background:#ff5c5c14;font-size:13px;line-height:1.4}.footer{padding-top:10px;text-align:right;font-size:12px;color:var(--muted)}.linkBtn{background:transparent;border:none;padding:0;margin:0;color:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.linkBtn:focus{outline:none;box-shadow:0 0 0 4px var(--focus);border-radius:6px}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:18px;z-index:1000}.modalCard{width:min(820px,100%);border:1px solid var(--border);border-radius:14px;padding:14px;background:linear-gradient(180deg,var(--panel),rgba(0,0,0,.12));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 60px #00000073}.modalHeaderRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.modalTitle{font-size:15px;font-weight:600;color:var(--muted);letter-spacing:.2px}.modalClose{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);line-height:1;font-size:20px;padding:0}.modalBody{padding-top:6px}.modalP{margin:10px 0;color:var(--muted);line-height:1.5}.modalP a{color:inherit;text-decoration:underline;text-underline-offset:3px}
