@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@300;400;500;600;700&display=swap";:root{--surface-ground:#f4f3ef;--surface-card:#fff;--surface-sunken:#eceae4;--ink-1:#17191c;--ink-2:#4a4f57;--ink-3:#62676f;--line:#17191c14;--line-strong:#17191c24;--accent:#0e6b65;--accent-press:#0a5550;--accent-rgb:14, 107, 101;--accent-soft:#0e6b6514;--shadow-card:0 1px 2px #17191c0a, 0 4px 16px #17191c0d;--shadow-raised:0 2px 4px #17191c0d, 0 12px 32px #17191c14;--font-sans:"IBM Plex Sans JP", system-ui, -apple-system, "Hiragino Sans", "Yu Gothic UI", sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--accent-blue:#0369a1;--accent-blue-hover:#075985;--accent-blue-light:#0369a10f;--grid-color:#17191c0f;--chart-temp:#e0555a;--chart-precip:#2e7dd7;--chart-accum:#3e9b6e;--chart-humid:#1f8a8a;--chart-sunshine:#e09a1f;font-family:var(--font-sans);font-feature-settings:"palt"}*{box-sizing:border-box}body{background:var(--surface-ground);color:var(--ink-1);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:contain;min-height:100vh;margin:0;padding:0}.glass-panel{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow .3s}.glass-panel:hover{box-shadow:var(--shadow-raised)}.glass-card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1.5rem}.glass-card:hover{box-shadow:var(--shadow-raised)}.ui-sheet__body .app-container{max-width:none;padding:0}.app-container{flex-direction:column;gap:1.75rem;max-width:1200px;margin:0 auto;padding:2rem;display:flex}.header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:1.25rem;display:flex}.title{color:var(--ink-1);letter-spacing:-.01em;align-items:center;gap:.6rem;margin:0;font-size:1.35rem;font-weight:700;display:flex}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;display:grid}.stat-card{flex-direction:column;gap:.6rem;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";width:4px;height:100%;position:absolute;top:0;left:0}.stat-card.temp:before{background-color:var(--chart-temp)}.stat-card.precip:before{background-color:var(--chart-precip)}.stat-card.accum:before{background-color:var(--chart-accum)}.stat-card.humid:before{background-color:var(--chart-humid)}.stat-card.sunshine:before{background-color:var(--chart-sunshine)}.stat-label{color:var(--ink-2);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.stat-value{color:var(--ink-1);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:2.25rem;font-weight:800}.chart-container{width:100%;height:400px;margin-top:1rem;padding:1.75rem}.chart-title{color:var(--ink-1);align-items:center;gap:.5rem;margin-bottom:1.25rem;font-size:1.05rem;font-weight:700;display:flex}.controls-bar{flex-wrap:wrap;align-items:center;gap:1.25rem;display:flex}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:var(--ink-2);letter-spacing:.02em;font-size:.78rem;font-weight:600}select,input{background:var(--surface-card);border:1px solid var(--line-strong);color:var(--ink-1);border-radius:var(--radius-md);box-shadow:none;outline:none;padding:.55rem 1rem;font-family:inherit;font-size:.9rem;font-weight:500;transition:border-color .2s,box-shadow .2s}select:focus,input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .18)}option{color:var(--ink-1);background-color:#fff}button{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;box-shadow:none;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background-color .2s,transform .15s;display:flex}:where(button:hover){background-color:var(--accent-press)}button:active{transform:scale(.97)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.secondary{background:var(--surface-card);border:1px solid var(--line-strong);color:var(--ink-2)}button.secondary:hover{background:var(--surface-sunken);color:var(--ink-1)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:1000;background:#0f172a73;justify-content:center;align-items:center;animation:.3s ease-out fadeIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-content{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:500px;box-shadow:var(--shadow-raised);padding:2.25rem;animation:.3s cubic-bezier(.34,1.56,.64,1) scaleUp}.guidance-modal-overlay{padding:1rem;padding-top:max(1rem, env(safe-area-inset-top));padding-right:max(1rem, env(safe-area-inset-right));padding-bottom:max(1rem, env(safe-area-inset-bottom));padding-left:max(1rem, env(safe-area-inset-left))}.guidance-modal-content{max-width:440px;max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;padding:1.5rem;overflow-y:auto}@media (max-height:600px){.guidance-modal-overlay{align-items:flex-start}}@media (prefers-reduced-motion:reduce){.guidance-modal-overlay,.guidance-modal-content{animation:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.table-container{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow-card);border:1px solid var(--line);margin-top:1.25rem;overflow:auto hidden;transform:translateZ(0)}.glass-table{border-collapse:collapse;text-align:left;background:var(--surface-card);width:100%;font-size:.88em}.glass-table th,.glass-table td{border:none;border-bottom:1px solid var(--line);white-space:nowrap;padding:.75rem 1rem}.glass-table th{background:var(--surface-sunken);color:var(--ink-2);text-align:center;letter-spacing:.02em;font-size:.8rem;font-weight:600}.glass-table td{background:var(--surface-card);font-variant-numeric:tabular-nums;color:var(--ink-1)}.glass-table tbody tr:nth-child(2n):not(:hover) td{background:#17191c06}.glass-table tr:hover td{background:var(--accent-soft)}.glass-table td.text-right{text-align:right;font-weight:500}.glass-table.text-wrap td{white-space:normal;word-break:break-word}.ai-tab-bar{scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto}.ai-tab-bar::-webkit-scrollbar{display:none}.ai-tab-bar .ai-seg{min-width:max-content;display:flex}.ai-tab-bar .ai-seg .ui-seg__item{border-radius:0;flex:1 0 auto}@keyframes iconWaveBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-10px)}}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.3}}.dot-pulse{animation:1.4s ease-in-out infinite dotPulse;display:inline-block}.premium-segmented-tab{background:var(--surface-sunken);border-radius:var(--radius-pill);border:none;padding:.25rem;display:inline-flex}.premium-segmented-tab button{border-radius:var(--radius-pill)!important}.premium-pill{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-card);color:var(--ink-2);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:.4rem 1.1rem;font-size:.85rem;font-weight:600;transition:background-color .2s,color .2s,border-color .2s}.premium-pill:hover{border-color:var(--accent);color:var(--accent)}.premium-pill.active{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-pulse{0%,to{opacity:1}50%{opacity:.3}}.ui-btn{border-radius:var(--radius-pill);min-height:44px;font:inherit;cursor:pointer;box-shadow:none;-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:0 1.25rem;font-size:.9rem;font-weight:600;line-height:1;transition:background-color .2s,color .2s,border-color .2s;display:inline-flex}.ui-btn:disabled{opacity:.45;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--accent-press)}.ui-btn--secondary{background:var(--surface-card);color:var(--ink-1);border-color:var(--line-strong)}.ui-btn--secondary:hover:not(:disabled){background:var(--surface-sunken)}.ui-btn--ghost{color:var(--ink-2);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.ui-seg{gap:2px;display:inline-flex;position:relative}.ui-seg--pill{background:var(--surface-sunken);border-radius:var(--radius-pill);padding:3px}.ui-seg--underline{border-bottom:1px solid var(--line)}.ui-seg__item{min-height:36px;box-shadow:none;border-radius:var(--radius-pill);color:var(--ink-2);font:inherit;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;gap:.35rem;padding:0 1rem;font-size:.85rem;font-weight:500;transition:color .2s;display:inline-flex;position:relative}.ui-seg__item:hover{color:var(--ink-1);background:0 0}.ui-seg__item[aria-selected=true]{color:var(--ink-1);font-weight:600}.ui-seg--underline .ui-seg__item[aria-selected=true]{color:var(--accent)}.ui-seg__label{z-index:1;align-items:center;gap:.35rem;display:inline-flex;position:relative}.ui-seg__thumb{z-index:0;border-radius:var(--radius-pill);background:var(--surface-card);position:absolute;top:0;bottom:0;left:0;right:0;box-shadow:0 1px 2px #17191c0f,0 2px 8px #17191c0f}.ui-seg--underline .ui-seg__thumb{background:var(--accent);height:2px;box-shadow:none;border-radius:2px;top:auto;bottom:-1px;left:0;right:0}.ui-sheet-backdrop{z-index:900;background:#17191c5c;position:fixed;top:0;bottom:0;left:0;right:0}.ui-sheet{z-index:901;background:var(--surface-ground);box-shadow:var(--shadow-raised);outline:none;flex-direction:column;display:flex;position:fixed}.ui-sheet--bottom{max-height:calc(100dvh - 48px - env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);border-radius:20px 20px 0 0;bottom:0;left:0;right:0}.ui-sheet--side{border-radius:20px 0 0 20px;width:min(480px,100vw);top:0;bottom:0;right:0}.ui-sheet__grabber{background:var(--line-strong);touch-action:none;border-radius:3px;flex-shrink:0;width:36px;height:5px;margin:8px auto 0}.ui-sheet__header{touch-action:none;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px 8px 20px;display:flex}.ui-sheet__title{color:var(--ink-1);margin:0;font-size:1.05rem;font-weight:700}.ui-sheet__close{border-radius:var(--radius-pill);background:var(--surface-sunken);width:36px;height:36px;color:var(--ink-2);box-shadow:none;padding:0}.ui-sheet__close:hover{background:var(--line-strong);color:var(--ink-1)}.ui-sheet--narrow .ui-sheet__header{box-sizing:border-box;width:100%;max-width:calc(var(--sheet-content-w) + 32px);margin-inline-start:auto;margin-inline-end:auto}.ui-sheet__inner{max-width:var(--sheet-content-w);margin-inline-start:auto;margin-inline-end:auto}.ui-sheet__body{overscroll-behavior:contain;flex:1;min-height:0;padding:0 16px 24px;overflow-y:auto}.ui-skeleton{background:var(--surface-sunken);border-radius:var(--radius-md);position:relative;overflow:hidden}.ui-skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffff8c,#0000);animation:1.6s ease-in-out infinite ui-skeleton-sweep;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}@keyframes ui-skeleton-sweep{to{transform:translate(100%)}}.ui-shake{animation:.4s cubic-bezier(.36,.07,.19,.97) both ui-shake}@keyframes ui-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.ui-skeleton:after{display:none}.ui-shake{animation:none}}.ui-seg--compact{flex-shrink:0}.ui-seg--compact .ui-seg__item{min-height:30px;padding:0 .7rem;font-size:.75rem}[data-reveal]:empty{display:none}.ui-toggle{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:.6rem;display:inline-flex}.ui-toggle--disabled{cursor:not-allowed}.ui-toggle__track{box-sizing:border-box;border-radius:var(--radius-pill);background:var(--surface-sunken);border:1px solid var(--line-strong);width:44px;height:28px;box-shadow:none;flex-shrink:0;justify-content:flex-start;align-items:center;padding:2px;transition:background-color .2s,border-color .2s;display:flex}.ui-toggle__track:hover:not(:disabled){background:var(--surface-sunken)}.ui-toggle__track:active{transform:none}.ui-toggle__track[data-checked=true]{background:var(--accent);border-color:var(--accent);justify-content:flex-end}.ui-toggle__track[data-checked=true]:hover:not(:disabled){background:var(--accent-press);border-color:var(--accent-press)}.ui-toggle__track:disabled{opacity:.45;cursor:not-allowed}.ui-toggle__thumb{background:#fff;border-radius:50%;width:22px;height:22px;display:block;box-shadow:0 1px 3px #17191c40}.ui-toggle__label{color:var(--ink-1);font-size:.9rem}.ui-savebtn{min-width:6.5rem}.ui-savebtn__inner{align-items:center;gap:.4rem;display:inline-flex}.ui-savebtn__pulse{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite ui-savebtn-pulse}@keyframes ui-savebtn-pulse{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.ui-savebtn__pulse{opacity:.6;animation:none}}.settings-account{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:.6rem 0 .9rem;display:flex}.settings-account__avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:36px;height:36px}.settings-account__text{flex:1;min-width:0}.settings-account__name{color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.settings-account__email{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.settings-account__logout{flex-shrink:0;min-height:36px;padding:0 .8rem;font-size:.8rem}.settings-subtabs{margin-bottom:.25rem}.set-stack{flex-direction:column;gap:1rem;display:flex}.set-card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;gap:1.1rem;padding:1.25rem;display:flex}.set-card--editing{border-color:rgba(var(--accent-rgb), .35)}.set-title{color:var(--ink-1);margin:0;font-size:.95rem;font-weight:600}.set-desc{color:var(--ink-3);margin:.3rem 0 0;font-size:.8rem;line-height:1.6}.set-subhead{letter-spacing:.06em;color:var(--ink-3);margin:0 0 .4rem;font-size:.72rem;font-weight:700}.set-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.set-actions--split{justify-content:space-between}.set-actions__right{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.6rem;margin-left:auto;display:flex}.ui-btn.set-btn-sm{min-height:36px;padding:0 1rem;font-size:.85rem}.ui-btn.set-btn-xs{min-height:32px;padding:0 .8rem;font-size:.78rem}.ui-btn.set-btn-danger{color:#b3261e}.ui-btn.set-btn-danger:hover:not(:disabled){color:#b3261e;background:#b3261e14}.ui-btn.set-btn-danger-solid{color:#fff;background:#b3261e}.ui-btn.set-btn-danger-solid:hover:not(:disabled){background:#8f1f19}.set-error{color:#c62828;font-size:.78rem}.set-status{color:var(--ink-2);font-size:.78rem}.set-notice{border-radius:var(--radius-md);background:var(--surface-sunken);border:1px solid var(--line);color:var(--ink-2);padding:.7rem .9rem;font-size:.8rem;line-height:1.7}.set-list{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.set-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:1rem;padding:.85rem 1rem;display:flex}.set-row:last-child{border-bottom:none}.set-row--locked{cursor:not-allowed}.set-row__body{flex:1;min-width:0;transition:opacity .15s}.set-row__body--off{opacity:.5}.set-row__head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.set-row__title{color:var(--ink-1);font-size:.9rem;font-weight:600}.set-row__desc{color:var(--ink-3);margin:0;font-size:.78rem;line-height:1.6}.set-row__toggle{flex-shrink:0;padding-top:1px}.set-chip{border-radius:var(--radius-pill);white-space:nowrap;padding:.1rem .5rem;font-size:.68rem;font-weight:600;line-height:1.6}.set-textarea{box-sizing:border-box;width:100%;font:inherit;color:var(--ink-1);background:var(--surface-card);border:1px solid var(--line-strong);border-radius:var(--radius-md);resize:vertical;padding:.75rem;font-size:.85rem;line-height:1.7}.set-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .18);outline:none}.set-textarea:disabled{background:var(--surface-sunken)}.loc-row{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;padding:1rem 1.1rem;display:flex}.loc-row__main{flex:14rem;min-width:0}.loc-row__name{color:var(--ink-1);font-size:1rem;font-weight:600}.loc-row__meta{color:var(--ink-3);margin-top:.25rem;font-size:.8rem}.loc-row__area{color:var(--accent);margin-top:.2rem;font-size:.78rem}.loc-row__area--none{color:var(--ink-3)}.loc-row__actions{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.loc-default-badge{color:var(--accent);background:var(--accent-soft);border-radius:var(--radius-pill);white-space:nowrap;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.modal-content.set-confirm{max-width:340px;padding:1.5rem}.set-confirm__title{color:var(--ink-1);margin:0 0 .4rem;font-size:1rem;font-weight:700}.set-confirm__text{color:var(--ink-2);margin:0 0 1.2rem;font-size:.9rem}.set-quick{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.set-quick__group{align-items:center;gap:.4rem;display:flex}.set-quick__label{color:var(--ink-3);margin-right:.1rem;font-size:.75rem}.set-hint{color:var(--ink-3);font-size:.72rem;line-height:1.4}.set-sep{border-top:1px solid var(--line);flex-direction:column;gap:.6rem;padding-top:1rem;display:flex}.set-field-label{color:var(--ink-1);font-size:.85rem;font-weight:600}@media (prefers-reduced-motion:reduce){.set-row__body{transition:none}}.set-stack>ul>li:last-child{padding-bottom:0!important}.set-row-group{border-bottom:1px solid var(--line)}.set-row-group:last-child,.set-row-group .set-row{border-bottom:none}.set-row-group__extra{padding:0 1rem .9rem;transition:opacity .15s}@media (max-width:480px){.settings-subtabs .ui-seg__item{padding:0 .45rem;font-size:.78rem}}.set-pace-row{justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0;display:flex}.warn-card{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:.75rem 1rem}.warn-card__head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.warn-card__title{letter-spacing:.05em;color:var(--ink-2);font-size:.75rem;font-weight:600}.warn-card__time{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.7rem}.warn-card__list{flex-direction:column;display:flex}.warn-row{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-height:44px;padding:.35rem 0 .35rem .85rem;display:flex;position:relative}.warn-row+.warn-row{border-top:1px solid var(--line)}.warn-row__bar{transform-origin:0;border-radius:2px;width:4px;position:absolute;top:.4rem;bottom:.4rem;left:0}.warn-row__bar--pulse{animation:1.2s ease-in-out 3 warn-pulse}.warn-row__chip{border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;padding:.1rem .5rem;font-size:.68rem;font-weight:700;line-height:1.6}.warn-row__name{color:var(--ink-1);white-space:nowrap;font-size:.9rem;font-weight:600}.warn-row__status{border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.05rem .4rem;font-size:.66rem;font-weight:600;line-height:1.5}.warn-row__time{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.75rem}@keyframes warn-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.warn-row__bar--pulse{animation:none}}.hourly-label:after{content:"";pointer-events:none;background:linear-gradient(90deg,#17191c0f,#0000);width:8px;position:absolute;top:0;bottom:0;left:100%}.sky-particles{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.sky-particles>*{pointer-events:none}.sky-particle{will-change:transform, opacity;position:absolute}.sky-breath{opacity:.06;background:radial-gradient(80% 70% at 50% 0,#fff 0%,#fff0 70%);animation:10s ease-in-out infinite alternate sky-breath;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes sky-breath{0%{opacity:.06}to{opacity:.14}}.sky-sun{aspect-ratio:1;background:radial-gradient(circle,#fff4d68c 0%,#fff4d600 65%);border-radius:50%;width:90%;animation:12s ease-in-out infinite alternate sky-sun;position:absolute;top:-30%;right:-20%}@keyframes sky-sun{0%{opacity:.75;transform:scale(1)}to{opacity:1;transform:scale(1.08)}}.sky-particle--star{left:var(--x);top:var(--y);width:var(--size);height:var(--size);opacity:.25;animation:sky-twinkle var(--dur) ease-in-out var(--delay) infinite;background:#fff;border-radius:50%}@keyframes sky-twinkle{0%,to{opacity:.2}50%{opacity:.95}}.sky-particle--cloud{left:0;top:var(--y);width:var(--w);aspect-ratio:2.6;animation:sky-cloud var(--dur) linear var(--delay) infinite;background:radial-gradient(#ffffff2e 0%,#fff0 70%);border-radius:999px}@keyframes sky-cloud{0%{transform:translate(-110%)}to{transform:translate(140%)}}.sky-particle--rain{left:var(--x);width:1.5px;height:var(--len);animation:sky-rain var(--dur) linear var(--delay) infinite;background:linear-gradient(#fff0,#ffffff8c);border-radius:1px;top:-8%}@keyframes sky-rain{0%{opacity:0;transform:translate(0,0)rotate(12deg)}10%{opacity:1}to{opacity:1;transform:translate(-26vh,120vh)rotate(12deg)}}.sky-particle--snow{left:var(--x);width:var(--size);height:var(--size);animation:sky-snow var(--dur) linear var(--delay) infinite;background:#ffffffd9;border-radius:50%;top:-6%}@keyframes sky-snow{0%{opacity:0;transform:translate(0,0)}8%{opacity:1}30%{transform:translate3d(var(--sway), 40vh, 0)}60%{transform:translate3d(calc(var(--sway) * -1), 80vh, 0)}to{opacity:1;transform:translateY(120vh)}}.sky-particle--fog{left:-20%;top:var(--y);width:140%;height:34%;animation:sky-fog var(--dur) ease-in-out var(--delay) infinite alternate;background:radial-gradient(#ffffff4d 0%,#fff0 70%)}@keyframes sky-fog{0%{transform:translate(-8%)}to{transform:translate(8%)}}.sky-flash{opacity:0;background:#fff;animation:12s linear infinite sky-flash;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes sky-flash{0%,6%,to{opacity:0}1%{opacity:.5}2%{opacity:.05}3%{opacity:.35}4.5%{opacity:0}}.sky-particles--paused,.sky-particles--paused *{animation-play-state:paused}@media (prefers-reduced-motion:reduce){.sky-particles,.sky-particles *{animation:none}.sky-particle--rain,.sky-particle--snow{top:var(--y)}.sky-particle--cloud{left:var(--x)}.sky-particle--rain{opacity:.8;transform:rotate(12deg)}.sky-particle--star{opacity:.7}.sky-particle--snow{opacity:1}.sky-flash{display:none}}.sky-hero{color:#fff;flex-direction:column;min-height:40vh;display:flex;position:relative;overflow:hidden}.sky-hero__inner{box-sizing:border-box;flex-direction:column;flex:1;gap:.25rem;width:100%;max-width:1200px;margin:0 auto;padding:.5rem 1rem 40px;display:flex;position:relative}.sky-hero__row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.sky-hero__loc{color:#fff;align-items:center;min-width:0;min-height:44px;font-size:.95rem;font-weight:600;display:flex;position:relative}.sky-hero__loc-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sky-hero .sky-hero__select{opacity:0;cursor:pointer;width:100%;height:100%;font-size:16px;position:absolute;top:0;bottom:0;left:0;right:0}.sky-hero__loc:has(.sky-hero__select:focus-visible){outline-offset:2px;border-radius:var(--radius-sm);outline:2px solid #fff}.sky-hero__actions{flex-shrink:0;gap:.5rem;display:flex}.sky-hero .sky-hero__btn{color:#fff;width:44px;height:44px;min-height:44px;box-shadow:none;-webkit-tap-highlight-color:transparent;background:#ffffff2e;border:none;border-radius:50%;padding:0;transition:background-color .2s}.sky-hero .sky-hero__btn:hover:not(:disabled){background:#ffffff47}.sky-hero .sky-hero__btn:disabled{opacity:.6;cursor:not-allowed}.sky-hero .sky-hero__btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.sky-hero__spin{animation:1.2s linear infinite spin}.sky-hero__main{align-items:center;margin-top:.5rem;display:flex;position:relative}.sky-hero__temp{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:clamp(72px,22vw,112px);font-weight:300;line-height:1}.sky-hero__icon{width:64px;height:64px;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sky-hero__icon>*{width:100%;height:100%}.sky-hero__icon--wide-temp{left:auto;right:0;transform:translateY(-50%)}@media (min-width:400px){.sky-hero__icon{width:88px;height:88px}.sky-hero__icon--wide-temp{left:50%;right:auto;transform:translate(-50%,-50%)}}@media (min-width:768px){.sky-hero__icon{width:128px;height:128px}}.sky-hero__meta{margin-top:.5rem}.sky-hero__label{font-size:1.1rem;font-weight:500}.sky-hero__range{font-variant-numeric:tabular-nums;margin-top:.15rem;font-size:.9rem}.sky-hero__range-sep,.sky-hero__range-min{color:#ffffffb3}.sky-hero__updated{color:#ffffffc7;white-space:nowrap;text-shadow:0 0 6px #14285059;flex-shrink:0;font-size:.75rem;line-height:1.3}.sky-hero__extra{color:#fff;margin-top:.75rem;font-size:.8rem}.sky-hero__art-frame{pointer-events:none;max-width:1200px;margin:0 auto;position:absolute;top:0;bottom:0;left:0;right:0}.sky-hero__art{opacity:.3;pointer-events:none;width:200px;height:200px;line-height:0;position:absolute;bottom:40px;right:1rem}.sky-hero__art--night{opacity:.22}.sky-hero__art svg{width:100%;height:100%;display:block}.sky-hero__foot{justify-content:space-between;align-items:flex-end;gap:.75rem;margin-top:auto;padding-top:8px;display:flex}.sky-hero__sekki{pointer-events:none;min-width:0;margin-left:auto}.sekki-badge{justify-content:flex-end;display:flex}.sekki-badge--button{font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm,6px);pointer-events:auto;background:0 0;border:0;margin:0;padding:0}.sekki-badge--button:focus-visible{outline-offset:3px;outline:2px solid #ffffffd9}.sekki-badge__chev{opacity:.75;margin-left:.25em}.sekki-badge__text{text-align:right;flex-direction:column;align-items:flex-end;min-width:0;display:flex}.sekki-badge__sekki{color:#ffffffd9;font-size:.95rem;font-weight:500;line-height:1.3}.sekki-badge__kou{color:#ffffffb3;font-size:.8rem;line-height:1.35}.sekki-badge__reading{color:#ffffff8c;white-space:nowrap;max-width:100%;font-size:.68rem;line-height:1.35;overflow:hidden}.sekki-badge__reading--clipped{visibility:hidden;height:0}@media (max-height:760px){.sekki-badge__reading{display:none}}@media (min-width:768px){.sky-hero{min-height:320px}.sky-hero__art{width:280px;height:280px;bottom:48px;right:2rem}.sky-hero__inner{padding:.5rem 2rem 48px}}@media (prefers-reduced-motion:reduce){.sky-hero__spin{animation-duration:3s}}.sky-band{color:#fff;transition:background .6s}.sky-band__inner{box-sizing:border-box;max-width:1200px;margin:0 auto;padding:12px 20px 36px}.sky-band__title{color:#fff;margin:0;font-size:1.25rem;font-weight:600;line-height:1.3}@media (min-width:768px){.sky-band__inner{padding:16px 2rem 40px}}.sky-overlap{margin-top:-24px;position:relative}.sky-overlap>.app-container{padding-top:0!important}.season-strip{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-md);min-height:52px;box-shadow:var(--shadow-card);flex-direction:column;justify-content:center;gap:2px;padding:.45rem .85rem;display:flex}.season-strip--ticker{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:0;display:block;position:relative;overflow:hidden}.season-strip--ticker:hover{background:var(--surface-card)}.season-strip__stage{display:block;position:absolute;top:0;bottom:0;left:0;right:0}.season-strip__item{flex-direction:column;justify-content:center;gap:2px;padding:.45rem 2.2rem .45rem .85rem;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.season-strip__dots{gap:4px;display:flex;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.season-strip__dots i{background:var(--line);border-radius:50%;width:5px;height:5px}.season-strip__dots i.is-current{background:var(--ink-3)}.season-strip__label{color:var(--ink-3);font-size:.7rem;line-height:1.3}.season-strip__text{color:var(--ink-1);font-size:.85rem;font-weight:600;line-height:1.4}.season-card{box-sizing:border-box;background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);max-width:520px;box-shadow:var(--shadow-card);color:var(--ink-1);margin-inline-start:auto;margin-inline-end:auto;padding:.85rem 1rem .9rem}.season-card__head{align-items:center;gap:.75rem;display:flex}.season-card__art{background:linear-gradient(#4f86c0,#2d5f96);border-radius:14px;flex-shrink:0;padding:4px}.season-card__heading{min-width:0}.season-card__period{color:var(--ink-3);margin:0;font-size:.72rem}.season-card__base{margin-left:1em}.season-card__title{text-wrap:balance;word-break:keep-all;overflow-wrap:anywhere;margin:.15rem 0 0;font-size:1rem;font-weight:700;line-height:1.4}.season-card__table{border-collapse:collapse;width:100%;margin-top:.7rem;font-size:.8rem}.season-card__table th,.season-card__table td{text-align:right;font-variant-numeric:tabular-nums;padding:.35rem .25rem}.season-card__table thead th{color:var(--ink-3);font-size:.68rem;font-weight:500}.season-card__table tbody tr{border-top:1px solid var(--line)}.season-card__table tbody th{text-align:left;color:var(--ink-2);font-weight:500}.season-card__value{font-weight:700}.season-card__cmp--more{color:#c0502a}.season-card__cmp--less{color:#2a6fb0}.season-card__cmp--same{color:var(--ink-3)}.season-card__rain{margin-top:.6rem}.season-card__chart{position:relative}.season-card__chart svg,.season-card__rainbars svg{width:100%;display:block}.season-card__chart svg{height:64px}.season-card__rainbars svg{height:22px}.season-card__tick{color:var(--ink-3);font-size:.6rem;line-height:1;position:absolute;right:0}.season-card__tick--hi{top:0}.season-card__tick--lo{bottom:0}.season-card__icons{margin-top:2px;display:flex}.season-card__chart,.season-card__raincol,.season-card__icons{padding-right:24px}.season-card__raincol{margin-top:2px;position:relative}.season-card__rainvals{height:.75rem;position:relative}.season-card__rain-unit{color:var(--ink-3);font-size:.55rem;line-height:.75rem;position:absolute;bottom:0;right:0}.season-card__rain-label{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.55rem;line-height:1;position:absolute;top:.1rem;transform:translate(-50%)}.season-card__icons span{flex:1;justify-content:center;min-width:0;display:flex}.season-card__icons img{width:100%;max-width:18px;height:auto}.season-card__legend{color:var(--ink-3);flex-wrap:wrap;gap:0 .6rem;margin:2px 0 0;font-size:.6rem;display:flex}.season-card__legend i{vertical-align:-.05rem;border-radius:2px;width:.5rem;height:.5rem;margin-right:.2rem;display:inline-block}.season-card__axis{color:var(--ink-3);justify-content:space-between;margin-top:2px;font-size:.65rem;display:flex}.season-card__records{gap:.2rem;margin:.6rem 0 0;font-size:.78rem;display:grid}.season-card__records div{justify-content:space-between;gap:.5rem;display:flex}.season-card__records dt{color:var(--ink-2)}.season-card__records dd{font-variant-numeric:tabular-nums;margin:0;font-weight:600}.season-card__note{color:var(--ink-3);margin:.6rem 0 0;font-size:.7rem;line-height:1.5}.season-sr,.season-card__sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;list-style:none;position:absolute;overflow:hidden}.season-strip__name{background:rgba(var(--accent-rgb), .12);color:var(--accent);border-radius:4px;margin-right:.5em;padding:0 .4em;font-weight:700}.season-carousel{flex-direction:column;gap:.6rem;display:flex}.season-carousel__track{scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-x:contain;display:flex;overflow-x:auto}.season-carousel__track::-webkit-scrollbar{display:none}.season-carousel__slide{box-sizing:border-box;scroll-snap-align:center;flex:0 0 100%;padding:0 .25rem}.season-carousel__nav{justify-content:center;align-items:center;gap:.6rem;display:flex}.season-carousel__dots{align-items:center;min-width:0;display:flex}.season-carousel__dot{cursor:pointer;background:0 0;border:0;flex:0 18px;justify-content:center;align-items:center;min-width:12px;height:28px;padding:0;display:inline-flex}.season-carousel__dot:after{content:"";background:var(--line);border-radius:50%;width:7px;height:7px}.season-carousel__dot[aria-current=true]:after{background:var(--accent)}.season-carousel__arrow{border:1px solid var(--line);border-radius:var(--radius-md);width:32px;height:32px;color:var(--ink-3);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.season-carousel__arrow:hover:not(:disabled){color:var(--accent);border-color:rgba(var(--accent-rgb), .5)}.season-carousel__arrow:disabled{opacity:.35;cursor:default}.season-carousel__placeholder{box-sizing:border-box;border-radius:var(--radius-lg);background:var(--surface-card);border:1px solid var(--line);max-width:520px;min-height:420px;margin-inline-start:auto;margin-inline-end:auto}.season-strip--loading{flex-direction:row;justify-content:flex-start;align-items:center;gap:.6rem}.season-strip__spinner{color:var(--accent);flex-shrink:0;animation:1s linear infinite spin}.season-strip__loading-text{min-width:0;color:var(--ink-2);flex-direction:column;gap:1px;font-size:.8rem;line-height:1.35;display:flex}.season-strip__loading-sub{color:var(--ink-3);font-size:.68rem}@media (prefers-reduced-motion:reduce){.season-strip__spinner{animation-duration:3s}}.shell-header{z-index:50;color:#fff;height:56px;transition:background-color .6s;position:sticky;top:0}.shell-header__inner{box-sizing:border-box;align-items:center;gap:.5rem;max-width:1200px;height:100%;margin:0 auto;padding:0 1rem;display:flex}.shell-header__inner--wide{grid-template-columns:1fr auto 1fr;padding:0 2rem;display:grid}.shell-header__left{flex:1;align-items:center;gap:.6rem;min-width:0;display:flex}.shell-header__logo{pointer-events:none;flex-shrink:0;width:32px;height:32px}.shell-header__left--summary .shell-header__logo{display:none}@media (min-width:768px){.shell-header__left--summary .shell-header__logo{display:block}}.shell-header__summary{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;font-size:.9rem;font-weight:500;overflow:hidden}.shell-header__right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.shell-header__tabs{gap:2px;display:inline-flex}.shell-header .shell-header__tab{color:#fff;border-radius:var(--radius-pill);min-height:40px;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;padding:0 1rem;font-size:.85rem;font-weight:500;position:relative}.shell-header .shell-header__tab:hover{background:0 0}.shell-header .shell-header__tab.is-selected{color:var(--ink-1);font-weight:600}.shell-header .shell-header__tab:focus-visible{outline-offset:2px;outline:2px solid #fff}.shell-header__thumb{border-radius:var(--radius-pill);background:#fff;position:absolute;top:0;bottom:0;left:0;right:0}.shell-header__tab-label{align-items:center;gap:.35rem;display:inline-flex;position:relative}.shell-header .shell-header__icon-btn,.shell-header .shell-header__text-btn{color:#fff;height:40px;min-height:40px;box-shadow:none;border-radius:var(--radius-pill);-webkit-tap-highlight-color:transparent;background:#0000002e;border:none;padding:0;transition:background-color .2s}.shell-header .shell-header__icon-btn{width:40px}.shell-header .shell-header__text-btn{white-space:nowrap;gap:.35rem;padding:0 .9rem;font-size:.8rem;font-weight:600}.shell-header .shell-header__icon-btn:hover,.shell-header .shell-header__text-btn:hover{background:#00000047}.shell-header .shell-header__icon-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.shell-header .shell-header__text-btn:focus-visible{outline-offset:2px;outline:2px solid #fff}.shell-header__avatar{object-fit:cover;border:2px solid #ffffffd9;border-radius:50%;flex-shrink:0}.shell-bottomnav{z-index:50;height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;background:var(--surface-card);border-top:1px solid var(--line);position:fixed;bottom:0;left:0;right:0}.shell-bottomnav__list{align-items:stretch;height:64px;display:flex}.shell-bottomnav .shell-bottomnav__item{color:var(--ink-3);box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:0;flex:1;padding:0;font-weight:500;position:relative}.shell-bottomnav .shell-bottomnav__item:hover{background:0 0}.shell-bottomnav .shell-bottomnav__item.is-selected{color:var(--nav-sky-text,var(--accent));font-weight:600;transition:color .6s}.shell-bottomnav .shell-bottomnav__item:focus-visible{outline:2px solid var(--accent);outline-offset:-4px;border-radius:var(--radius-lg)}.shell-bottomnav__thumb{background:var(--nav-sky-soft,var(--accent-soft));border-radius:var(--radius-pill);width:72px;margin-left:-36px;transition:background-color .6s;position:absolute;top:6px;bottom:6px;left:50%}.shell-bottomnav__content{flex-direction:column;align-items:center;gap:2px;display:flex;position:relative}.shell-bottomnav__label{font-size:.68rem;line-height:1}.analysis-stack{flex-direction:column;gap:12px;display:flex}@media (min-width:701px){.analysis-stack{gap:16px}}@media (max-width:700px){.app-container.analysis-page{padding-left:16px!important;padding-right:16px!important}}.analysis-card{background:var(--surface-card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:16px}@media (min-width:701px){.analysis-card{padding:24px}}.analysis-card--controls{flex-direction:column;gap:12px;padding:16px;display:flex}.analysis-card--bar{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;display:flex}.analysis-card--tabs{padding:0 16px}.analysis-card--chart{flex-direction:column;gap:12px;display:flex}.analysis-card__heading{color:var(--ink-2);margin:0;font-size:.8rem;font-weight:600}.analysis-target{align-items:center;gap:8px;display:flex}.analysis-target__bar{border-radius:2px;flex-shrink:0;width:4px;height:24px}.analysis-target__badge{border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--ink-2);white-space:nowrap;flex-shrink:0;padding:3px 8px;font-size:.7rem;font-weight:600}.analysis-target select{min-width:0;padding:.4rem .75rem;font-size:.85rem}.ui-btn.analysis-btn-sm{min-height:36px;padding:0 .9rem;font-size:.8rem}.ui-btn.analysis-icon-btn{border-radius:var(--radius-pill);flex-shrink:0;width:32px;height:32px;min-height:32px;padding:0}.analysis-hint{color:var(--ink-3);white-space:nowrap;font-size:.72rem}.analysis-tab-scroller{margin:0 -16px;padding:0 16px}.analysis-tab-scroller .ui-seg--underline{border-bottom:none}.analysis-tab-scroller .ai-seg .ui-seg__item{min-height:44px;padding:0 .9rem}.analysis-chart-title{color:var(--ink-1);flex-shrink:0;align-items:center;gap:.5rem;margin:0;font-size:1rem;font-weight:600;display:flex}.analysis-badge{border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--ink-2);white-space:nowrap;margin-left:.5rem;padding:2px 8px;font-size:.7rem;font-weight:600}.analysis-chart-frame{width:100%;height:350px}.analysis-chart-frame .recharts-text,.analysis-chart-frame text{font-variant-numeric:tabular-nums}.analysis-legend{color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;font-size:.75rem;display:flex}.analysis-legend__group{flex-wrap:wrap;gap:8px 16px;display:flex}.analysis-legend__item{align-items:center;gap:6px;display:flex}.analysis-legend__dot{border-radius:50%;width:8px;height:8px;display:inline-block}.analysis-value{border-radius:var(--radius-md);font-variant-numeric:tabular-nums;padding:10px 12px;font-size:.9rem}.analysis-value--empty{border:1px dashed var(--line-strong);color:var(--ink-3);text-align:center;font-size:.8rem}.analysis-value--filled{background:var(--surface-sunken);color:var(--ink-1)}.analysis-value__label{color:var(--ink-2);margin-bottom:6px;font-size:.8rem;font-weight:600}.analysis-value__row{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.analysis-value__row+.analysis-value__row{margin-top:4px}.analysis-value__item{white-space:nowrap;align-items:baseline;gap:4px;display:inline-flex}.analysis-value__dot{border-radius:50%;flex-shrink:0;align-self:center;width:8px;height:8px}.analysis-value__note{color:var(--ink-3);font-size:.75rem}.analysis-error{border-radius:var(--radius-md);color:var(--ink-1);background:#e0555a14;border:1px solid #e0555a66;padding:12px 16px}.analysis-zoom{gap:4px;display:flex}.analysis-card--bar .analysis-hint{margin-left:auto}@media (max-width:700px){.analysis-card--bar{gap:8px 12px}.analysis-card--bar .analysis-zoom{margin-left:auto}.analysis-card--bar .analysis-hint{white-space:normal;flex-basis:100%;order:3;margin-left:0}}*{-webkit-tap-highlight-color:transparent}.recharts-wrapper,.recharts-wrapper svg,.recharts-surface,.recharts-wrapper:focus,.recharts-wrapper svg:focus,.recharts-surface:focus,.recharts-wrapper :focus,section:focus,section :focus{outline:none!important}.recharts-wrapper :focus-visible{outline:none!important}@media (max-width:700px){.app-container{max-width:100%!important;padding:.5rem 0!important}main>section.glass-panel{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;padding-left:0!important;padding-right:0!important}main>section.glass-panel:hover{box-shadow:none!important}main>section.glass-panel>:not(.chart-bleed){padding-left:.75rem!important;padding-right:.75rem!important}.chart-bleed{width:100%!important;margin-left:0!important;margin-right:0!important}}
