:root{--bg-base:#0a0e17;--bg-surface:#131826;--bg-surface-hover:#1c2336;--bg-overlay:rgba(19,24,38,0.85);--border:rgba(255,255,255,0.08);--border-strong:rgba(255,255,255,0.15);--text:#e2e8f0;--text-muted:#94a3b8;--text-dim:#64748b;--accent:#3b82f6;--accent-hover:#2563eb;--success:#10b981;--warning:#eab308;--danger:#dc2626;--radius:8px;--radius-sm:4px;--shadow:0 4px 24px rgba(0,0,0,0.4);--transition:0.2s ease}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden}body{font-family:-apple-system,Noto Sans CJK SC,Microsoft YaHei,PingFang SC,sans-serif;background:var(--bg-base);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.navbar{display:flex;align-items:center;gap:1.5rem;height:52px;padding:0 1.25rem;background:var(--bg-surface);border-bottom:1px solid var(--border);z-index:1000;position:relative}.navbar-brand{font-size:1.1rem;font-weight:700;color:var(--accent);letter-spacing:.05em}.navbar-links{display:flex;gap:.25rem}.navbar-links a{padding:.375rem .875rem;border-radius:var(--radius-sm);font-size:.875rem;color:var(--text-muted);transition:all var(--transition)}.navbar-links a:hover{background:var(--bg-surface-hover);color:var(--text)}.navbar-links a.active{background:var(--accent);color:white}.navbar-spacer{flex:1 1}.navbar-info{font-size:.75rem;color:var(--text-dim)}.page-main{position:relative;width:100%;height:calc(100vh - 52px);overflow:hidden}.cesium-container{position:relative}.cesium-container,.cesium-widget{width:100%;height:100%}.cesium-widget canvas{outline:none}.cesium-viewer .cesium-widget-credits,.cesium-viewer-bottom,.cesium-viewer-toolbar{display:none!important}.cesium-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--bg-base);z-index:10}.cesium-loading-spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;background:rgba(10,14,23,.7);z-index:50;color:var(--text)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.data-loading{position:absolute;top:12px;left:50%;transform:translateX(-50%);padding:.5rem 1.25rem;background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes spin{to{transform:rotate(1turn)}}.control-panel{position:absolute;top:12px;right:12px;width:200px;background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;overflow:hidden}.control-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.625rem .875rem;border-bottom:1px solid var(--border)}.control-panel-header h3{font-size:.875rem;font-weight:600;color:var(--text)}.btn-refresh{background:none;border:1px solid var(--border);color:var(--text-muted);width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;line-height:1;transition:all var(--transition)}.btn-refresh:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text);border-color:var(--border-strong)}.btn-refresh:disabled{opacity:.5;cursor:not-allowed}.temp-mode-switch{position:absolute;top:12px;right:224px;display:flex;gap:2px;padding:3px;background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;box-shadow:var(--shadow)}.temp-mode-btn{padding:.375rem .875rem;background:transparent;border:none;color:var(--text-muted);font-size:.8125rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.temp-mode-btn:hover{color:var(--text);background:var(--bg-surface-hover)}.temp-mode-btn.active{background:var(--accent);color:white}@media (max-width:768px){.temp-mode-switch{right:172px;top:8px}}.control-panel-body{padding:.5rem .875rem;gap:.25rem}.control-panel-body,.layer-toggle-group{display:flex;flex-direction:column}.layer-toggle{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.layer-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.layer-toggle-label{font-size:.875rem;color:var(--text)}.layer-toggle-extra{padding-left:1.75rem;padding-bottom:.25rem}.layer-sub-toggle{display:flex;align-items:center;gap:.375rem;cursor:pointer;font-size:.8125rem;color:var(--text-muted);-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:.25rem 0}.layer-sub-toggle input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.layer-sub-toggle:hover{color:var(--text)}.layer-sub-count{color:var(--text-muted);font-size:.75rem;opacity:.7}.legend{position:absolute;bottom:12px;left:12px;max-width:220px;background:var(--bg-overlay);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;padding:.75rem .875rem}.legend-section+.legend-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.legend-section h4{font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.legend-items{display:flex;flex-direction:column;gap:.25rem}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-color{display:inline-block;width:14px;height:14px;border-radius:3px;flex-shrink:0}.legend-label{font-size:.75rem;color:var(--text-muted)}.data-page{padding:1.5rem;height:calc(100vh - 52px);overflow-y:auto}.data-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.data-page-header h1{font-size:1.5rem;font-weight:700}.data-page-header p{margin-top:.25rem}.btn-back,.data-page-header p{color:var(--text-muted);font-size:.875rem}.btn-back{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.btn-back:hover{background:var(--bg-surface-hover);color:var(--text);border-color:var(--border-strong)}.data-table{width:100%;border-collapse:collapse;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.data-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-surface-hover)}.data-table td,.data-table th{border-bottom:1px solid var(--border)}.data-table td{padding:.625rem 1rem;font-size:.875rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--bg-surface-hover)}.badge{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;color:white}.badge-temp-cold{background:#2563eb}.badge-temp-cool{background:#06b6d4}.badge-temp-mild{background:#10b981}.badge-temp-warm{background:#eab308}.badge-temp-hot{background:#dc2626}.badge-mag-low{background:#84cc16}.badge-mag-mid{background:#eab308}.badge-mag-high{background:#f97316}.badge-mag-severe{background:#dc2626}@media (max-width:768px){.control-panel{width:160px;top:8px;right:8px}.legend{display:none}.navbar-links{gap:0}.navbar-links a{padding:.25rem .5rem;font-size:.75rem}}