:root{--text: #1f2430;--text-h: #08060d;--bg: #fff;--panel-bg: #f7f7f9;--hover: #eaeaef;--border: #e5e4e7;--accent: #2563eb;--blaze: #f2752b;--sans: system-ui, "Segoe UI", Roboto, sans-serif;font:15px/145% var(--sans);color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: dark){:root{--text: #d5d7dd;--text-h: #f3f4f6;--bg: #16171d;--panel-bg: #1c1e26;--hover: #25262f;--border: #2e303a;--accent: #60a5fa;--blaze: #f2752b}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}h1,h2{font-family:var(--sans);font-weight:600;color:var(--text-h)}h2{font-size:16px;margin:0 0 12px}p{margin:0}button{font:inherit;cursor:pointer}.floating-subpanel,.point-forecast-panel,.forecast-scroll,.point-forecast-value-scroll{scrollbar-width:thin;scrollbar-color:transparent transparent}.floating-subpanel:hover,.point-forecast-panel:hover,.forecast-scroll:hover,.point-forecast-value-scroll:hover{scrollbar-color:var(--border) transparent}.floating-subpanel::-webkit-scrollbar,.point-forecast-panel::-webkit-scrollbar,.forecast-scroll::-webkit-scrollbar,.point-forecast-value-scroll::-webkit-scrollbar{width:6px;height:6px}.floating-subpanel::-webkit-scrollbar-track,.point-forecast-panel::-webkit-scrollbar-track,.forecast-scroll::-webkit-scrollbar-track,.point-forecast-value-scroll::-webkit-scrollbar-track{background:transparent}.floating-subpanel::-webkit-scrollbar-thumb,.point-forecast-panel::-webkit-scrollbar-thumb,.forecast-scroll::-webkit-scrollbar-thumb,.point-forecast-value-scroll::-webkit-scrollbar-thumb{background:transparent;border-radius:999px}.floating-subpanel:hover::-webkit-scrollbar-thumb,.point-forecast-panel:hover::-webkit-scrollbar-thumb,.forecast-scroll:hover::-webkit-scrollbar-thumb,.point-forecast-value-scroll:hover::-webkit-scrollbar-thumb{background:var(--border)}.app-title{font-size:18px;margin:0 0 4px}.panel{background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;padding:12px;box-shadow:0 1px 2px #0000000a,0 1px 1px #00000008;transition:box-shadow .15s ease}.back-button{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;border:none;background:transparent;color:var(--text);opacity:.75;font-size:13px;padding:4px 0;transition:opacity .1s ease}.back-button:hover{opacity:1}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.updating-indicator{font-size:12px;color:var(--accent)}.chevron{transition:transform .15s ease;flex-shrink:0}.chevron.open{transform:rotate(180deg)}.field-label{display:flex;flex-direction:column;gap:4px;font-size:13px}.upload-button{display:inline-block;padding:8px 14px;background:var(--accent);color:#fff;border-radius:10px;cursor:pointer;text-align:center;font-size:14px;transition:opacity .15s ease,transform .1s ease}.upload-button:active{transform:scale(.98)}.upload-button-secondary{background:transparent;color:var(--accent);border:1px solid var(--border)}.error{color:#dc2626;font-size:13px;margin-top:8px}.app-error-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;height:100%;width:100%;padding:24px;text-align:center;background:var(--bg);color:var(--text)}.app-error-fallback p{margin:0;font-size:14px;opacity:.8}.app-error-fallback button{padding:8px 20px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;cursor:pointer}.app-error-fallback button:hover{background:var(--hover)}.app-loading-fallback,.page-loading-fallback{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background:var(--bg)}.app-loading-spinner{width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:app-spin .6s linear infinite}.planning-loading,.elevation-loading{display:flex;align-items:center;justify-content:center;background:var(--bg)}.planning-loading:after,.elevation-loading:after{content:"";width:24px;height:24px;border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:app-spin .6s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}
