.forecast-workspace{--line:var(--border);--surface:var(--card);--surface-2:var(--card-soft);--text-dim:var(--muted);color:var(--foreground,var(--text));max-width:1500px;margin:0 auto}.forecast-workspace *{box-sizing:border-box}.forecast-kicker{display:block;font:10px/1.8 monospace;letter-spacing:.12em;color:var(--accent-soft-foreground,var(--green))}.forecast-header{display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:1px solid var(--separator,var(--border));padding-bottom:26px;margin-bottom:22px}.forecast-header h1{font-size:clamp(27px,3.3vw,43px);font-weight:500;letter-spacing:-.05em;margin:12px 0}.forecast-workspace p{color:var(--muted);font-size:12px;line-height:1.9;margin:8px 0}.forecast-workspace label{font-size:11px;color:var(--muted)}.forecast-workspace :is(select,input[type=number]){display:block;background:var(--field-background,var(--panel));color:var(--field-foreground,var(--text));border:1px solid var(--field-border,var(--border));border-radius:7px;padding:10px 12px;font:inherit;margin-top:6px;max-width:100%;box-shadow:var(--field-shadow);transition:border-color var(--iris-duration-fast,.15s) var(--ease-smooth,ease),box-shadow var(--iris-duration-fast,.15s) var(--ease-smooth,ease)}.forecast-workspace :is(select,input[type=number]):hover{border-color:var(--field-border-hover,var(--border-strong))}.forecast-workspace :is(select,input[type=number]):focus{border-color:var(--field-border-focus,var(--focus));box-shadow:0 0 0 3px var(--focus-ring)}.forecast-workspace button{border:1px solid var(--border);background:var(--surface-secondary,var(--panel));color:var(--foreground,var(--text));padding:10px 14px;border-radius:7px;font:inherit;font-size:12px;cursor:pointer;box-shadow:var(--iris-shadow-xs);transition:background-color var(--iris-duration-fast,.15s) var(--ease-out,ease),border-color var(--iris-duration-fast,.15s) var(--ease-out,ease),color var(--iris-duration-fast,.15s) var(--ease-out,ease)}.forecast-workspace button:disabled{opacity:.55;cursor:wait}.forecast-workspace button:hover{border-color:var(--accent,var(--green));background:var(--accent-soft,var(--green-soft))}.forecast-status{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-bottom:20px}.forecast-status button{margin-left:auto}.forecast-expired,.forecast-fresh{border-radius:20px;padding:7px 11px;border:1px solid var(--border)}.forecast-fresh{background:var(--accent-soft,var(--green-soft));color:var(--accent-soft-foreground,var(--green));border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.forecast-expired{color:var(--warning-soft-foreground,#b9763b);background:var(--warning-soft,transparent)}.forecast-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}.forecast-metrics article{padding:24px;background:var(--accent-soft,var(--green-soft));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:12px;box-shadow:var(--iris-shadow-xs)}.forecast-metrics article>span{display:block;font-size:11px;color:var(--muted);margin-bottom:12px}.forecast-metrics strong{font:clamp(22px,2.5vw,36px) /1.4 monospace;letter-spacing:-.05em}.forecast-metrics small{font-size:13px;letter-spacing:normal;margin-left:8px;color:var(--muted)}.forecast-metrics p{font-size:10px}.forecast-panel{padding:25px;border:1px solid var(--border);background:var(--surface,var(--card));border-radius:12px;min-width:0;margin-bottom:18px;box-shadow:var(--surface-shadow)}.forecast-panel h2{font-size:25px;font-weight:500;letter-spacing:-.04em;margin:6px 0 14px}.forecast-toolbar{display:flex;align-items:start;justify-content:space-between;gap:20px;flex-wrap:wrap}.forecast-toolbar>div:last-child{display:flex;gap:12px;flex-wrap:wrap}.forecast-chart{height:380px;margin-top:16px;position:relative}.forecast-chart .viz-chart-canvas,.forecast-chart .viz-chart-frame{height:100%;width:100%}.forecast-chart .viz-chart-reset{position:absolute;right:8px;top:0}.forecast-inspector{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:24px;padding:20px;background:var(--surface-secondary,var(--panel));border:1px solid var(--border);border-radius:9px;margin-top:15px}.forecast-inspector input[type=range]{display:block;width:100%;accent-color:var(--accent,var(--green));margin-top:12px}.forecast-inspector>div{display:grid;gap:5px;font-size:11px;color:var(--muted)}.forecast-inspector strong{font:24px/1.6 monospace;color:var(--foreground,var(--text))}.forecast-inspector strong small{font-size:11px;color:var(--muted)}.forecast-checkbox{display:flex;align-items:center;gap:6px}.forecast-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.forecast-workspace .forecast-small{font-size:10px;overflow-wrap:anywhere}.forecast-capabilities{margin-top:15px}.forecast-capabilities>div{display:grid;gap:5px;font-size:11px;padding:10px 0;border-top:1px solid var(--separator,var(--border))}.forecast-capabilities span{color:var(--muted);line-height:1.8}.forecast-table{overflow:auto;max-height:360px;margin:20px 0}.forecast-table table{width:100%;font-size:11px;text-align:left;border-collapse:collapse;white-space:nowrap}.forecast-table :is(td,th){padding:11px;border-bottom:1px solid var(--separator,var(--border));font-weight:400}.forecast-table th{color:var(--muted)}.forecast-table caption{text-align:left;padding:12px;color:var(--muted)}.forecast-panel summary{cursor:pointer;color:var(--accent-soft-foreground,var(--green));font-size:12px;margin-bottom:15px}.forecast-notice{padding:18px;background:var(--accent-soft,var(--green-soft));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:9px;margin-bottom:18px;font-size:12px;line-height:1.8}.forecast-notice button{margin-left:12px}.forecast-loading{padding:75px 20px;text-align:center;border:1px solid var(--border);background:var(--surface,var(--card));border-radius:12px;box-shadow:var(--surface-shadow)}.forecast-loading h2{font-size:25px;font-weight:500}.forecast-orbit{height:36px;width:36px;margin:0 auto 25px;border:2px solid var(--border);border-top-color:var(--accent,var(--green));border-radius:50%;animation:forecast-spin 1s linear infinite}@keyframes forecast-spin{to{transform:rotate(1turn)}}.forecast-workspace :is(button,input,select,a,summary):focus-visible{outline:2px solid var(--focus,#10b981);outline-offset:3px}@media (prefers-reduced-motion:reduce){.forecast-orbit{animation:none}}@media (max-width:1000px){.forecast-detail-grid{grid-template-columns:1fr}.forecast-inspector{grid-template-columns:1fr 1fr}.forecast-header{flex-wrap:wrap}.forecast-metrics article{padding:18px}}@media (max-width:600px){.forecast-inspector,.forecast-metrics{grid-template-columns:1fr}.forecast-panel{padding:17px}.forecast-chart{height:320px}.forecast-header label,.forecast-header select{width:100%}.forecast-status button{margin-left:0}.forecast-toolbar>div:last-child{width:100%}.forecast-toolbar label{flex:1;min-width:130px}.forecast-toolbar select{width:100%}}.forecast-point-map{margin:20px 0 25px;border:1px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:var(--iris-shadow-xs)}.forecast-point-map>p{padding:10px 18px;margin:0;background:var(--surface-secondary,var(--panel));font-size:10px}.forecast-map-marker{display:block;width:17px;height:17px;border-radius:50%;background:#008d72;border:3px solid white;box-shadow:0 0 0 8px #008d7222}.ml-forecast .ml-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:16px 0}.ml-forecast .ml-grid article{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--surface-secondary,var(--panel));box-shadow:var(--iris-shadow-xs)}.ml-forecast .ml-grid article>span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.ml-forecast .ml-grid article>strong{font-size:18px}.ml-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.ml-actions button{border:1px solid var(--accent,#10947c);background:transparent;color:inherit;border-radius:999px;padding:8px 16px;font:inherit;font-size:13px;cursor:pointer}.ml-actions button:hover:not(:disabled){background:color-mix(in srgb,var(--accent,#10947c) 12%,transparent)}.ml-actions button:disabled{opacity:.45;cursor:not-allowed}.ml-actions .ml-generate{background:var(--accent,#10947c);color:var(--accent-foreground,#fff);font-weight:600}.ml-forecast-chart{height:280px;width:100%;min-width:0}.ml-forecast-chart .viz-chart-canvas,.ml-forecast-chart .viz-chart-frame{height:100%;width:100%}.ml-how-it-works{padding-left:1.4rem;font-size:13px;line-height:1.65}.ml-how-it-works li{margin-bottom:.45rem}.ml-published{border:1px solid var(--border);border-left:3px solid var(--accent,#10947c);background:var(--surface-secondary,transparent);border-radius:10px;padding:16px;margin:20px 0}.ml-outcome h3,.ml-published h3,.ml-result h3{margin:0 0 10px}.ml-published ul{padding-left:1.2rem;margin-bottom:0}.ml-published li{margin-top:10px;line-height:1.6}.ml-published a,.ml-result a,.ml-result-link{color:var(--accent,#10947c);text-decoration:underline;text-underline-offset:3px}.ml-outcome{margin:18px 0;font-size:13px;line-height:1.65}.ml-result{scroll-margin-top:90px;border-top:1px solid var(--separator,var(--border));padding-top:20px;margin-top:20px}.ml-result caption{white-space:normal;overflow-wrap:anywhere;text-align:left}.ml-dataset-list{list-style:none;padding:0;font-size:12px;line-height:1.9}.ml-dataset-list code{font-size:11px;background:var(--surface-secondary,var(--panel));padding:2px 6px;border-radius:6px}.ml-datasets summary,.ml-trends summary{cursor:pointer;font-size:13px;margin:12px 0 8px}.ml-target{display:flex;flex-direction:column;gap:.3rem;font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#7a8a99)}.ml-target select{font:inherit;text-transform:none;letter-spacing:normal;padding:.4rem .6rem;border:1px solid var(--field-border,var(--border));border-radius:6px;background:var(--field-background,var(--surface));color:var(--field-foreground,var(--text));box-shadow:var(--field-shadow)}.ml-forecast{--forecast-danger:#b33846;--forecast-accent:#078665}.dark .ml-forecast{--forecast-danger:#ff9ba8;--forecast-accent:#50d2b1}.ml-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ml-control-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.ml-control-bar .ml-target{flex:1;max-width:450px}.ml-control-bar .ml-actions{margin:0}.ml-control-bar .ml-generate{display:flex;align-items:center;justify-content:center;gap:9px;min-height:43px;border-radius:9px;padding:12px 18px;background:var(--accent,#078665);border-color:var(--accent,#078665);color:var(--accent-foreground,white);box-shadow:0 3px 12px color-mix(in srgb,var(--accent,#078665) 22%,transparent)}.ml-control-bar .ml-target select{width:100%;min-height:43px;font-size:14px}.ml-saved-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:16px}.ml-saved-links>span{font-size:11px;color:var(--muted);margin-right:4px}.ml-saved-links a{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--border);background:var(--surface,var(--card));border-radius:6px;color:var(--foreground,var(--text));font-size:11px;text-decoration:none;transition:border-color var(--iris-duration-fast,.15s) var(--ease-out,ease),background-color var(--iris-duration-fast,.15s) var(--ease-out,ease)}.ml-saved-links a:hover{border-color:var(--forecast-accent);background:color-mix(in srgb,var(--forecast-accent) 8%,var(--surface,transparent))}.ml-saved-links a small{font-size:10px}.ml-forecast .quality-warning,.ml-saved-links a small{color:var(--forecast-danger)}.ml-forecast .quality-pass{color:var(--forecast-accent)}.forecast-result{--result-accent:var(--forecast-accent);border-top:0;padding-top:0;margin-top:30px}.forecast-result.is-preview{--result-accent:#b66c43}.dark .forecast-result.is-preview{--result-accent:#f2aa80}.result-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.result-heading .forecast-kicker{font-family:inherit;font-size:10px;color:var(--muted);letter-spacing:.15em}.ml-result .result-name{font-size:clamp(19px,2.5vw,26px);font-weight:500;letter-spacing:-.04em;margin:4px 0 0}.result-badge{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;font-size:11px;border-radius:20px;border:1px solid;padding:7px 11px}.result-warning{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;margin-bottom:16px;color:var(--forecast-danger);background:color-mix(in srgb,var(--forecast-danger) 7%,var(--card));border:1px solid color-mix(in srgb,var(--forecast-danger) 24%,transparent)}.result-warning>svg{flex-shrink:0}.result-warning span,.result-warning strong{display:block}.result-warning strong{font-size:14px;font-weight:600}.result-warning span{font-size:11px;margin-top:3px}.result-hero{justify-content:space-between;gap:30px;padding:26px 30px;border:1px solid color-mix(in srgb,var(--result-accent) 19%,var(--border));border-radius:14px;background:radial-gradient(ellipse at 100% 0,color-mix(in srgb,var(--result-accent) 14%,transparent),transparent 64%),color-mix(in srgb,var(--result-accent) 4%,var(--surface,var(--card)));box-shadow:var(--surface-shadow)}.result-eyebrow,.result-hero{display:flex;align-items:center}.result-eyebrow{gap:8px;font-size:12px;color:var(--muted)}.result-eyebrow svg{color:var(--result-accent)}.result-big-number{font-size:clamp(44px,5.8vw,72px);line-height:1.2;letter-spacing:-.065em;font-weight:500;color:var(--foreground,var(--text));margin:9px 0;font-variant-numeric:tabular-nums}.result-big-number>span{margin-left:10px;font-size:23px;letter-spacing:-.02em;font-weight:400;color:var(--muted)}.result-range{font-size:12px;color:var(--muted)}.result-range strong{color:var(--foreground,var(--text));font-weight:500;margin-left:6px}.result-hero-meta{display:flex;flex-direction:column;gap:12px;font-size:11px;color:var(--muted)}.result-hero-meta>span{display:flex;align-items:center;gap:8px}.result-hero-meta strong{color:var(--foreground,var(--text));font-weight:500}.result-hero-meta i{width:6px;height:6px;background:var(--result-accent);border-radius:50%}.result-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:15px 0 24px}.result-day{border:1px solid var(--border);border-radius:11px;padding:16px 18px;min-width:0;background:var(--surface,var(--card));box-shadow:var(--surface-shadow)}.result-day-top{display:flex;align-items:center;justify-content:space-between;color:var(--result-accent);font-size:9px;letter-spacing:.1em}.result-day-top span{color:var(--muted)}.result-day h4{font-size:13px;margin:9px 0;font-weight:500}.result-day-value{font-size:clamp(24px,3vw,32px);letter-spacing:-.045em;line-height:1.3;font-weight:500}.result-day-value>span{font-size:12px;color:var(--muted);font-weight:400;margin-left:5px;letter-spacing:0}.result-day p{font-size:11px;margin:6px 0 0}.result-day p span{opacity:.8}.result-error{display:block;font-size:10px;margin-top:10px;font-weight:500}.result-chart-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:24px 0 12px}.result-chart-heading h4{font-size:14px;font-weight:500;margin:0}.result-chart-key{display:flex;align-items:center;gap:16px;color:var(--muted);font-size:10px}.result-chart-key>span{display:flex;align-items:center;gap:6px}.result-chart-key i{width:14px;height:3px;border-radius:2px;background:var(--result-accent)}.result-chart-key>span:nth-child(2) i{height:9px;opacity:.2}.forecast-workspace .result-unit-toggle{border-radius:6px;padding:4px 8px;background:transparent;font-size:10px}.forecast-result .ml-forecast-chart{height:240px}.result-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:10px;color:var(--muted);border-top:1px solid var(--separator,var(--border));padding-top:14px;margin-top:8px}.result-footer>div{display:flex;gap:16px;align-items:center}.forecast-workspace .result-footer button,.result-footer a{display:inline-flex;align-items:center;gap:6px;padding:5px 0;font-size:11px;text-decoration:none;color:var(--foreground,var(--text));background:none;border:0}.result-evidence{margin-top:10px}.result-evidence li{font-size:12px;line-height:1.7}.ml-technical-details{border-top:1px solid var(--separator,var(--border));margin-top:18px;padding-top:6px}.ml-technical-details>details>summary{padding:5px 0}.ml-empty-state{text-align:center;padding:65px 20px;color:var(--muted)}.ml-empty-state>svg{color:var(--forecast-accent);opacity:.65}.ml-empty-state h3{font-size:21px;font-weight:500;color:var(--foreground,var(--text));margin:18px 0 6px}.ml-empty-state details{max-width:600px;margin:15px auto 0;font-size:12px;text-align:left}.ml-job-progress{margin:24px 0;padding:18px;background:var(--surface-secondary,var(--panel));border:1px solid var(--border);border-radius:10px}.ml-job-progress>div{display:flex;align-items:center;justify-content:space-between;font-size:13px}.ml-job-progress progress{display:block;width:100%;height:6px;margin:16px 0 6px;accent-color:var(--forecast-accent)}@media (max-width:700px){.ml-control-bar{align-items:stretch;flex-direction:column;gap:12px}.ml-control-bar .ml-target{max-width:none}.ml-control-bar .ml-actions button{width:100%}.result-heading{gap:12px}.result-heading,.result-hero{align-items:flex-start;flex-direction:column}.result-hero{padding:23px;gap:22px}.result-hero-meta{flex-direction:row;flex-wrap:wrap;gap:10px 18px}.result-days{gap:8px}.result-day{padding:13px 10px}.result-day h4{font-size:11px}.result-day-value{font-size:24px}.result-error{font-size:10px;line-height:1.5}.result-chart-heading{align-items:flex-start;flex-direction:column;gap:10px}.result-chart-key{flex-wrap:wrap;gap:13px}}@media (max-width:390px){.result-days{grid-template-columns:1fr}.result-day{padding:16px}}.ml-intro{margin-bottom:.9rem}.ml-intro p{margin:0 0 .4rem;color:var(--text,#e8edf2);font-size:.92rem;line-height:1.5;max-width:62ch}.ml-steps{display:flex;gap:.5rem;align-items:center;list-style:none;padding:0;margin:0;font-size:.78rem;font-weight:600;color:var(--text-dim,#7a8a99);flex-wrap:wrap}.ml-steps li[aria-hidden]{color:var(--line,#2a3540)}.ml-readiness{margin:.6rem 0 0;font-size:.85rem;color:var(--text-dim,#9fb2c1)}.ml-readiness.quality-warning{color:#d98880}.forecast-location-controls{display:flex;gap:.6rem;align-items:flex-end}.location-new{padding:.42rem .7rem;border:1px solid var(--line,#2a3540);border-radius:6px;background:transparent;color:var(--text,#e8edf2);font:inherit;font-size:.8rem;cursor:pointer;white-space:nowrap}.location-new:hover{border-color:#2abb9a}.location-picker{margin:.8rem 0;padding:.9rem;border:1px solid var(--line,#2a3540);border-radius:10px;background:var(--surface-2,#0d141a)}.location-picker-grid{display:flex;flex-direction:column;gap:.7rem;max-width:560px}.location-picker-grid label{display:flex;flex-direction:column;gap:.3rem;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim,#7a8a99)}.location-picker-grid input{font:inherit;text-transform:none;letter-spacing:normal;padding:.42rem .6rem;border:1px solid var(--line,#2a3540);border-radius:6px;background:var(--surface,#10161d);color:var(--text,#e8edf2)}.location-search{display:flex;gap:.4rem}.location-search input{flex:1}.location-search button{font:inherit;font-size:.8rem;padding:.42rem .7rem;border:1px solid var(--line,#2a3540);border-radius:6px;background:transparent;color:var(--text,#e8edf2);cursor:pointer}.location-coords{display:flex;gap:.6rem}.location-coords label{flex:1}.location-hits{margin:-.3rem 0 0;padding:0;list-style:none;border:1px solid var(--line,#2a3540);border-radius:6px;overflow:hidden}.location-hits button{display:block;width:100%;text-align:left;padding:.45rem .6rem;border:0;background:transparent;color:var(--text,#e8edf2);font:inherit;font-size:.85rem;cursor:pointer}.location-hits button:hover{background:rgba(42,187,154,.12)}.location-picker-map{border-radius:8px;overflow:hidden}@media (max-width:640px){.forecast-location-controls{flex-wrap:wrap}.location-coords{flex-direction:column;gap:.7rem}}.location-bounds{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.location-mode{display:flex;gap:.4rem}.location-mode button{font:inherit;font-size:.8rem;padding:.4rem .75rem;border:1px solid var(--line,#2a3540);border-radius:6px;background:transparent;color:var(--text-dim,#7a8a99);cursor:pointer}.location-mode button.active{border-color:#2abb9a;color:var(--text,#e8edf2);background:rgba(42,187,154,.1)}.ml-context{margin:.6rem 0 0;font-size:.85rem;color:var(--text,#e8edf2);display:flex;align-items:baseline;gap:.4rem;flex-wrap:wrap}.ml-scope-badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:.16rem .5rem;border-radius:999px;border:1px solid var(--line,#2a3540);color:var(--text-dim,#9fb2c1)}.ml-scope-badge.is-area{border-color:#3b82f6;color:#8ab6f5}.ml-freshness{margin:.4rem 0 0;display:block}.ml-link{font:inherit;font-size:inherit;border:0;background:none;color:#2abb9a;cursor:pointer;padding:0 0 0 .4rem;text-decoration:underline}@media (max-width:640px){.location-bounds{grid-template-columns:1fr}}