/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.grid{display:grid}.table{display:table}.italic{font-style:italic}}:root{--bg:#f2f5f9;--card:#fff;--line:#e4e9f1;--ink:#16233b;--muted:#5f6e86;--faint:#93a2b8;--blue:#2f7cf6;--blue-deep:#1d5fd4;--blue-soft:#eaf1fe;--blue-line:#d8e6fd;--teal:#0e9f8a;--teal-deep:#0b7a6a;--teal-soft:#dff3ef;--yellow:#c98f1b;--yellow-deep:#9a7010;--yellow-soft:#fbf2da;--orange:#e5621f;--orange-deep:#c0501a;--orange-soft:#fdebe2;--orange-line:#f6d9c8;--red:#ce3226;--red-soft:#fbe9e7;--shadow:0 8px 24px #1e3c6e12;--r-lg:20px;--r-md:16px;--r-sm:12px}*{box-sizing:border-box}html{background:#dde5ef}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:linear-gradient(150deg,#e6ecf4 0%,#f0f3f8 55%,#dfe8f2 100%);margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro SC,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #2f7cf659}.app-shell{place-items:center;min-height:100vh;padding:28px 16px;display:grid;position:relative;overflow:hidden}.ambient{filter:blur(3px);pointer-events:none;opacity:.5;border-radius:999px;position:fixed}.ambient-one{background:#ffffffb3;width:420px;height:420px;top:-210px;left:-100px}.ambient-two{background:#99bef447;width:360px;height:360px;bottom:-110px;right:-150px}.phone-frame{background:var(--bg);border:1px solid #ffffffe6;border-radius:34px;width:min(100%,430px);height:min(920px,100vh - 56px);min-height:660px;position:relative;overflow:hidden;box-shadow:0 32px 80px #19345c38,0 2px 8px #19345c14}.topbar{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f2f5f9e6;justify-content:space-between;align-items:center;height:92px;padding:24px 22px 14px;display:flex;position:absolute;inset:0 0 auto}.eyebrow{color:var(--faint);letter-spacing:.08em;margin:0 0 4px;font-size:11px;font-weight:650;line-height:1.3}.topbar h1{letter-spacing:-.03em;margin:0;font-size:25px;font-weight:800;line-height:1.1}.icon{justify-content:center;align-items:center;line-height:1;display:inline-flex}.page{overscroll-behavior:contain;scrollbar-width:none;padding:0 16px 30px;animation:.25s both page-in;position:absolute;inset:92px 0 72px;overflow-y:auto}.page::-webkit-scrollbar{display:none}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}}.location-line{color:var(--muted);justify-content:space-between;align-items:center;margin:4px 2px 12px;font-size:12.5px;font-weight:550;display:flex}.location-line>span{align-items:center;gap:5px;display:flex}.location-line svg{color:var(--blue)}.updated{color:var(--faint);font-variant-numeric:tabular-nums;font-size:11px}.updated i{background:var(--teal);width:6px;height:6px;box-shadow:0 0 0 3px var(--teal-soft);border-radius:50%}.weather-status{border-radius:var(--r-sm);background:var(--yellow-soft);color:#8a6420;align-items:center;gap:10px;margin:0 0 10px;padding:11px 13px;font-size:12px;line-height:1.5;display:flex}.weather-status span{flex:1}.weather-status button{color:#8a6420;cursor:pointer;background:#fff;border:1px solid #e4c87e;border-radius:9px;flex:none;min-height:34px;padding:0 12px;font-size:12px;font-weight:700}.notify-banner{border:1px solid var(--blue-line);background:var(--blue-soft);width:100%;color:var(--blue-deep);border-radius:var(--r-sm);cursor:pointer;text-align:left;align-items:center;gap:9px;margin:0 0 10px;padding:12px 14px;font-size:12.5px;font-weight:600;display:flex}.notify-banner svg{flex:none}.notify-banner span{flex:1}.notify-banner i{white-space:nowrap;font-size:12px;font-style:normal;font-weight:750}.weather-hero{color:#fff;background:linear-gradient(155deg,#3e8bf5 0%,#5fa8f8 52%,#8cc3f5 100%);border-radius:22px;min-height:196px;padding:20px 20px 16px;position:relative;overflow:hidden;box-shadow:0 14px 30px #2f7cf647}.weather-hero:before{content:"";background:#ffffff21;border-radius:50%;width:220px;height:220px;position:absolute;top:-95px;right:-80px}.weather-hero:after{content:"";background:#ffffff17;border-radius:50%;width:120px;height:120px;position:absolute;top:6px;right:60px}.weather-hero>*{z-index:1;position:relative}.weather-art{display:none}.temperature{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:60px;font-weight:700;line-height:.95}.temperature span{vertical-align:top;font-size:26px;font-weight:600}.weather-hero>div>p{color:#ffffffeb;margin:9px 0 0;font-size:13px;font-weight:500}.hero-metrics{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff29;border-radius:14px;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;padding:12px 13px;display:grid}.hero-metrics span{color:#ffffffd9;font-size:11px}.hero-metrics b{color:#fff;margin-bottom:2px;font-size:13.5px;font-weight:750;display:block}.hero-hourly{justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.hero-hourly div{align-items:baseline;gap:8px;min-width:0;display:flex}.hero-hourly b{color:#fff;white-space:nowrap;font-size:12px}.hero-hourly div span{color:#ffffffd9;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.hero-hourly button{color:#fff;cursor:pointer;background:#ffffff3d;border:0;border-radius:999px;flex:none;min-height:34px;padding:0 14px;font-size:12px;font-weight:700}.hero-hourly button span{font-size:14px}.skeleton-hero{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.sk{background:linear-gradient(90deg,#edf1f7 25%,#f6f8fc 50%,#edf1f7 75%) 0 0/200% 100%;border-radius:10px;animation:1.3s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.sk-temp{width:120px;height:56px}.sk-line{width:62%;height:14px;margin-top:14px}.sk-metrics{border-radius:14px;height:58px;margin-top:22px}.local-alert-card{border:1px solid var(--orange-line);border-radius:var(--r-md);text-align:left;cursor:pointer;background:var(--card);width:100%;box-shadow:var(--shadow);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;margin-top:12px;padding:14px 15px;display:grid}.local-alert-card.extreme{border-color:#f0dfc0}.local-alert-icon{color:#fff;background:linear-gradient(135deg,#e5621f,#f08442);border-radius:13px;place-items:center;width:44px;height:44px;font-size:19px;font-weight:800;display:grid}.local-alert-card.extreme .local-alert-icon{background:linear-gradient(135deg,#d99a26,#ebbe55)}.local-alert-copy{min-width:0;display:block}.local-alert-copy small,.local-alert-copy strong,.local-alert-copy em{display:block}.local-alert-copy small{color:var(--orange-deep);letter-spacing:.02em;font-size:11px;font-weight:700}.local-alert-card.extreme .local-alert-copy small{color:var(--yellow-deep)}.local-alert-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:14px;overflow:hidden}.local-alert-copy em{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;font-style:normal;overflow:hidden}.local-alert-action{color:var(--blue);white-space:nowrap;font-size:12px;font-weight:750}.local-alert-action i{font-size:15px;font-style:normal}.section-heading,.section-title-row{justify-content:space-between;align-items:flex-end;margin:24px 2px 12px;display:flex}.section-heading h2,.section-title-row h2{letter-spacing:-.02em;margin:0;font-size:19px;font-weight:800}.count-badge{color:#fff;background:var(--orange);border-radius:999px;place-items:center;min-width:26px;height:26px;padding:0 7px;font-size:12px;font-weight:800;display:grid;box-shadow:0 6px 14px #e5621f4d}.text-button{color:var(--blue);cursor:pointer;background:0 0;border:0;padding:8px 0;font-size:12.5px;font-weight:700}.text-button span{font-size:15px}.action-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px;overflow:hidden}.card-kicker{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:14px 18px;font-size:13px;font-weight:650;display:flex}.action-card.urgent .card-kicker{background:#fdf0e9;border-bottom-color:#f6e3d6}.action-card.cooling .card-kicker{background:#f0f6ff;border-bottom-color:#e0eafb}.person-avatar{color:#fff;background:linear-gradient(135deg,#e5621f,#f08442);border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:inline-grid}.action-card.cooling .person-avatar{background:linear-gradient(135deg,#3e8bf5,#6fb3f8)}.person-avatar.small{width:32px;height:32px;color:var(--muted);background:#eef2f7;font-size:13px}.status-pill{white-space:nowrap;border-radius:999px;margin-left:auto;padding:5px 10px;font-size:11px;font-weight:800}.status-紧急{color:#fff;background:var(--red)}.status-重要{color:#fff;background:var(--orange)}.status-关注{color:var(--yellow-deep);background:var(--yellow-soft)}.status-正常{color:var(--teal-deep);background:var(--teal-soft)}.action-card h3{letter-spacing:-.015em;margin:16px 18px 8px;font-size:20px;font-weight:800;line-height:1.4}.impact-copy{color:var(--muted);margin:0 18px;font-size:13px;line-height:1.7}.official-inline{color:var(--muted);align-items:center;gap:8px;margin:11px 18px 0;font-size:11.5px;display:flex}.official-inline span{color:var(--orange-deep);background:var(--orange-soft);border-radius:7px;flex:none;padding:4px 8px;font-size:11px;font-weight:750}.priority-reason{color:var(--faint);align-items:center;gap:8px;margin:9px 18px 0;font-size:11.5px;line-height:1.5;display:flex}.priority-reason span{background:var(--blue-soft);color:var(--blue-deep);border-radius:7px;flex:none;padding:4px 8px;font-size:11px;font-weight:750}.advice-box{background:#f6f9fe;border:1px solid #e3ecfb;border-radius:14px;align-items:flex-start;gap:10px;margin:13px 18px 0;padding:13px 14px;display:flex}.advice-box svg,.advice-box .icon{color:var(--blue);flex:none;margin-top:2px}.advice-box p{color:#2c4a7a;margin:0;font-size:13px;line-height:1.6}.advice-box b{color:var(--blue-deep);margin-bottom:2px;display:block}.card-actions{gap:10px;margin:15px 18px 0;display:flex}.primary-button,.ghost-button{cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:0 16px;font-size:13.5px;font-weight:750;transition:transform .15s,background .15s;display:inline-flex}.primary-button:hover,.ghost-button:hover,.add-button:hover{transform:translateY(-1px)}.action-card .primary-button{background:var(--blue);color:#fff;flex:1;box-shadow:0 8px 18px #2f7cf64d}.action-card .ghost-button{background:var(--blue-soft);color:var(--blue-deep);flex:1}.card-feedback{justify-content:center;gap:26px;margin:12px 18px 16px;display:flex}.card-feedback button{color:var(--faint);cursor:pointer;background:0 0;border:0;padding:6px 4px;font-size:12px}.all-clear-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:13px;padding:17px;display:flex}.all-clear-card>span{background:var(--teal);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-size:16px;font-weight:800;display:grid}.all-clear-card h3{margin:0 0 4px;font-size:15px}.all-clear-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.family-section{margin-top:24px}.family-strip{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mini-person-card{text-align:left;border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);cursor:pointer;min-height:150px;padding:13px 12px;position:relative;box-shadow:0 4px 12px #1e3c6e0a}.mini-person-card:hover{border-color:#cfdaea;transform:translateY(-1px)}.mini-weather{color:var(--faint);display:inline-flex;position:absolute;top:11px;right:11px}.mini-person-top{align-items:center;gap:7px;display:flex}.status-tag{border-radius:7px;padding:3px 7px;font-size:10.5px;font-style:normal;font-weight:800}.st-紧急{background:var(--red-soft);color:var(--red)}.st-重要{background:var(--orange-soft);color:var(--orange-deep)}.st-关注{background:var(--yellow-soft);color:var(--yellow-deep)}.st-正常{background:var(--teal-soft);color:var(--teal-deep)}.mini-person-card h3{margin:11px 0 2px;font-size:15px;font-weight:750}.mini-person-card p{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.mini-person-card small{color:var(--muted);margin-top:10px;font-size:11px;line-height:1.45;display:block}.commute-section,.trip-section{margin-top:24px}.trip-impact-card{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:18px;gap:13px;padding:16px;display:flex}.trip-date{background:var(--blue-soft);text-align:center;border-radius:13px;flex:none;align-self:flex-start;width:54px;overflow:hidden}.trip-date b{color:var(--blue-deep);padding:9px 2px 5px;font-size:13px;display:block}.trip-date span{background:var(--blue);color:#fff;padding:5px 2px;font-size:10.5px;font-weight:650;display:block}.commute-watch .trip-date{background:var(--yellow-soft)}.commute-watch .trip-date b{color:var(--yellow-deep)}.commute-watch .trip-date span{background:var(--yellow)}.commute-change .trip-date{background:var(--orange-soft)}.commute-change .trip-date b{color:var(--orange-deep)}.commute-change .trip-date span{background:var(--orange)}.trip-card-main{flex:1;min-width:0}.trip-card-title{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.trip-card-title p{color:var(--faint);margin:0 0 3px;font-size:11.5px;font-weight:500}.trip-card-title h3{letter-spacing:-.01em;margin:0;font-size:15px;font-weight:750}.trip-card-title>span,.risk-label{color:var(--muted);background:#eef2f7;border-radius:7px;flex:none;padding:4px 8px;font-size:11px;font-weight:750}.commute-status-calm{background:var(--teal-soft);color:var(--teal-deep)}.commute-status-watch{background:var(--yellow-soft);color:var(--yellow-deep)}.commute-status-change{background:var(--orange-soft);color:var(--orange-deep)}.trip-impact{color:var(--muted);margin:9px 0 0;font-size:12px;line-height:1.6}.trip-advice{border-radius:var(--r-sm);color:#2c4a7a;background:#f6f9fe;align-items:flex-start;gap:9px;margin-top:11px;padding:11px 12px;display:flex}.trip-advice svg,.trip-advice .icon{color:var(--blue);flex:none;margin-top:1px}.trip-advice p{margin:0;font-size:12px;line-height:1.6}.trip-advice b{color:var(--blue-deep);margin-bottom:2px;display:block}.trip-advice small{color:var(--faint);margin-top:4px;font-size:11px;line-height:1.45;display:block}.trip-card-actions{gap:8px;margin-top:12px;display:flex}.trip-card-actions button{background:var(--blue-soft);min-height:44px;color:var(--blue-deep);cursor:pointer;border:0;border-radius:11px;flex:1;font-size:12.5px;font-weight:750}.trip-card-actions button:last-child{background:var(--blue);color:#fff}.empty-trip-card{border-radius:var(--r-md);text-align:left;cursor:pointer;background:#f7faff;border:1.5px dashed #b9cbe6;align-items:center;gap:13px;width:100%;min-height:88px;padding:16px;display:flex}.empty-trip-card>span{border-radius:var(--r-sm);background:var(--blue-soft);width:40px;height:40px;color:var(--blue);place-items:center;font-size:20px;display:grid}.empty-trip-card b{font-size:13px;display:block}.empty-trip-card small{color:var(--muted);margin-top:3px;font-size:11.5px;display:block}.feedback-link{width:100%;color:var(--faint);text-align:center;cursor:pointer;background:0 0;border:0;margin:18px 0 0;padding:8px;font-size:12px}.feedback-link span{margin-left:5px}.family-page{padding-top:4px}.family-intro{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;align-items:center;gap:13px;padding:16px;display:flex}.family-intro p{color:var(--muted);flex:1;margin:0;font-size:12.5px;line-height:1.6}.add-button{background:var(--blue);color:#fff;border-radius:var(--r-sm);cursor:pointer;border:0;flex:none;min-height:44px;padding:0 14px;font-size:12.5px;font-weight:750;box-shadow:0 8px 18px #2f7cf647}.add-button span{vertical-align:-1px;margin-right:3px;font-size:16px}.add-button:disabled{box-shadow:none;cursor:not-allowed;background:#b9c6d8}.full-family-list{gap:12px;margin-top:18px;display:grid}.family-list-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;overflow:hidden}.family-main{text-align:left;cursor:pointer;background:0 0;border:0;align-items:flex-start;gap:12px;width:100%;padding:15px;display:flex}.large-avatar{color:#fff;border-radius:15px;flex:none;place-items:center;width:46px;height:46px;font-size:16px;font-weight:800;display:grid}.avatar-紧急{background:linear-gradient(135deg,#ce3226,#e56050)}.avatar-重要{background:linear-gradient(135deg,#e5621f,#f08442)}.avatar-关注{background:linear-gradient(135deg,#d99a26,#ebbe55)}.avatar-正常{background:linear-gradient(135deg,#0e9f8a,#3bbfa8)}.family-copy{flex:1;min-width:0}.family-copy>div{align-items:baseline;gap:7px;display:flex}.family-copy h2{margin:0;font-size:15.5px;font-weight:750}.family-copy>div span{color:var(--faint);font-size:11px}.city-weather{color:var(--muted);margin:5px 0 0;font-size:12px}.city-weather b{color:var(--ink);font-size:14px}.friend-summary{color:var(--muted);margin:9px 0 0;font-size:12px;line-height:1.5}.family-actions{border-top:1px solid var(--line);padding:6px 8px;display:flex}.family-actions button{min-height:40px;color:var(--muted);cursor:pointer;border:0;border-left:1px solid var(--line);background:0 0;flex:1;padding:10px 6px;font-size:12px}.family-actions button:first-child{border-left:0}.family-actions .care-action{color:var(--blue-deep);font-weight:750}.privacy-note{align-items:flex-start;gap:10px;margin:18px 4px 0;display:flex}.privacy-note svg,.privacy-note .icon{color:var(--blue);margin-top:1px}.privacy-note p{color:var(--muted);margin:0;font-size:12px}.privacy-note b{color:var(--ink);font-size:12px;display:block}.privacy-note span{color:var(--faint);margin-top:3px;font-size:11px;line-height:1.5;display:block}.settings-page{padding-top:4px}.settings-panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);box-shadow:var(--shadow);padding:18px}.settings-panel h2{letter-spacing:-.02em;margin:0;font-size:20px;font-weight:800}.settings-intro{color:var(--muted);margin:7px 0 16px;font-size:12px;line-height:1.55}.settings-panel .field{margin-bottom:10px}.settings-row{border:0;border-bottom:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:12px;width:100%;min-height:62px;padding:10px 2px;display:flex}.row-icon{background:var(--blue-soft);width:36px;height:36px;color:var(--blue-deep);border-radius:11px;flex:none;place-items:center;display:grid}.settings-row p{flex:1;margin:0}.settings-row b{font-size:13.5px;font-weight:650;display:block}.settings-row small{color:var(--faint);margin-top:3px;font-size:11.5px;display:block}.settings-row i{color:#c3cedd;font-size:19px;font-style:normal}.switch-row{cursor:default}.switch-row input{appearance:none;cursor:pointer;background:#d5dde8;border-radius:16px;width:46px;height:28px;padding:2px;transition:all .2s}.switch-row input:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:all .2s;display:block;box-shadow:0 2px 5px #0000002e}.switch-row input:checked{background:var(--blue)}.switch-row input:checked:after{transform:translate(18px)}.reset-button{background:var(--red-soft);width:100%;color:var(--red);border-radius:var(--r-sm);cursor:pointer;border:0;min-height:44px;margin-top:14px;font-size:12.5px;font-weight:700}.data-note{color:var(--faint);text-align:center;margin:14px 10px 0;font-size:11px;line-height:1.6}.field{margin-bottom:14px;display:block}.field>span,.message-editor>span{color:var(--muted);margin:0 0 7px 2px;font-size:12px;font-weight:650;display:block}.field>span small,.profile-notes small{color:var(--faint);font-weight:400}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:13px;padding:0 13px;font-size:13.5px}.field input,.field select{height:48px}.field textarea{resize:vertical;padding:12px 13px;line-height:1.65}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue)}.form-grid{gap:10px;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}.primary-button.full{background:var(--blue);color:#fff;width:100%;min-height:50px;margin-top:6px;box-shadow:0 10px 22px #2f7cf64d}.primary-button.full:disabled{box-shadow:none;background:#b9c6d8}.danger-button{width:100%;color:var(--red);cursor:pointer;background:0 0;border:0;padding:15px 0 4px;font-size:12.5px;font-weight:650}.bottom-nav{z-index:11;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff0;grid-template-columns:repeat(3,1fr);height:72px;padding:8px 36px 12px;display:grid;position:absolute;inset:auto 0 0}.bottom-nav button{color:#93a2b8;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex;position:relative}.bottom-nav button.active{color:var(--blue);font-weight:800}.bottom-nav svg{width:23px;height:23px}.sheet-backdrop{z-index:100;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#101c2e66;justify-content:center;align-items:flex-end;padding:18px;animation:.2s both fade-in;display:flex;position:fixed;inset:0}.bottom-sheet{background:var(--bg);border-radius:26px 26px 20px 20px;width:min(100%,430px);max-height:min(800px,100vh - 38px);animation:.28s cubic-bezier(.2,.75,.3,1) both sheet-up;position:relative;overflow:hidden;box-shadow:0 25px 80px #0d1c3452}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{opacity:0;transform:translateY(35px)}}.sheet-handle{z-index:3;background:#cbd5e2;border-radius:5px;width:38px;height:4px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.sheet-close{z-index:5;width:34px;height:34px;color:var(--muted);cursor:pointer;background:#e8edf4;border:0;border-radius:50%;font-size:19px;position:absolute;top:16px;right:14px}.sheet-body{scrollbar-width:none;max-height:min(800px,100vh - 38px);padding:40px 20px 26px;overflow-y:auto}.sheet-body::-webkit-scrollbar{display:none}.sheet-body>h2{letter-spacing:-.03em;margin:0 0 18px;font-size:23px;font-weight:800}.sheet-title-action{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:8px;display:flex}.sheet-title-action h2{letter-spacing:-.03em;margin:0;font-size:23px}.sheet-title-action button{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:11px;min-height:40px;margin-top:6px;padding:0 13px;font-size:12px;font-weight:750;box-shadow:0 8px 18px #2f7cf647}.sheet-intro-copy{color:var(--muted);margin:0 0 15px;font-size:12px;line-height:1.65}.local-alert-lead{border-radius:var(--r-md);color:#fff;align-items:center;gap:12px;margin-bottom:13px;padding:15px;display:flex}.local-alert-lead.official{background:linear-gradient(135deg,#d9551f,#ee8040);box-shadow:0 12px 26px #d5551f4d}.local-alert-lead.extreme{background:linear-gradient(135deg,#c98f1b,#e5b44e);box-shadow:0 12px 26px #c98f1b47}.local-alert-lead>span{color:#fff;background:#ffffff2e;border:1px solid #ffffff40;border-radius:14px;flex:none;place-items:center;width:44px;height:44px;font-size:20px;font-weight:800;display:grid}.local-alert-lead small,.local-alert-lead strong,.local-alert-lead em{display:block}.local-alert-lead small{color:#ffffffd9;font-size:11px;font-weight:700}.local-alert-lead strong{margin-top:3px;font-size:14.5px;line-height:1.4}.local-alert-lead em{color:#ffffffd9;margin-top:3px;font-size:11.5px;font-style:normal}.local-official-alert{margin-top:0}.local-extreme-detail{margin-bottom:13px}.official-alert{border:1px solid var(--orange-line);border-radius:var(--r-md);background:#fffaf6;margin:12px 0;padding:16px}.official-title{color:var(--orange-deep);letter-spacing:.06em;justify-content:space-between;align-items:center;font-size:11px;font-weight:800;display:flex}.official-title small{color:#fff;background:var(--orange);letter-spacing:0;border-radius:7px;padding:4px 8px}.official-name{border-bottom:1px solid #f3e2d3;align-items:center;gap:11px;margin:12px 0 13px;padding-bottom:13px;display:flex}.official-name>div:first-child span{color:#fff;background:linear-gradient(135deg,#e5621f,#f08442);border-radius:13px;place-items:center;width:44px;height:44px;font-size:13px;font-weight:800;display:grid}.official-name p{color:#b07a5c;margin:0 0 3px;font-size:11px;font-weight:700}.official-alert h3{color:#7c2d12;margin:0;font-size:17px}.official-alert dl{margin:0}.official-alert dl>div{grid-template-columns:68px 1fr;gap:8px;margin:9px 0;font-size:12px;display:grid}.official-alert dt{color:#b07a5c}.official-alert dd{color:#5f493f;margin:0}.official-alert dd strong{color:var(--orange-deep)}.official-alert>p{color:#7b5b4e;white-space:pre-line;border-top:1px solid #f3e2d3;margin:13px 0 0;padding-top:11px;font-size:12px;line-height:1.65}.official-alert>p b{color:#7c2d12;margin-bottom:3px;display:block}.official-alert footer{color:#9a6d5a;background:#fbeee5;border-radius:0 0 16px 16px;margin:13px -16px -16px;padding:10px 16px;font-size:11px}.no-alert{background:var(--teal-soft);color:var(--teal-deep);border-radius:14px;align-items:center;gap:11px;margin:12px 0;padding:13px;display:flex}.no-alert .icon{font-size:15px;font-weight:800}.no-alert p{margin:0;font-size:12px}.no-alert b{font-size:12.5px;display:block}.no-alert span{color:#4e7a70;margin-top:3px;font-size:11px;display:block}.ai-explanation{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);padding:16px}.ai-explanation h3{letter-spacing:-.01em;margin:6px 0 7px;font-size:16px}.ai-explanation>p:not(.eyebrow){color:var(--muted);margin:0 0 12px;font-size:12.5px;line-height:1.7}.ai-action{border-radius:var(--r-sm);color:#2c4a7a;background:#f6f9fe;border:1px solid #e3ecfb;align-items:flex-start;gap:10px;padding:12px;display:flex}.ai-action svg,.ai-action .icon{color:var(--blue);flex:none;margin-top:1px}.ai-action span{font-size:12.5px;line-height:1.6}.ai-action b{color:var(--blue-deep);margin-bottom:2px;display:block}.source-time{color:var(--faint);text-align:center;margin:12px 0;font-size:11px}.hourly-summary{background:var(--blue-soft);border-radius:14px;align-items:flex-start;gap:12px;margin-bottom:12px;padding:14px;display:flex}.hourly-summary>span{border-radius:var(--r-sm);color:#fff;background:var(--blue);flex:none;place-items:center;width:40px;height:40px;font-size:19px;display:grid}.hourly-summary b{margin-bottom:4px;font-size:13px;display:block}.hourly-summary p{color:#41567a;margin:0;font-size:11.5px;line-height:1.6}.hourly-table{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.hourly-row{border-top:1px solid #edf1f6;grid-template-columns:44px 52px 32px minmax(70px,1fr) 62px;align-items:center;gap:7px;min-height:58px;padding:0 12px;font-size:12px;display:grid}.hourly-row:first-child{border-top:0}.hourly-row.risk-hour{background:#f0f6ff}.hourly-row time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.hour-weather{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.hour-weather em{color:#465b78;white-space:nowrap;font-size:10.5px;font-style:normal;font-weight:700;line-height:1}.hour-weather i{font-family:Apple Color Emoji,Segoe UI Emoji,sans-serif;font-size:17px;font-style:normal;line-height:1.3}.hourly-row>b{font-size:13px}.hourly-row>small{color:var(--faint);text-align:right;font-size:10.5px}.rain-chance{color:#2f6bb0;background:#edf2f8;border-radius:8px;justify-content:center;align-items:center;height:22px;font-size:10.5px;font-weight:700;display:flex;position:relative;overflow:hidden}.rain-chance i{z-index:0;background:#cfe3f8;border-radius:8px;position:absolute;inset:0 auto 0 0}.rain-chance em{z-index:1;font-style:normal;position:relative}.hourly-source-note{color:var(--faint);margin:10px 4px 0;font-size:11px;line-height:1.6}.hourly-source-note a{color:var(--blue)}.weather-empty{color:var(--muted);text-align:center;background:#eff3f8;border-radius:14px;margin-top:16px;padding:30px 16px;font-size:12.5px}.risk-summary{background:var(--blue-soft);border-radius:14px;align-items:center;gap:12px;margin-bottom:14px;padding:14px;display:flex}.risk-summary>span{color:#fff;background:var(--blue);border-radius:13px;flex:none;place-items:center;width:42px;height:42px;font-size:19px;font-weight:800;display:grid}.risk-summary p{margin:0}.risk-summary b{font-size:13px;display:block}.risk-summary small{color:#41567a;margin-top:3px;font-size:11.5px;line-height:1.5;display:block}.risk-grid{grid-template-columns:1fr 1fr;gap:9px;display:grid}.risk-grid article{border:1px solid var(--line);background:#fff;border-radius:14px;align-items:flex-start;gap:10px;min-height:96px;padding:13px 11px;display:flex}.risk-grid article.official-risk{grid-column:1/-1;min-height:76px}.risk-grid article>i{background:var(--blue-soft);width:34px;height:34px;color:var(--blue-deep);border-radius:10px;flex:none;place-items:center;font-size:13px;font-style:normal;font-weight:800;display:grid}.risk-grid article:nth-child(n+5):nth-child(-n+8)>i{color:var(--yellow-deep);background:var(--yellow-soft)}.risk-grid article.official-risk>i{color:#fff;background:var(--orange)}.risk-grid article div{min-width:0}.risk-grid b,.risk-grid span,.risk-grid small{display:block}.risk-grid small{color:var(--faint);letter-spacing:.03em;font-size:10.5px}.risk-grid b{margin-top:2px;font-size:13px}.risk-grid span{color:var(--muted);margin-top:4px;font-size:11px;line-height:1.5}.risk-principle{background:var(--teal-soft);color:#0b5f53;border-radius:13px;align-items:flex-start;gap:10px;margin-top:12px;padding:13px;display:flex}.risk-principle>span{color:#fff;background:var(--teal);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;display:grid}.risk-principle p{margin:0}.risk-principle b{font-size:12px;display:block}.risk-principle small{color:#3e6b62;margin-top:3px;font-size:11px;line-height:1.55;display:block}.trip-list{gap:12px;display:grid}.scheduled-trip{border:1px solid var(--line);border-radius:var(--r-md);background:#fff;padding:15px}.scheduled-head{align-items:flex-start;gap:11px;display:flex}.scheduled-head>div:nth-child(2){flex:1;min-width:0}.scheduled-head p{color:var(--faint);margin:0;font-size:11.5px}.scheduled-head h3{margin:2px 0 3px;font-size:15px}.scheduled-head small{color:var(--muted);font-size:11.5px}.calendar-tile{border-radius:var(--r-sm);background:var(--blue-soft);text-align:center;flex:none;width:48px;overflow:hidden}.calendar-tile b{color:var(--blue-deep);padding:8px 2px 4px;font-size:13px;display:block}.calendar-tile span{background:var(--blue);color:#fff;padding:4px;font-size:10px;display:block}.scheduled-impact{border-top:1px solid #edf1f6;margin:12px 0 0;padding-top:11px}.scheduled-impact b{font-size:12px}.scheduled-impact p{color:var(--muted);margin:4px 0 0;font-size:12px;line-height:1.6}.scheduled-action{border-radius:var(--r-sm);color:#2c4a7a;background:#f6f9fe;align-items:flex-start;gap:9px;margin-top:10px;padding:11px 12px;display:flex}.scheduled-action svg,.scheduled-action .icon{color:var(--blue);flex:none;margin-top:1px}.scheduled-action p{margin:0;font-size:12px;line-height:1.6}.scheduled-action b{color:var(--blue-deep);display:block}.scheduled-action small{color:var(--faint);margin-top:4px;font-size:11px;display:block}.scheduled-buttons{gap:8px;margin-top:12px;display:flex}.scheduled-buttons button{background:var(--blue-soft);min-height:42px;color:var(--blue-deep);cursor:pointer;border:0;border-radius:11px;flex:1;font-size:12.5px;font-weight:750}.scheduled-buttons button:last-child{background:var(--blue);color:#fff}.empty-trip-card.large{margin:0}.natural-trip-entry{border:1px solid var(--blue-line);border-radius:var(--r-md);background:#f7faff;margin:0 0 16px;padding:14px}.natural-trip-entry .field{margin:0}.natural-trip-entry textarea{background:#fff;min-height:60px}.natural-parse-button{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:44px;margin-top:10px;font-size:13px;font-weight:750;display:inline-flex}.natural-trip-entry>p{color:var(--muted);margin:9px 2px 0;font-size:11px;line-height:1.55}.trip-time-choice{border:0;margin:2px 0 15px;padding:0}.trip-time-choice legend,.profile-options legend{color:var(--muted);margin:0 0 8px 2px;font-size:12px;font-weight:650}.trip-time-choice legend small,.profile-options legend small{color:var(--faint);font-weight:400}.trip-time-choice>div,.profile-options>div{flex-wrap:wrap;gap:8px;display:flex}.trip-time-choice label,.profile-options label{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:11px;padding:9px 12px;font-size:12px;position:relative}.trip-time-choice label.selected,.profile-options label.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue-deep);font-weight:700}.trip-time-choice input,.profile-options input{opacity:0;pointer-events:none;position:absolute}.trip-more-fields{border-top:1px solid var(--line);margin:2px 0 16px}.trip-more-fields summary{color:var(--muted);cursor:pointer;padding:13px 2px 10px;font-size:12.5px;font-weight:700}.trip-more-fields summary small{color:var(--faint);margin-left:4px;font-weight:400}.trip-more-fields .field{margin-bottom:10px}.profile-options{border:0;margin:0 0 16px;padding:0}.auto-weather-note{color:#2c4a7a;background:#f6f9fe;border:1px solid #e3ecfb;border-radius:13px;align-items:flex-start;gap:10px;margin:4px 0 16px;padding:12px;display:flex}.auto-weather-note svg,.auto-weather-note .icon{color:var(--blue);flex:none;margin-top:1px}.auto-weather-note p{margin:0}.auto-weather-note b{color:var(--blue-deep);font-size:12px;display:block}.auto-weather-note span{color:#41567a;margin-top:3px;font-size:11px;line-height:1.6;display:block}.commute-plan-detail{grid-template-columns:1fr 1fr;gap:9px;margin:13px 0;display:grid}.commute-plan-detail>div{border:1px solid var(--line);border-radius:var(--r-sm);background:#f8fafd;padding:12px}.commute-plan-detail span{color:var(--faint);font-size:11px;display:block}.commute-plan-detail b{color:#33507a;margin-top:4px;font-size:12px;display:block}.sheet-action-row{gap:9px;margin-top:2px;display:flex}.sheet-action-row .primary-button{background:var(--blue);color:#fff;flex:1}.sheet-action-row .ghost-button{background:var(--blue-soft);color:var(--blue-deep);flex:1}.detail-person{align-items:center;gap:12px;margin-bottom:16px;padding-right:34px;display:flex}.detail-person>div{flex:1}.detail-person h2{letter-spacing:-.02em;margin:0;font-size:20px}.family-weather-hero{min-height:0;margin-bottom:12px}.message-context{background:var(--blue-soft);border-radius:14px;align-items:center;gap:11px;margin-bottom:15px;padding:12px;display:flex}.message-context .person-avatar{background:linear-gradient(135deg,#3e8bf5,#6fb3f8)}.message-context p{margin:0}.message-context b{font-size:13px;display:block}.message-context small{color:#41567a;margin-top:2px;font-size:11.5px;display:block}.ai-generating{border:1px solid var(--blue-line);background:#f7faff;border-radius:14px;align-items:center;gap:11px;margin-bottom:14px;padding:13px;display:flex}.ai-generating>i{border:2px solid #c9dcf8;border-top-color:var(--blue);border-radius:50%;flex:none;width:20px;height:20px;animation:.8s linear infinite ai-spin}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-generating p{margin:0}.ai-generating b{font-size:12.5px;display:block}.ai-generating span{color:var(--muted);margin-top:3px;font-size:11.5px;display:block}.ai-result-card{border:1px solid var(--blue-line);border-radius:var(--r-md);background:#f9fbff;margin-bottom:14px;padding:15px}.ai-result-title{justify-content:space-between;align-items:center;display:flex}.ai-result-title span{color:var(--blue-deep);letter-spacing:.05em;font-size:11px;font-weight:800}.ai-result-title small{color:var(--faint);font-size:11px}.ai-result-card h3{margin:8px 0 6px;font-size:16px}.ai-result-card>p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.65}.ai-factor-list{flex-wrap:wrap;gap:6px;margin:11px 0;display:flex}.ai-factor-list span{background:var(--blue-soft);color:var(--blue-deep);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:650}.ai-result-action{color:#2c4a7a;border-top:1px solid #e0eafb;align-items:flex-start;gap:9px;padding-top:11px;display:flex}.ai-result-action svg,.ai-result-action .icon{color:var(--blue);flex:none;margin-top:1px}.ai-result-action p{margin:0;font-size:12px;line-height:1.6}.ai-result-action b{color:var(--blue-deep);margin-bottom:2px;display:block}.ai-fallback-note{border-radius:var(--r-sm);background:var(--yellow-soft);color:#8a6420;align-items:flex-start;gap:9px;margin-bottom:13px;padding:12px;font-size:11.5px;line-height:1.55;display:flex}.ai-fallback-note b{color:#7c5410;display:block}.message-editor{display:block}.message-editor textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:150px;color:var(--ink);background:#fff;border-radius:14px;padding:14px;font-size:13.5px;line-height:1.8}.message-editor textarea:disabled{color:var(--faint);background:#f4f7fa}.message-actions{gap:10px;margin-top:12px;display:flex}.message-actions .primary-button{background:var(--blue);color:#fff;flex:1}.message-actions .primary-button:disabled{background:#b9c6d8}.message-actions .ghost-button{background:var(--blue-soft);color:var(--blue-deep)}.handled-button{width:100%;color:var(--blue-deep);cursor:pointer;background:0 0;border:0;padding:15px 0 4px;font-size:12.5px;font-weight:700}.toast{z-index:200;color:#fff;white-space:nowrap;background:#16233b;border-radius:13px;align-items:center;gap:8px;padding:12px 16px;font-size:12.5px;font-weight:600;animation:.24s both toast-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0a19324d}.toast span{background:#ffffff29;border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;display:grid}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (width<=520px){.app-shell{padding:0;display:block}.ambient{display:none}.phone-frame{width:100%;height:100dvh;min-height:600px;box-shadow:none;border:0;border-radius:0}.sheet-backdrop{padding:0}.bottom-sheet{border-radius:26px 26px 0 0;width:100%;max-height:92dvh}.sheet-body{max-height:92dvh}.toast{bottom:88px}}@media (width<=355px){.family-strip{grid-template-columns:repeat(2,1fr)}.family-strip>:last-child{display:none}.form-grid.two{grid-template-columns:1fr;gap:0}.action-card h3{font-size:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.sk{animation:none}}
