:root{--clim-hot:#d9695f;--clim-cold:#5f8ec9;--clim-rain:#5a93c9}.climate-chart-wrapper{position:relative}.temp-band{display:flex;gap:2px;height:18px;margin-bottom:5px;border-radius:4px;overflow:hidden}.temp-band-seg{display:flex;align-items:center;justify-content:center;min-width:0;flex-basis:0}.temp-band-seg.empty{background:var(--surface-stronger,rgba(255,255,255,.06))}.temp-band-lbl{font-size:.5rem;font-weight:700;letter-spacing:.02em;text-transform:lowercase;color:rgba(255,255,255,.96);text-shadow:0 1px 2px rgba(0,0,0,.45);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px}.clim-month-axis{display:grid;grid-template-columns:repeat(12,1fr);grid-gap:3px;gap:3px;margin:4px 0 0}.clim-month{background:none;border:none;padding:2px 0;text-align:center;font-size:.5rem;font-weight:600;color:var(--text-muted);cursor:pointer;outline:none;transition:color 80ms ease}.clim-month.hl,.clim-month:focus-visible,.clim-month:hover{color:var(--text-primary)}.clim-stack{position:relative;margin-top:10px;border:1px solid var(--glass-border,rgba(255,255,255,.1));border-radius:var(--radius-sm);overflow:hidden;cursor:pointer}.clim-row+.clim-row{border-top:1px solid var(--glass-border,rgba(255,255,255,.1))}.clim-box{position:relative;width:100%}.clim-lbl{position:absolute;font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap;pointer-events:none;line-height:1;z-index:2;color:var(--text-primary);text-shadow:0 1px 3px rgba(0,0,0,.55)}[data-theme=light] .clim-lbl{text-shadow:0 1px 3px rgba(255,255,255,.75)}.clim-lbl-onlight{text-shadow:0 1px 3px rgba(255,255,255,.9),0 0 2px rgba(255,255,255,.7)!important}.clim-lbl-ondark{text-shadow:0 1px 3px rgba(0,0,0,.7),0 0 2px rgba(0,0,0,.55)!important}.clim-cursor{position:absolute;top:0;bottom:0;width:1px;background:var(--text-primary);opacity:.5;pointer-events:none;z-index:3}.clim-hit{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,1fr)}.clim-hit>div{cursor:pointer}.clim-tip{position:fixed;transform:translate(-50%,-100%);z-index:var(--z-popover);background:var(--chart-tooltip-bg);border:1px solid var(--chart-tooltip-border);border-radius:var(--radius-sm);padding:9px 11px;font-size:.7rem;color:var(--chart-tooltip-text);box-shadow:var(--shadow-lg);white-space:nowrap;pointer-events:none;min-width:168px}.clim-tip-month{font-family:var(--font-display);font-weight:700;font-size:.78rem;display:block;margin-bottom:6px}.clim-tip-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:1.5px 0}.clim-tip-row .k{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary)}.clim-tip-row .k i{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.clim-tip-row b{font-family:var(--font-mono);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.clim-tip-row.sub{padding-top:0;color:var(--text-muted);font-family:var(--font-mono);font-size:.62rem;justify-content:flex-end}.clim-tip-modal{font-size:.78rem;min-width:188px}.climate-chart-wrapper.is-enlarged .clim-lbl{font-size:14px}.climate-chart-wrapper.is-enlarged .clim-month{font-size:.75rem}.climate-chart-wrapper.is-enlarged .temp-band-lbl{font-size:.6875rem}.climate-chart-wrapper.is-enlarged .clim-hit>div,.climate-chart-wrapper.is-enlarged .clim-month,.climate-chart-wrapper.is-enlarged .clim-stack{cursor:default}.climate-summary{font-size:.82rem;color:var(--text-secondary);margin:0 0 8px;letter-spacing:.01em;line-height:1.4}.climate-chart-section{display:block;border-radius:var(--radius-md,8px)}.climate-chart-section:focus-visible{outline:2px solid var(--accent,#4f8cff);outline-offset:2px}.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:24px;background:var(--surface-overlay);animation:modalOverlayIn .25s ease-out}.modal-dialog{position:relative;width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);color:var(--text-primary);outline:none;animation:modalDialogIn .25s cubic-bezier(.16,1,.3,1)}.modal-wide{max-width:820px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 24px 0}.modal-title{margin:0;font-family:var(--font-display);font-weight:var(--text-title-weight);font-size:var(--text-title-size);letter-spacing:var(--text-title-tracking);color:var(--text-primary)}.modal-close{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:none;color:var(--text-muted);font-size:24px;line-height:1;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.modal-close:hover{color:var(--text-primary);background:var(--surface-hover)}.modal-body{padding:16px 24px 24px;overflow-y:auto}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalDialogIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}@keyframes modalSheetIn{0%{opacity:0;transform:translateY(8%)}to{opacity:1;transform:none}}@media (max-width:640px){.modal-overlay{padding:0;align-items:flex-end}.modal-dialog,.modal-dialog.modal-wide{max-width:100%;max-height:92vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:modalSheetIn .25s cubic-bezier(.16,1,.3,1)}}@media (prefers-reduced-motion:reduce){.modal-dialog,.modal-overlay{animation:none}}