:root {
  --ink: #17241f;
  --muted: #68736e;
  --paper: #f5f6f1;
  --panel: #fffefb;
  --line: #e4e6df;
  --blue: #4a7e89;
  --blue-soft: #e8f1f1;
  --orange: #d36f49;
  --orange-soft: #faeae1;
  --green: #49745d;
  --green-soft: #e7f0e9;
  --yellow: #9c7a35;
  --yellow-soft: #f8f0da;
  --shadow: 0 18px 50px rgba(44, 59, 50, .07);
  --radius: 22px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scrollbar-gutter: stable; overflow-y: scroll; }
body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  background: var(--paper);
  font-family: "Noto Sans SC", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font: inherit; }
button { color: inherit; }
svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
[hidden] { display: none !important; }
.weather-wash { position: fixed; inset: 0 0 auto; height: 500px; background: radial-gradient(circle at 75% 0%, rgba(174,206,207,.3), transparent 42%), linear-gradient(180deg,#f9faf5,transparent); pointer-events:none; z-index:-1; }

.topbar { height: 76px; padding: 0 4.5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid rgba(207,211,203,.75); background:rgba(248,249,244,.82); backdrop-filter:blur(18px); position:sticky; top:0; z-index:30; }
.brand { display:flex; align-items:center; gap:10px; color:var(--ink); text-decoration:none; font-size:20px; font-weight:700; letter-spacing:.08em; }
.brand-mark { width:36px; height:36px; display:grid; place-items:center; background:var(--ink); color:#fff; border-radius:11px; transform:rotate(-2deg); }
.brand-mark svg { width:28px; transform:rotate(2deg); stroke-width:1.5; }
.desktop-nav { display:flex; align-self:stretch; margin-left:95px; }
.nav-link { border:0; background:none; padding:0 26px; color:#7a837f; font-weight:500; cursor:pointer; position:relative; }
.nav-link.active { color:var(--ink); }
.nav-link.active::after { content:""; position:absolute; left:25px; right:25px; bottom:-1px; height:2px; background:var(--ink); }
.top-actions { display:flex; align-items:center; gap:12px; }
.demo-badge { font:500 11px/1 "DM Mono",monospace; color:#7a817d; background:#eff0eb; padding:8px 10px; border-radius:99px; text-transform:uppercase; letter-spacing:.04em; }
.demo-badge i { display:inline-block; width:6px; height:6px; background:#7ca797; border-radius:50%; margin-right:5px; }
.icon-button { width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--line); background:#fff; border-radius:50%; cursor:pointer; position:relative; }
.language-button { min-width:42px; height:38px; padding:0 10px; border:1px solid var(--line); background:#fff; border-radius:99px; color:#53615b; font:600 11px "DM Mono",monospace; cursor:pointer; }
.language-button:hover { background:#f2f5f1; }
.icon-button svg { width:18px; }
.notification-dot { width:6px; height:6px; border-radius:50%; background:var(--orange); border:2px solid #fff; box-sizing:content-box; position:absolute; top:5px; right:4px; }
.location-settings-button { max-width:170px; height:38px; display:flex; align-items:center; gap:6px; padding:0 11px; overflow:hidden; border:1px solid var(--line); border-radius:99px; background:#fff; color:#53615b; font-size:11px; font-weight:650; cursor:pointer; }
.location-settings-button:hover { background:#f2f5f1; }
.location-settings-button svg { width:17px; height:17px; flex:none; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.location-settings-button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.app-shell { width:min(1440px,92vw); margin:0 auto; padding:58px 0 80px; }
.welcome-row { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:34px; }
.welcome-actions { display:flex; align-items:center; gap:12px; }
.view-mode-toggle { display:flex; padding:3px; background:#e9ece7; border-radius:11px; }
.view-mode-button { padding:8px 12px; border:0; background:none; border-radius:8px; color:#77817c; font-size:11px; cursor:pointer; }
.view-mode-button.active { color:var(--ink); background:#fff; box-shadow:0 2px 7px rgba(35,49,42,.08); font-weight:600; }
:lang(en) .view-mode-button { font-size:12px; }
:lang(en) .combined-location-head strong { line-height:1.2; }
:lang(en) .combined-gantt-head { min-height:72px; }
:lang(en) .reminder-checks label { white-space:nowrap; }
.eyebrow { margin:0 0 7px; font:500 11px/1.3 "DM Mono",monospace; text-transform:uppercase; letter-spacing:.1em; color:#87908b; }
.welcome-row h1 { margin:0; font-size:clamp(26px,2.5vw,38px); line-height:1.25; letter-spacing:-.035em; }
.welcome-copy { margin:9px 0 0; color:var(--muted); font-size:15px; }
.primary-button,.dark-button,.full-dark-button { border:0; background:var(--ink); color:#fff; border-radius:13px; font-weight:600; cursor:pointer; transition:.2s ease; }
.primary-button { display:flex; align-items:center; gap:10px; padding:15px 22px; box-shadow:0 8px 18px rgba(23,36,31,.13); font-size:15px; }
.primary-button svg { width:20px; height:20px; stroke-width:2.2; }
.primary-button:hover,.dark-button:hover,.full-dark-button:hover { background:#2b3d35; transform:translateY(-1px); }
.full-dark-button:disabled { background:#52635c; opacity:.72; cursor:wait; transform:none; }

/* The default screen stays intentionally quiet. Rich analysis remains in the history view. */
#decisionBanner,#eventsView { display:none !important; }
.simple-dashboard { display:grid; gap:22px; }
.simple-decision-card { position:relative; overflow:hidden; background:var(--panel); border:1px solid var(--line); border-radius:26px; box-shadow:var(--shadow); cursor:pointer; transition:transform .2s ease,box-shadow .2s ease; }
.simple-decision-card.weather-risk { border-color:#e6b9a5; box-shadow:0 16px 45px rgba(169,86,54,.11); }
.simple-decision-card:hover { transform:translateY(-2px); box-shadow:0 22px 55px rgba(44,59,50,.1); }
.simple-decision-card:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.simple-decision-main { padding:32px; }
.simple-event-line { display:flex; align-items:flex-start; gap:14px; }
.simple-event-line h2 { margin:7px 0 4px; font-size:22px; letter-spacing:-.025em; }
.simple-event-line p { margin:0; color:var(--muted); font-size:14px; font-weight:500; }
.simple-risk-heading { margin:30px 0 14px; }
.simple-risk-heading .weather-headline { margin:0; font-size:36px; line-height:1.18; letter-spacing:-.045em; }
.simple-risk-copy { margin:9px 0 0; color:#76675f; font-size:14px; }
.simple-card-detail { display:flex; align-items:center; justify-content:flex-end; gap:6px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); color:#52777d; font-size:12px; font-weight:700; }
.simple-card-detail svg { width:19px; height:19px; stroke-width:2; }
.simple-answer { display:flex; align-items:center; gap:18px; margin:0 0 28px; padding:22px; background:#fbede5; border-radius:17px; }
.simple-weather-icon { width:58px; height:58px; display:grid; place-items:center; flex:none; color:var(--orange); background:#fff8f4; border-radius:16px; }
.simple-weather-icon svg { width:46px; }
.simple-answer h3 { margin:0 0 5px; font-size:19px; letter-spacing:-.02em; }
.simple-answer .weather-headline { margin-bottom:7px; font-size:34px; line-height:1.2; letter-spacing:-.045em; }
.simple-answer p:last-child { margin:0; color:#826a5e; font-size:12px; }
.simple-answer strong { color:#a34e31; }
.weather-facts { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.weather-facts span { display:flex; align-items:baseline; gap:4px; padding:8px 10px; color:#826a5e; background:rgba(255,255,255,.65); border-radius:9px; font-size:10px; }
.weather-facts b { color:#8f452d; font:500 14px "DM Mono",monospace; }
.simple-timeline { display:grid; grid-template-columns:auto 1fr auto 1fr auto; align-items:center; padding:0 7px; }
.simple-timeline>span:not(.timeline-line) { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:5px; min-width:max-content; }
.simple-timeline b { font:500 14px "DM Mono",monospace; }
.simple-timeline small { grid-column:1/-1; color:#8b948f; font-size:11px; }
.simple-timeline>span>i:not(.timeline-line i) { width:7px; height:7px; border-radius:50%; background:#7d9b8f; }
.simple-timeline .rain-start,.simple-timeline .rain-end { background:var(--orange) !important; }
.timeline-line { height:1px; margin:0 10px; background:#dfe4de; }
.timeline-line.wet { background:repeating-linear-gradient(90deg,#d27a59 0 5px,transparent 5px 9px); }
.simple-links { display:flex; gap:20px; margin-top:26px; }
.simple-links button { padding:0; border:0; background:none; color:#52777d; font-size:11px; font-weight:600; cursor:pointer; }
.simple-links button::after { content:" →"; }
.simple-links .open-activity-detail { margin-left:auto; }
.simple-primary-actions { position:absolute; right:32px; top:32px; display:flex; align-items:center; gap:7px; }
.simple-primary-actions .full-dark-button { width:auto; min-width:92px; margin:0; padding:11px 18px; }
.simple-primary-actions .text-button { width:auto; padding:10px 12px; }
.simple-other { padding:23px 28px 5px; box-shadow:none; }
.simple-other-heading { display:flex; justify-content:space-between; align-items:center; padding-bottom:14px; }
.simple-other-heading>div { display:flex; align-items:center; gap:9px; }
.simple-other-heading h2 { margin:0; font-size:15px; }
.simple-other-heading>span { color:#8b948f; font-size:10px; }
.ok-mark { width:23px; height:23px; display:grid; place-items:center; color:var(--green); background:var(--green-soft); border-radius:50%; font-size:11px; font-weight:700; }
.simple-other article { display:grid; grid-template-columns:auto minmax(150px,.75fr) minmax(290px,1.25fr) auto; align-items:center; gap:13px; padding:15px 0; border-top:1px solid var(--line); }
.simple-other article[role="button"] { cursor:pointer; transition:background .18s ease; }
.simple-other article[role="button"]:hover { background:#f7f9f6; }
.simple-other article[role="button"]:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.simple-other article.weather-risk { position:relative; margin:0 -12px; padding-right:12px; padding-left:12px; background:#fff7f2; border-top-color:#efd8cc; }
.simple-other article.weather-risk::before { position:absolute; top:14px; bottom:14px; left:0; width:3px; background:#d16f49; border-radius:99px; content:""; }
.simple-other article.weather-risk:hover { background:#fff2eb; }
.simple-other article .event-symbol { width:36px; height:36px; border-radius:11px; }
.simple-other article .event-symbol svg { width:21px; }
.simple-other article h3 { margin:0 0 3px; font-size:12px; }
.simple-other article p { margin:0; color:#7f8984; font-size:11px; font-weight:500; }
.simple-weather { display:none; color:#77827c; font-size:10px; }
.activity-hourly-preview { grid-column:3; display:grid; grid-template-columns:repeat(4,minmax(68px,1fr)); gap:6px; min-width:0; }
.activity-hour-point { display:grid; grid-template-columns:22px minmax(0,1fr); grid-template-rows:auto auto auto; column-gap:7px; min-width:0; min-height:62px; padding:8px 9px; border:1px solid color-mix(in srgb,var(--activity-border,#dbe1dc) 55%,transparent); border-radius:10px; background:rgba(255,255,255,.62); }
.activity-hour-point.rain { background:rgba(255,242,235,.82); }
.activity-hour-point.clear { background:rgba(255,248,224,.76); }
.activity-hour-point time { grid-column:1/-1; color:#77827c; font:500 8px/1.3 "DM Mono",monospace; }
.activity-hour-point i { grid-column:1; grid-row:2/4; align-self:center; width:22px; height:22px; color:var(--activity-accent,#52777d); }
.activity-hour-point i svg { width:22px; height:22px; }
.activity-hour-point small { grid-column:2; grid-row:2; overflow:hidden; color:var(--ink); font-size:11px; font-weight:750; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.activity-hour-point strong { grid-column:2; grid-row:3; align-self:center; margin-top:3px; color:#77827c; font:500 9.5px/1 "DM Mono",monospace; }
.activity-hourly-message { grid-column:1/-1; color:#77827c; font-size:10px; }
.activity-hourly-message.loading { opacity:.72; }
.simple-row-actions { grid-column:4; display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.list-risk-label { position:absolute; top:-6px; right:15px; width:9px; height:9px; overflow:hidden; padding:0; background:#df4f45; border:2px solid rgba(255,255,255,.94); border-radius:50%; box-shadow:0 0 0 1px rgba(166,45,39,.18); color:transparent; font-size:0; }
.row-arrow { width:18px; height:18px; flex:none; margin-left:2px; color:#89948e; stroke-width:2; }
[data-activity-color="teal"] { --activity-bg:#e4f5f1; --activity-border:#79c8b8; --activity-accent:#167d6c; --activity-icon:#c8ece4; }
[data-activity-color="coral"] { --activity-bg:#fff0e8; --activity-border:#efa27d; --activity-accent:#bd512d; --activity-icon:#ffd6c2; }
[data-activity-color="blue"] { --activity-bg:#e9f3ff; --activity-border:#88b7eb; --activity-accent:#2f6fb4; --activity-icon:#d0e5ff; }
[data-activity-color="violet"] { --activity-bg:#f2ebff; --activity-border:#b49ae4; --activity-accent:#704cad; --activity-icon:#e1d5fa; }
[data-activity-color="amber"] { --activity-bg:#fff4d9; --activity-border:#ddb452; --activity-accent:#916500; --activity-icon:#f7e1a7; }
#simpleTrackedList { display:grid; gap:8px; }
.simple-other article[data-activity-color] { padding:14px 12px; border:1.5px solid var(--activity-border); border-radius:15px; background:var(--activity-bg); }
.simple-other article[data-activity-color][role="button"]:hover { background:var(--activity-bg); box-shadow:0 6px 16px color-mix(in srgb,var(--activity-accent) 13%,transparent); transform:translateY(-1px); }
.simple-other article[data-activity-color] .event-symbol { color:var(--activity-accent); background:var(--activity-icon); }
.simple-other article[data-activity-color].weather-risk { margin:0; padding:14px 12px; border-color:var(--activity-border); background:var(--activity-bg); box-shadow:none; }
.simple-other article[data-activity-color].weather-risk::before { display:none; }
.simple-other article[data-activity-color].weather-risk:hover { background:var(--activity-bg); }
.simple-decision-card[data-activity-color] { border-color:var(--activity-border); background:var(--activity-bg); }
.simple-decision-card[data-activity-color] .event-symbol,.activity-detail-card[data-activity-color] .event-symbol { color:var(--activity-accent); background:var(--activity-icon); }
.activity-detail-card[data-activity-color] { border-top:4px solid var(--activity-accent); }
.activity-timeline-view { padding:30px 34px; box-shadow:var(--shadow); animation:fadeUp .3s ease; }
.activity-timeline-header { display:flex; justify-content:space-between; align-items:center; padding-bottom:24px; }
.activity-timeline-header h2 { margin:0; font-size:23px; }
.activity-timeline-header>span { color:#89928d; font-size:11px; }
.activity-timeline-list { position:relative; }
.activity-timeline-list::before { content:""; position:absolute; left:105px; top:29px; bottom:29px; width:1px; background:#dde2dc; }
.activity-timeline-item { position:relative; display:grid; grid-template-columns:82px 20px 1fr; gap:14px; min-height:120px; }
.timeline-date { display:flex; flex-direction:column; align-items:flex-start; padding-top:16px; }
.timeline-date strong { font:500 30px/1 "DM Mono",monospace; letter-spacing:-.06em; }
.timeline-date span { margin-top:6px; color:#7d8781; font-size:11px; font-weight:500; }
.timeline-track-dot { position:relative; z-index:1; width:11px; height:11px; margin:25px auto 0; background:var(--orange); border:3px solid var(--panel); border-radius:50%; box-sizing:content-box; box-shadow:0 0 0 1px #dda990; }
.timeline-track-dot.good { background:var(--green); box-shadow:0 0 0 1px #9ab6a4; }
.timeline-track-dot.watch { background:#b88d36; box-shadow:0 0 0 1px #d9c18d; }
.timeline-event-content { display:grid; grid-template-columns:1fr auto; align-items:start; gap:5px 18px; margin-bottom:18px; padding:17px 19px; background:#f8f9f6; border:1px solid var(--line); border-radius:15px; }
.alert-item .timeline-event-content { background:#fff7f2; border-color:#efd8cb; }
.timeline-event-content>div { display:flex; align-items:center; gap:9px; }
.timeline-event-content h3 { margin:0; font-size:14px; }
.timeline-event-content time { font:500 18px "DM Mono",monospace; color:var(--ink); }
.timeline-event-content p { grid-column:1/-1; margin:3px 0 0; color:#77817c; font-size:11px; }
.timeline-detail-button { grid-column:1/-1; justify-self:start; margin-top:6px; padding:0; border:0; background:none; color:#4f747a; font-size:10px; font-weight:600; cursor:pointer; }
.timeline-open-detail { grid-column:2; grid-row:3; align-self:end; justify-self:end; margin-top:6px; padding:0; border:0; background:none; color:#4f747a; font-size:10px; font-weight:600; cursor:pointer; }
.calendar-week { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; padding:8px; background:#f0f2ee; border-radius:16px; }
.calendar-week button { display:flex; flex-direction:column; align-items:center; gap:7px; min-height:76px; padding:10px 6px 7px; border:0; background:transparent; border-radius:11px; cursor:pointer; }
.calendar-week button:hover { background:rgba(255,255,255,.6); }
.calendar-week button.active { color:#fff; background:var(--ink); box-shadow:0 6px 14px rgba(23,36,31,.14); }
.calendar-week span { color:#7c8680; font-size:9px; }
.calendar-week button.active span { color:#bcc6c1; }
.calendar-week strong { font:500 18px "DM Mono",monospace; }
.calendar-week i { width:5px; height:5px; border-radius:50%; }
.calendar-week i.has-event { background:#83958d; }
.calendar-week i.alert { background:var(--orange); }
.calendar-week i.good { background:var(--green); }
.calendar-week i.watch { background:#b88d36; }
.selected-day-heading { display:flex; justify-content:space-between; align-items:flex-end; margin:26px 0 16px; }
.selected-day-heading>div { display:flex; align-items:baseline; gap:10px; }
.selected-day-heading h3 { margin:0; font-size:17px; }
.selected-day-heading span { color:#89928d; font-size:10px; }
.day-schedule { position:relative; min-height:160px; padding-left:0; }
.day-schedule::before { display:none; content:""; }
.day-time-entry { position:relative; min-height:118px; }
.day-time-label { position:absolute; left:-84px; top:17px; width:48px; color:var(--ink); font:500 15px "DM Mono",monospace; text-align:right; }
.day-time-dot { position:absolute; left:-31px; top:22px; width:9px; height:9px; background:var(--blue); border:3px solid var(--panel); border-radius:50%; box-sizing:content-box; box-shadow:0 0 0 1px #9db3ae; }
.day-event-card { width:100%; display:grid; grid-template-columns:1fr auto; gap:7px 14px; padding:17px 19px; border:1px solid var(--line); background:#f9faf7; border-radius:14px; text-align:left; cursor:pointer; }
.day-event-card.alert-card { background:#fff6f1; border-color:#efd5c7; }
.day-event-card:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(44,59,50,.06); }
.day-event-card h4 { margin:0; font-size:14px; }
.day-event-card .status-pill { align-self:start; }
.day-event-card p { grid-column:1/-1; margin:0; color:#737e78; font-size:11px; }
.day-event-end { color:#8b948f; font:10px "DM Mono",monospace; }
.empty-day { display:grid; place-items:center; min-height:150px; color:#89928d; background:#f7f8f5; border:1px dashed #daddd7; border-radius:14px; font-size:11px; }
.gantt-scroll { overflow-x:auto; margin:0 -4px; padding:0 4px 8px; scrollbar-width:thin; scrollbar-color:#cbd2cc transparent; }
.gantt-chart { min-width:760px; }
.gantt-axis { display:grid; grid-template-columns:150px 1fr; align-items:end; height:40px; }
.gantt-axis-title { color:#8a938e; font-size:10px; }
.gantt-axis-track { position:relative; height:28px; border-bottom:1px solid #dfe3dd; }
.gantt-axis-track span { position:absolute; bottom:7px; color:#7d8781; font:10px "DM Mono",monospace; transform:translateX(-50%); }
.gantt-axis-track span:first-child { transform:none; }
.gantt-axis-track span:last-child { transform:translateX(-100%); }
.gantt-row { display:grid; grid-template-columns:150px 1fr; min-height:86px; border-bottom:1px solid #eceee9; }
.gantt-row:last-child { border-bottom:0; }
.gantt-row-label { display:flex; flex-direction:column; justify-content:center; padding-right:18px; }
.gantt-row-label strong { overflow:hidden; color:var(--ink); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.gantt-row-label span { margin-top:5px; color:#7e8882; font:11px "DM Mono",monospace; }
.gantt-track { position:relative; background-image:linear-gradient(to right,transparent calc(100% - 1px),#e5e8e3 calc(100% - 1px)); background-size:18.75% 100%; }
.gantt-bar { position:absolute; top:19px; height:48px; min-width:54px; overflow:visible; padding:0; border:1px solid #b9d0ca; background:#e8f1ed; border-radius:11px; color:#315c50; cursor:pointer; text-align:left; box-shadow:0 4px 10px rgba(50,81,69,.06); }
.gantt-bar.alert-bar { border-color:#e5bda9; background:#f9ddd0; color:#9e4e32; }
.gantt-bar.watch-bar { border-color:#e2d1a6; background:#f6ecd2; color:#7d621f; }
.gantt-bar-content { position:relative; z-index:2; display:flex; height:100%; align-items:center; justify-content:space-between; gap:8px; padding:0 12px; white-space:nowrap; }
.gantt-bar-content strong { font:500 11px "DM Mono",monospace; }
.gantt-bar-content span { overflow:hidden; font-size:10px; font-weight:600; text-overflow:ellipsis; }
.gantt-rain-segment { position:absolute; z-index:1; top:0; bottom:0; right:0; background:repeating-linear-gradient(135deg,rgba(197,92,55,.22) 0 5px,rgba(197,92,55,.08) 5px 10px); border-left:1px dashed rgba(175,76,44,.55); border-radius:0 10px 10px 0; }
.gantt-rain-marker { position:absolute; z-index:3; top:4px; bottom:4px; border-left:1px dashed #b95f40; pointer-events:none; }
.gantt-rain-marker::before { content:"08:30 有雨"; position:absolute; top:-18px; left:5px; color:#aa583d; font:9px "DM Mono",monospace; white-space:nowrap; }
.vertical-gantt { position:relative; min-height:680px; padding:0 0 0 0; }
.vertical-gantt-head { display:grid; grid-template-columns:60px 1fr 190px; align-items:center; height:38px; color:#89928d; font-size:9px; border-bottom:1px solid #dfe3dd; }
.vertical-gantt-head span:last-child { padding-left:18px; }
.vertical-gantt-body { position:relative; height:640px; }
.vertical-hour-row { position:absolute; left:0; right:0; display:grid; grid-template-columns:60px 1fr 190px; height:80px; border-top:1px solid #e4e7e2; }
.vertical-hour-row:last-child { border-bottom:1px solid #e4e7e2; }
.vertical-hour-row time { padding-top:10px; color:#607069; font:500 12px "DM Mono",monospace; }
.vertical-weather { display:flex; align-items:flex-start; gap:10px; padding:8px 12px; }
.weather-symbol-dot { width:27px; height:27px; display:grid; place-items:center; flex:none; color:#547c83; background:#e7f0f0; border-radius:9px; font-size:13px; }
.weather-symbol-dot.rainy { color:#b45d3f; background:#fae7dd; }
.weather-symbol-dot.clear { color:#9b7a2f; background:#f7efd8; }
.weather-symbol-dot svg { width:17px; height:17px; }
.vertical-weather strong { display:block; font-size:11px; }
.vertical-weather span { display:block; margin-top:3px; color:#89928d; font:10px "DM Mono",monospace; }
.vertical-weather b { margin-left:auto; padding-top:3px; color:#718079; font:500 11px "DM Mono",monospace; }
.vertical-activity-lane { position:absolute; top:0; right:0; bottom:0; width:190px; border-left:1px solid #dfe3dd; background:rgba(247,249,246,.55); }
.vertical-activity-bar { position:absolute; left:18px; right:12px; z-index:3; overflow:hidden; min-height:32px; padding:10px 11px; border:2px solid rgba(128,168,155,.68); background:rgba(221,238,231,.52); border-radius:11px; color:#315c50; cursor:pointer; text-align:left; box-shadow:0 5px 13px rgba(50,81,69,.09); backdrop-filter:blur(3px); }
.vertical-activity-bar.alert-bar { border-color:rgba(218,139,100,.72); background:linear-gradient(180deg,rgba(248,207,187,.56),rgba(249,225,212,.5)); color:#91452d; }
.vertical-activity-bar.watch-bar { border-color:rgba(207,181,116,.72); background:rgba(243,229,192,.52); color:#72591c; }
.vertical-activity-bar[data-activity-color] { border-color:var(--activity-border); background:color-mix(in srgb,var(--activity-bg) 72%,transparent); color:var(--activity-accent); box-shadow:0 5px 14px color-mix(in srgb,var(--activity-accent) 16%,transparent); }
.vertical-activity-bar[data-activity-color].alert-bar { overflow:visible; border-color:var(--activity-border); background:color-mix(in srgb,var(--activity-bg) 78%,transparent); color:var(--activity-accent); box-shadow:0 5px 14px color-mix(in srgb,var(--activity-accent) 16%,transparent); }
.vertical-activity-bar[data-activity-color].alert-bar::after { position:absolute; top:-5px; right:-5px; width:7px; height:7px; background:#df4f45; border:2px solid rgba(255,255,255,.9); border-radius:50%; box-shadow:0 0 0 1px rgba(166,45,39,.16); content:""; }
.vertical-activity-bar[data-activity-color].watch-bar { border-color:var(--activity-border); background:color-mix(in srgb,var(--activity-bg) 72%,transparent); color:var(--activity-accent); }
.activity-bar-top { display:flex !important; align-items:center; justify-content:space-between; gap:6px; margin:0 !important; }
.activity-bar-top strong { min-width:0; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.activity-bar-top time { flex:none; margin:0; font:500 12px "DM Mono",monospace; white-space:nowrap; }
.activity-bar-weather { display:block; margin-top:6px; font-size:12px; font-weight:600; }
.rain-period-band { position:absolute; z-index:1; left:60px; right:190px; background:repeating-linear-gradient(135deg,rgba(210,111,73,.09) 0 7px,rgba(210,111,73,.03) 7px 14px); border-top:1px dashed rgba(200,97,59,.42); border-bottom:1px dashed rgba(200,97,59,.25); pointer-events:none; }
.rain-period-band span { position:absolute; right:8px; top:6px; color:#a75b40; font:9px "DM Mono",monospace; }
.location-weather-group { margin-top:20px; padding-top:18px; border-top:1px solid var(--line); }
.location-weather-group:first-child { margin-top:0; padding-top:0; border-top:0; }
.location-weather-heading { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.location-weather-heading strong { font-size:13px; }
.location-weather-heading span { color:#7c8781; font-size:10px; }
.location-pin { display:inline-flex; align-items:center; gap:6px; }
.location-pin::before { content:""; width:7px; height:7px; background:var(--blue); border-radius:50%; box-shadow:0 0 0 4px var(--blue-soft); }
.weather-loading { display:grid; place-items:center; min-height:130px; color:#7f8984; background:#f6f8f5; border:1px dashed #d8ddd7; border-radius:13px; font-size:11px; }
.vertical-combined-scroll { height:calc(100dvh - 180px); overflow:auto; padding-bottom:8px; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#cbd2cc transparent; }
.vertical-combined-chart { --location-count:1; width:max-content; }
.vertical-combined-chart.single-column { width:100%; }
.combined-gantt-head { position:sticky; top:0; z-index:10; display:grid; grid-template-columns:60px repeat(var(--location-count),var(--activity-column-width,180px)); min-height:58px; border-bottom:1px solid #dfe3dd; background:var(--panel); box-shadow:0 4px 9px rgba(44,59,50,.04); }
.single-column .combined-gantt-head { grid-template-columns:60px minmax(var(--activity-column-width,280px),1fr); }
.combined-gantt-head>span,.combined-gantt-head>button,.combined-gantt-head>div { display:flex; align-items:center; color:#7c8781; font-size:11px; }
.combined-gantt-head>span:first-child { position:sticky; left:0; z-index:12; padding-left:2px; background:var(--panel); border-right:1px solid #dfe3dd; }
.combined-location-head { display:flex !important; flex-direction:column; align-items:flex-start !important; justify-content:center; gap:3px; padding:8px 12px; border-left:1px solid #dfe3dd; }
.combined-location-head.gantt-jump-button { border-top:0; border-right:0; border-bottom:0; background:var(--panel); cursor:pointer; text-align:left; }
.combined-location-head.gantt-jump-button:hover { background:#f3f6f3; }
.combined-location-head strong { color:var(--ink); font-size:14px; }
.combined-location-head small { overflow:hidden; max-width:100%; color:#6f7a74; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.combined-gantt-body { position:relative; height:640px; }
.combined-hour-row { position:absolute; left:0; right:0; display:grid; grid-template-columns:60px repeat(var(--location-count),var(--activity-column-width,180px)); height:calc(12.5% + 1px); border-top:1px solid #e4e7e2; }
.single-column .combined-hour-row { grid-template-columns:60px minmax(var(--activity-column-width,280px),1fr); }
.combined-hour-row:last-of-type { border-bottom:1px solid #e4e7e2; }
.combined-hour-row>time { position:sticky; left:0; z-index:6; padding-top:10px; color:#485951; background:var(--panel); border-right:1px solid #dfe3dd; font:500 14px "DM Mono",monospace; }
.combined-weather-cell { position:relative; display:flex; align-items:flex-start; gap:9px; padding:8px 10px; border-left:1px solid #dfe3dd; }
.combined-weather-cell.rain-cell { background:repeating-linear-gradient(135deg,rgba(210,111,73,.08) 0 7px,rgba(210,111,73,.025) 7px 14px); }
.combined-weather-cell.time-far>i,.combined-weather-cell.time-far>div { opacity:.38; }
.combined-weather-cell.rain-cell.time-far { background:repeating-linear-gradient(135deg,rgba(210,111,73,.035) 0 7px,rgba(210,111,73,.01) 7px 14px); }
.combined-weather-cell>i,.combined-weather-cell>div { position:relative; z-index:4; }
.combined-weather-cell strong { display:block; font-size:15px; line-height:1.25; }
.combined-weather-cell span { display:block; margin-top:4px; color:#738079; font:13px "DM Mono",monospace; }
.combined-weather-cell b { display:block; margin-top:3px; color:#576b62; font:500 14px "DM Mono",monospace; }
.combined-lanes { position:absolute; top:0; bottom:0; left:60px; display:grid; grid-template-columns:repeat(var(--location-count),var(--activity-column-width,180px)); pointer-events:none; }
.single-column .combined-lanes { right:0; grid-template-columns:minmax(var(--activity-column-width,280px),1fr); }
.combined-day-end { position:absolute; right:0; bottom:0; left:0; z-index:5; height:1px; border-top:1px solid #dfe3dd; }
.vertical-location-lane { position:relative; border-left:1px solid transparent; pointer-events:none; }
.vertical-location-lane .vertical-activity-bar { --bar-right:8px; right:var(--bar-right); left:auto; width:max(84px,calc(100% - var(--weather-reserve,84px) - var(--bar-right))); padding-right:6px; padding-left:6px; pointer-events:auto; }
.vertical-activity-bar.located { animation:locatedPulse .9s ease; }
@keyframes locatedPulse { 0%,100% { box-shadow:0 5px 13px rgba(50,81,69,.09); } 45% { box-shadow:0 0 0 5px rgba(74,126,137,.2),0 8px 18px rgba(50,81,69,.12); } }
.activity-detail-view { position:fixed; inset:0; z-index:120; width:auto; margin:0; overflow-y:auto; background:var(--paper); animation:fadeUp .3s ease; }
.activity-detail-header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; height:72px; margin:0; padding:0 24px; border-bottom:1px solid var(--line); background:rgba(248,249,244,.92); backdrop-filter:blur(16px); }
.activity-detail-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin-left:auto; }
.activity-detail-actions .ghost-button { padding:8px 12px; font-size:12px; font-weight:650; }
.activity-detail-card { width:min(760px,calc(100% - 30px)); margin:38px auto 70px; padding:32px; }
.activity-detail-top { display:flex; gap:16px; align-items:center; }
.activity-detail-top .event-symbol { color:#8c6c35; background:#f7edda; }
.activity-detail-top h2 { margin:0 0 5px; font-size:25px; line-height:1.25; }
.activity-detail-top p { margin:0; color:#7c8781; font-size:12px; }
.activity-detail-time { display:grid; grid-template-columns:1fr auto; gap:7px; margin:30px 0 20px; padding:22px; background:#f4f6f3; border-radius:16px; }
.activity-detail-time>span { grid-column:1/-1; color:#87908b; font-size:10px; }
.activity-detail-time strong { align-self:end; font-size:14px; }
.activity-detail-time time { font:500 25px "DM Mono",monospace; }
.activity-detail-alerts { display:flex; align-items:center; gap:16px; margin:0 0 20px; padding:15px 18px; border:1px solid var(--line); border-radius:13px; background:#fbfcf9; }
.activity-detail-alerts>span { flex:none; color:#7e8983; font-size:10px; font-weight:600; }
.activity-detail-alerts>div { display:flex; flex-wrap:wrap; gap:7px; }
.detail-alert-chip { display:inline-flex; align-items:center; gap:5px; padding:6px 9px; color:#35664d; background:#e5f0e8; border-radius:99px; font-size:10px; font-weight:700; }
.detail-alert-chip::before { width:6px; height:6px; background:currentColor; border-radius:50%; content:""; }
.detail-alert-chip.storm { color:#986b1e; background:#f8ecd3; }
.detail-alert-chip.wind { color:#4d7077; background:#e4eef0; }
.detail-alert-chip.muted { color:#7d8782; background:#edf0ed; }
.activity-detail-weather { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.activity-detail-weather>div { padding:17px 19px; border:1px solid var(--line); border-radius:13px; }
.activity-detail-weather span,.activity-detail-weather strong { display:block; }
.activity-detail-weather span { margin-bottom:6px; color:#87908b; font-size:10px; }
.activity-detail-weather strong { font-size:18px; line-height:1.45; }
.activity-detail-forecast { margin-top:24px; padding-top:24px; border-top:1px solid var(--line); }
.detail-forecast-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.detail-forecast-heading h3 { margin:0; font-size:17px; }
.detail-forecast-heading p { margin:5px 0 0; color:#7d8882; font-size:11px; }
.detail-forecast-heading>span { color:#89928d; font-size:10px; text-align:right; }
.detail-forecast-strip { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(118px,1fr); gap:8px; overflow-x:auto; padding:2px 1px 8px; scrollbar-width:thin; }
.detail-hour { min-width:0; padding:13px 10px; border:1px solid var(--line); border-radius:12px; background:#fbfcf9; text-align:center; }
.detail-hour.in-activity { border-color:#e7aa90; background:#fff2eb; box-shadow:inset 0 0 0 1px rgba(196,93,55,.08); }
.detail-hour time,.detail-hour strong,.detail-hour span,.detail-hour small { display:block; }
.detail-hour time { color:#43534c; font:600 15px "DM Mono",monospace; }
.detail-hour i { display:grid; place-items:center; width:38px; height:38px; margin:9px auto 6px; border-radius:50%; background:#edf2ef; color:#567b78; font-style:normal; font-size:20px; }
.detail-hour i svg { width:24px; height:24px; }
.detail-hour.in-activity i { background:#f6d9cc; color:#ae5d3d; }
.detail-hour strong { min-height:35px; display:grid; place-items:center; font-size:14px; font-weight:750; line-height:1.2; overflow-wrap:anywhere; }
.detail-hour span { margin-top:4px; color:#748079; font:500 12px "DM Mono",monospace; }
.detail-hour small { margin-top:4px; color:#7e8883; font-size:9px; }
.danger-text-button { margin-top:28px; padding:10px 0 0; border:0; border-top:1px solid var(--line); width:100%; background:none; color:#ad6046; text-align:left; font-size:11px; cursor:pointer; }
.activity-detail-header .danger-text-button { width:auto; margin:0; padding:8px 10px; border:0; border-radius:9px; text-align:center; font-size:12px; font-weight:600; }
.activity-detail-header .danger-text-button:hover { background:#faeae1; }

.decision-banner { display:grid; grid-template-columns:auto 1fr auto; gap:22px; align-items:center; padding:25px 28px; margin-bottom:24px; background:linear-gradient(112deg,#f9e8df 0%,#fff5ee 72%); border:1px solid #efd6c8; border-radius:var(--radius); box-shadow:0 12px 36px rgba(157,92,59,.06); }
.decision-icon { width:52px; height:52px; display:grid; place-items:center; color:var(--orange); background:#fff8f4; border:1px solid #edcbbb; border-radius:16px; }
.decision-icon svg { width:27px; }
.status-line { display:flex; align-items:center; gap:12px; margin-bottom:7px; font-size:12px; color:#8b7164; }
.status-pill { display:inline-flex; width:max-content; align-items:center; justify-content:center; padding:6px 10px; font-size:11px; font-weight:600; border-radius:99px; white-space:nowrap; }
.status-pill.alert { color:#b55231; background:#f8d7c6; }
.status-pill.good { color:#35664d; background:var(--green-soft); }
.status-pill.watch { color:#886716; background:var(--yellow-soft); }
.decision-copy h2 { margin:0 0 6px; font-size:19px; letter-spacing:-.02em; }
.decision-copy p { margin:0; color:#755f54; font-size:13px; line-height:1.7; }
.decision-copy strong { color:#9d4f33; }
.decision-actions { display:flex; align-items:center; gap:9px; }
.ghost-button { padding:11px 15px; border:1px solid rgba(93,72,62,.18); background:rgba(255,255,255,.6); border-radius:11px; cursor:pointer; font-weight:500; }
.dark-button { padding:12px 16px; }
.dark-button span,.change-strip button span { margin-left:8px; }

.content-grid { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:24px; align-items:start; }
.main-column,.side-column { display:flex; flex-direction:column; gap:24px; min-width:0; }
.side-column { position:sticky; top:100px; }
.panel { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); }
.event-panel { padding:30px; overflow:hidden; }
.event-heading { display:flex; align-items:flex-start; justify-content:space-between; padding-bottom:25px; }
.event-title-wrap { display:flex; gap:15px; align-items:flex-start; }
.event-symbol { width:44px; height:44px; display:grid; place-items:center; border-radius:14px; flex:none; }
.event-symbol svg { width:26px; }
.cycling { color:#3e6973; background:#e7f0f0; }
.badminton { color:#8c6c35; background:#f7edda; }
.running { color:#6e617f; background:#eee9f2; }
.event-meta { margin:0 0 3px; color:var(--orange); font-size:11px; font-weight:700; letter-spacing:.06em; }
.event-heading h2,.panel-title-row h2,.side-header h2,.monitor-heading h2,.timeline-panel h2 { margin:0; font-size:20px; letter-spacing:-.02em; }
.event-details { display:flex; flex-wrap:wrap; gap:14px; margin-top:8px; color:var(--muted); font-size:12px; }
.event-details span { display:flex; align-items:center; gap:5px; }
.event-details svg { width:15px; }
.more-button { border:0; background:none; letter-spacing:3px; color:#909892; cursor:pointer; }

.risk-summary { display:grid; grid-template-columns:minmax(210px,.8fr) 1.4fr; border:1px solid var(--line); border-radius:17px; background:#f9faf7; overflow:hidden; }
.risk-primary { display:flex; align-items:center; gap:14px; padding:22px; border-right:1px solid var(--line); }
.weather-illustration { width:72px; flex:none; color:var(--blue); }
.weather-illustration svg { width:100%; }
.weather-illustration .sun { stroke:#d6a749; }
.weather-illustration .cloud { fill:#edf3f2; stroke:#4a7c86; }
.weather-illustration .drops { stroke:#4a7c86; }
.risk-label { font-size:11px; color:#808a85; }
.weather-degree { font:500 31px/1.2 "DM Mono",monospace; letter-spacing:-.06em; }
.weather-degree span { color:#9da49f; font-size:18px; }
.risk-primary p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.risk-metrics { display:grid; grid-template-columns:repeat(4,1fr); align-items:center; }
.risk-metrics>div { padding:10px 17px; border-right:1px solid var(--line); }
.risk-metrics>div:last-child { border-right:0; }
.risk-metrics span,.risk-metrics small { display:block; color:#7d8681; font-size:10px; }
.risk-metrics strong { display:block; margin:4px 0; font:500 21px/1.3 "DM Mono",monospace; }
.risk-metrics strong em { font-style:normal; font-size:10px; }
.risk-metrics .alert-text { color:var(--orange); }
.risk-metrics small { color:var(--orange); }
.risk-metrics small.neutral { color:#a0a6a2; }

.hourly-wrap { padding:29px 0 25px; }
.section-label-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.section-label-row h3 { margin:0; font-size:14px; }
.legend { display:flex; gap:16px; color:#8a918d; font-size:10px; }
.legend span { display:flex; align-items:center; gap:5px; }
.legend i.line { width:14px; height:2px; background:var(--blue); }
.activity-range { width:12px; height:9px; background:#eef1ec; border:1px solid #dde1da; }
.hourly-chart { display:grid; grid-template-columns:36px 1fr; height:190px; }
.chart-y { height:150px; display:flex; flex-direction:column; justify-content:space-between; color:#a0a6a3; font:10px "DM Mono",monospace; padding:0 0 2px; }
.chart-area { position:relative; height:190px; }
.activity-shade { position:absolute; left:8%; right:17%; top:0; height:150px; background:rgba(230,233,226,.55); border-left:1px dashed #c9cec5; border-right:1px dashed #c9cec5; }
.grid-lines { position:absolute; inset:0 0 40px; display:flex; flex-direction:column; justify-content:space-between; }
.grid-lines i { display:block; border-top:1px dashed #e1e3dd; }
.rain-chart { position:absolute; inset:0 0 40px; width:100%; height:150px; overflow:visible; }
.rain-chart .area { fill:url(#rainFill); stroke:none; }
.rain-chart .line { stroke:var(--blue); stroke-width:2.5; vector-effect:non-scaling-stroke; }
.rain-points { position:absolute; inset:0 0 40px; height:150px; pointer-events:none; }
.rain-points i { position:absolute; width:8px; height:8px; background:#fff; border:2px solid var(--blue); border-radius:50%; transform:translate(-50%,-50%); }
.rain-points i:first-child { transform:translate(0,-50%); }
.rain-points i:last-child { transform:translate(-100%,-50%); }
.chart-times { position:absolute; left:0; right:0; top:164px; display:flex; justify-content:space-between; color:#919995; font:9px "DM Mono",monospace; }
.rain-callout { position:absolute; left:63%; top:-10px; display:flex; flex-direction:column; align-items:center; background:var(--ink); color:#fff; border-radius:7px; padding:5px 8px; font:9px "DM Mono",monospace; transform:translateX(-50%); }
.rain-callout::after { content:""; position:absolute; bottom:-4px; width:8px; height:8px; background:var(--ink); transform:rotate(45deg); }
.rain-callout strong,.rain-callout span { z-index:1; }
.rain-callout span { color:#bcc6c1; }
.chart-note { margin:8px 0 0 36px; padding:11px 14px; background:#f4f6f3; border-radius:9px; color:#65706a; font-size:11px; }
.chart-note span { color:var(--orange); font-weight:600; }
.change-strip { display:flex; align-items:center; gap:13px; margin:0 -30px -30px; padding:17px 30px; background:#f3f6f4; border-top:1px solid var(--line); }
.change-marker { width:28px; height:28px; display:grid; place-items:center; border-radius:50%; background:#e1ebe8; }
.change-marker span { width:7px; height:7px; border-radius:50%; background:var(--blue); box-shadow:0 0 0 4px rgba(74,126,137,.12); }
.change-strip div:nth-child(2) { flex:1; }
.change-strip p { margin:0 0 2px; color:#8b938f; font-size:10px; }
.change-strip strong { font-size:11px; }
.change-strip button,.small-link { border:0; background:none; color:#456e75; font-size:11px; font-weight:600; cursor:pointer; }

.tracked-panel { padding:26px 28px 8px; }
.panel-title-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.muted-count { color:#8a938e; font-size:11px; }
.tracked-item { display:grid; grid-template-columns:auto minmax(150px,1fr) 145px auto; gap:13px; align-items:center; padding:17px 0; border-top:1px solid var(--line); }
.tracked-main h3 { margin:0 0 4px; font-size:13px; }
.tracked-main p { margin:0; color:#8b938f; font-size:10px; }
.mini-weather { display:flex; align-items:center; gap:6px; }
.mini-weather svg { width:26px; color:#64828a; }
.mini-weather strong { font:500 14px "DM Mono",monospace; }
.mini-weather span { color:#909793; font-size:10px; }

.suggestion-panel,.monitor-panel { padding:25px; }
.side-header { display:flex; gap:12px; align-items:center; }
.spark-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:13px; color:#fff; background:var(--blue); font-size:18px; }
.side-header h2,.monitor-heading h2 { font-size:17px; }
.side-intro { color:#717b75; font-size:11px; line-height:1.7; margin:17px 0; }
.suggestion-list { display:flex; flex-direction:column; gap:10px; }
.suggestion-card { position:relative; display:flex; flex-direction:column; text-align:left; gap:4px; padding:16px; background:#fbfcf9; border:1px solid var(--line); border-radius:14px; cursor:pointer; transition:.2s ease; }
.suggestion-card.selected { border-color:#5f8991; box-shadow:0 0 0 2px rgba(74,126,137,.1); background:#f6faf9; }
.suggestion-card:hover { transform:translateY(-1px); }
.best-tag { position:absolute; top:13px; right:13px; padding:4px 7px; border-radius:99px; background:#e3efed; color:#426e72; font-size:9px; font-weight:600; }
.slot-date { color:#8b938f; font-size:10px; }
.suggestion-card strong { font:500 16px "DM Mono",monospace; }
.slot-weather { display:flex; align-items:center; gap:5px; color:#718079; font-size:10px; }
.slot-weather svg { width:23px; color:#8a834d; }
.slot-weather b { color:#51757c; margin-left:auto; }
.risk-bar { height:3px; margin-top:7px; background:#e3e8e4; border-radius:99px; overflow:hidden; }
.risk-bar i { display:block; height:100%; background:var(--green); border-radius:inherit; }
.full-dark-button { width:100%; padding:13px 16px; margin-top:15px; }
.text-button { width:100%; border:0; background:none; padding:12px; color:#78817c; font-size:11px; cursor:pointer; }
.confidence-note { display:flex; align-items:flex-start; gap:7px; margin:10px 0 0; padding-top:14px; border-top:1px solid var(--line); color:#939a96; font-size:9px; line-height:1.6; }
.confidence-note svg { width:14px; flex:none; margin-top:1px; }
.monitor-heading { display:flex; justify-content:space-between; align-items:flex-start; }
.rule-list { display:flex; flex-direction:column; gap:12px; margin:19px 0; }
.rule-list>div { display:flex; align-items:center; gap:11px; }
.rule-icon { width:31px; height:31px; display:grid; place-items:center; flex:none; border-radius:9px; }
.rule-icon svg { width:17px; }
.rain-rule { color:#4f7f88; background:#e7f0f1; }
.wind-rule { color:#687b77; background:#eaeeeb; }
.storm-rule { color:#9b7834; background:#f7edd6; }
.rule-list p { margin:0; font-size:11px; color:#6f7974; }
.rule-list strong { color:var(--ink); }
.next-check { display:flex; align-items:center; gap:10px; padding:12px 14px; background:#f2f6f3; border-radius:11px; }
.pulse-dot { width:8px; height:8px; background:#5c9274; border-radius:50%; box-shadow:0 0 0 5px rgba(92,146,116,.1); }
.next-check p { margin:0; font-size:9px; line-height:1.5; color:#8d9590; }
.next-check strong { font-size:10px; color:#4c6f5d; }

.history-view { animation:fadeUp .35s ease; }
.notifications-view { width:min(760px,100%); margin:0 auto; animation:fadeUp .35s ease; }
.notifications-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:22px; }
.notifications-header h2 { margin:0; font-size:28px; }
.push-setup { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:15px; margin-bottom:16px; padding:20px 22px; }
.push-setup-icon { width:42px; height:42px; display:grid; place-items:center; color:#486f62; background:#e7f1ea; border-radius:13px; }
.push-setup-icon svg { width:21px; }
.push-setup h3 { margin:0 0 4px; font-size:14px; }
.push-setup p { margin:0; color:#748079; font-size:11px; line-height:1.55; }
.push-setup-actions { display:flex; gap:8px; }
.push-setup-actions button { white-space:nowrap; }
.notification-list { overflow:hidden; }
.notification-list article { display:grid; grid-template-columns:auto 1fr; gap:15px; padding:22px 24px; border-bottom:1px solid var(--line); }
.notification-list article:last-child { border-bottom:0; }
.notification-list article.unread { background:#fffaf6; }
.notification-list article.acknowledged { background:#f8f9f6; }
.notification-list article.acknowledged .notification-type { opacity:.62; }
.notification-type { width:38px; height:38px; display:grid; place-items:center; color:var(--green); background:var(--green-soft); border-radius:12px; }
.notification-type.alert { color:var(--orange); background:var(--orange-soft); }
.notification-type svg { width:20px; }
.notification-title { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.notification-title h3 { margin:0; font-size:13px; }
.notification-title time { color:#7d8781; font:11px "DM Mono",monospace; }
.notification-list p { margin:5px 0 0; color:#6f7974; font-size:11px; line-height:1.7; }
.notification-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:12px; }
.notification-list article .notification-actions button { margin:0; border:0; font-size:10px; font-weight:700; cursor:pointer; }
.notification-ack { padding:7px 12px !important; border-radius:999px !important; background:#183128 !important; color:#fff !important; }
.notification-ack:disabled { background:#e7eae5 !important; color:#7c8580 !important; cursor:default !important; }
.notification-open { padding:7px 0 !important; background:none !important; color:#4d747b !important; }
.notification-empty { padding:40px 24px; text-align:center; }
.notification-empty strong { font-size:14px; }
.notification-empty p { max-width:420px; margin:8px auto 0; color:#7b8580; font-size:11px; line-height:1.7; }
.history-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:24px; }
.history-header h2 { margin:0; font-size:28px; }
.history-header p:last-child { margin:8px 0 0; color:var(--muted); }
.history-layout { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(300px,.65fr); gap:24px; }
.history-chart-panel,.timeline-panel { padding:30px; }
.history-current { color:var(--orange); font:500 23px "DM Mono",monospace; }
.history-chart { position:relative; height:330px; margin-top:20px; }
.h-grid { position:absolute; inset:0 0 70px; display:flex; flex-direction:column; justify-content:space-between; }
.h-grid i { border-top:1px dashed var(--line); }
.history-chart svg { position:absolute; inset:0 0 70px; width:100%; height:260px; overflow:visible; }
.history-area { fill:url(#historyFill); stroke:none; }
.history-line { stroke:var(--orange); stroke-width:3; vector-effect:non-scaling-stroke; }
.history-points { position:absolute; inset:0 0 70px; height:260px; pointer-events:none; }
.history-points i { position:absolute; width:11px; height:11px; background:#fff; border:2.5px solid var(--orange); border-radius:50%; transform:translate(-50%,-50%); }
.history-points i:first-child { transform:translate(0,-50%); }
.history-points i:last-child { width:13px; height:13px; transform:translate(-100%,-50%); }
.h-labels { position:absolute; left:0; right:0; bottom:0; display:flex; justify-content:space-between; text-align:center; color:#919995; font:10px/1.8 "DM Mono",monospace; }
.h-labels b { color:var(--ink); }
.history-insight { display:flex; gap:12px; padding:15px; background:var(--orange-soft); border-radius:12px; color:#a75c3e; }
.history-insight span { font-size:20px; }
.history-insight p { margin:0; color:#91614f; font-size:11px; line-height:1.6; }
.history-insight strong { color:#92462c; }
.timeline { margin-top:24px; }
.timeline-item { position:relative; padding:0 0 28px 26px; border-left:1px solid #dfe3dc; }
.timeline-item:last-child { border-left-color:transparent; }
.timeline-item>span { position:absolute; left:-5px; top:2px; width:9px; height:9px; background:#c4cdc7; border:2px solid var(--panel); border-radius:50%; box-sizing:content-box; }
.timeline-item.important>span { background:var(--orange); box-shadow:0 0 0 4px var(--orange-soft); }
.timeline-item time { display:block; color:#939b97; font:9px "DM Mono",monospace; }
.timeline-item h3 { margin:5px 0; font-size:12px; }
.timeline-item p { margin:0; color:#7f8883; font-size:10px; line-height:1.6; }

.modal-backdrop { position:fixed; inset:0; display:grid; place-items:center; padding:20px; overflow:hidden; overscroll-behavior:contain; touch-action:none; background:rgba(19,31,26,.46); backdrop-filter:blur(6px); z-index:200; animation:fadeIn .2s ease; }
.modal { width:min(590px,100%); max-height:calc(100dvh - 40px); padding:30px; overflow:auto; overscroll-behavior:contain; touch-action:pan-y; background:var(--panel); border:1px solid rgba(255,255,255,.7); border-radius:24px; box-shadow:0 30px 80px rgba(20,30,25,.25); animation:modalUp .28s ease; }
.modal.compact { width:min(450px,100%); }
.modal-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:24px; }
.modal-header h2 { margin:0; font-size:23px; }
.modal-subtitle { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.modal-close { width:34px; height:34px; border:1px solid var(--line); border-radius:50%; background:#fff; color:#7c8580; font-size:22px; line-height:1; cursor:pointer; }
form label { display:flex; flex-direction:column; gap:7px; font-size:11px; font-weight:600; }
input,select { width:100%; border:1px solid #dfe3dc; background:#fbfcf9; border-radius:11px; padding:12px 13px; outline:none; color:var(--ink); }
input:focus,select:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(74,126,137,.1); }
.form-grid { display:grid; gap:12px; margin-top:14px; }
.form-grid.two { grid-template-columns:1.5fr 1fr; }
.form-grid.three { grid-template-columns:1.2fr 1fr 1fr; }
.location-picker { position:relative; }
.default-location-picker { margin-bottom:18px; }
#defaultLocationModal,.default-location-modal { overflow:visible; }
.default-location-picker .location-results { position:absolute; top:67px; right:0; left:0; max-height:min(260px,40dvh); margin:0; }
.timeline-location-empty { min-height:58px; display:grid; place-items:center; padding:10px; }
.timeline-location-empty button,.weather-only-head.location-unset { border:0; background:none; color:#52777d; font-weight:700; cursor:pointer; }
.timeline-location-empty button { padding:9px 12px; border:1px dashed #9eb4aa; border-radius:10px; background:#f4f8f5; }
.location-search-status { margin:7px 2px 0; color:#7f8984; font-size:10px; line-height:1.5; }
.location-search-status.selected { color:#39705a; font-weight:600; }
.location-search-status.error { color:#b3583b; }
.location-results { position:absolute; z-index:1002; top:67px; right:0; left:0; overflow:hidden; max-height:220px; overflow-y:auto; border:1px solid #d8dfda; border-radius:12px; background:#fff; box-shadow:0 15px 38px rgba(35,49,42,.16); }
.location-result { display:block; width:100%; padding:12px 13px; border:0; border-bottom:1px solid #edf0ed; background:#fff; text-align:left; cursor:pointer; }
.location-result:last-child { border-bottom:0; }
.location-result:hover,.location-result:focus { background:#f1f6f3; outline:none; }
.location-result strong,.location-result span { display:block; }
.location-result strong { color:var(--ink); font-size:12px; }
.location-result span { margin-top:3px; color:#77817c; font-size:10px; }
.recent-locations { margin-top:12px; }
.recent-locations > span { display:block; margin-bottom:7px; color:#77817c; font-size:10px; font-weight:700; }
.recent-locations > div { display:flex; flex-wrap:wrap; gap:7px; }
.recent-location-chip { width:max-content; max-width:140px; padding:4px 7px; overflow:hidden; border:1px solid #dce3dd; border-radius:999px; background:#fff; color:var(--ink); font-family:inherit; font-size:9px; font-weight:600; line-height:1.2; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
.recent-location-chip:hover,.recent-location-chip:focus { border-color:#9db4a8; background:#f1f6f3; outline:none; }
.activity-color-picker { margin:16px 0 2px; padding:0; border:0; }
.activity-color-picker legend { margin-bottom:9px; color:var(--ink); font-size:11px; font-weight:700; }
.activity-color-picker>div { display:flex; flex-wrap:wrap; gap:8px; }
.activity-color-picker label { position:relative; display:flex; align-items:center; gap:6px; padding:7px 10px 7px 7px; border:1.5px solid #dce2dd; border-radius:999px; background:#fff; cursor:pointer; }
.activity-color-picker input { position:absolute; opacity:0; pointer-events:none; }
.activity-color-picker label:has(input:checked) { border-color:var(--ink); box-shadow:0 0 0 2px rgba(24,49,40,.09); }
.activity-color-picker b { font-size:10px; font-weight:650; }
.color-swatch { width:19px; height:19px; border:2px solid rgba(255,255,255,.85); border-radius:50%; box-shadow:0 0 0 1px rgba(35,49,42,.16); }
.color-swatch.teal { background:#28a78f; }
.color-swatch.coral { background:#e9794d; }
.color-swatch.blue { background:#4c91d8; }
.color-swatch.violet { background:#8a65c8; }
.color-swatch.amber { background:#d59b18; }
.reminder-options { margin:18px 0 2px; padding:14px; border:0; background:#f3f7f5; border-radius:13px; }
.reminder-options legend { padding:0; color:var(--ink); font-size:11px; font-weight:700; }
.reminder-checks { display:flex; flex-wrap:wrap; gap:9px; margin-top:10px; }
.reminder-checks label { display:flex; flex-direction:row; align-items:center; gap:7px; padding:9px 11px; border:1px solid #dce3dd; background:#fff; border-radius:10px; cursor:pointer; font-size:11px; font-weight:600; }
.reminder-checks input { width:16px; height:16px; margin:0; accent-color:var(--green); }
.slider-field { margin:20px 0; }
.slider-field>div { display:flex; justify-content:space-between; font-size:12px; font-weight:600; }
.slider-field output { font:500 12px "DM Mono",monospace; color:var(--blue); }
input[type="range"] { appearance:none; padding:0; height:4px; margin-top:14px; background:#dfe5e1; border:0; border-radius:10px; }
input[type="range"]::-webkit-slider-thumb { appearance:none; width:18px; height:18px; border-radius:50%; background:var(--blue); border:4px solid #fff; box-shadow:0 1px 5px rgba(0,0,0,.2); }
.check-row { display:flex; flex-direction:row; justify-content:space-between; align-items:center; padding:15px 0; border-top:1px solid var(--line); }
.check-row input { width:auto; accent-color:var(--blue); }
.delete-confirm-modal { text-align:center; }
.delete-confirm-icon { width:48px; height:48px; display:grid; place-items:center; margin:0 auto 16px; color:#b75b3d; background:var(--orange-soft); border-radius:15px; }
.delete-confirm-icon svg { width:23px; }
.delete-confirm-modal h2 { margin:0; font-size:21px; }
.delete-confirm-modal>p { margin:10px auto 23px; max-width:330px; color:#747e79; font-size:12px; line-height:1.7; }
.delete-confirm-modal>p strong { color:var(--ink); }
.delete-confirm-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.delete-confirm-actions button { padding:12px 16px; border-radius:11px; font-weight:600; cursor:pointer; }
.danger-button { border:0; color:#fff; background:#b95d40; }
.danger-button:hover { background:#a44d33; }

.toast { position:fixed; right:28px; bottom:28px; display:flex; align-items:center; gap:12px; width:min(360px,calc(100vw - 40px)); padding:15px 16px; background:var(--ink); color:#fff; border-radius:14px; box-shadow:0 18px 45px rgba(20,30,25,.25); transform:translateY(140%); opacity:0; pointer-events:none; transition:.35s ease; z-index:150; }
.toast.show { transform:translateY(0); opacity:1; pointer-events:auto; }
.toast-icon { width:28px; height:28px; display:grid; place-items:center; background:#4f7864; border-radius:50%; }
.toast div { flex:1; }
.toast strong { font-size:12px; }
.toast p { margin:2px 0 0; color:#bdc7c2; font-size:10px; }
.toast button { border:0; background:none; color:#aeb9b3; font-size:20px; cursor:pointer; }
.mobile-nav { display:none; }

@keyframes fadeIn { from { opacity:0; } }
@keyframes modalUp { from { opacity:0; transform:translateY(18px) scale(.98); } }
@keyframes fadeUp { from { opacity:0; transform:translateY(10px); } }

@media (max-width: 1120px) {
  .content-grid { grid-template-columns:minmax(0,1fr) 320px; }
  .risk-summary { grid-template-columns:1fr; }
  .risk-primary { border-right:0; border-bottom:1px solid var(--line); }
  .decision-banner { grid-template-columns:auto 1fr; }
  .decision-actions { grid-column:2; }
  .history-layout { grid-template-columns:1fr; }
}

@media (max-width: 860px) {
  .topbar { height:66px; padding:0 20px; }
  .desktop-nav,.demo-badge { display:none; }
  .app-shell { width:calc(100% - 30px); padding:32px 0 105px; }
  .welcome-row { align-items:flex-start; }
  .welcome-actions .primary-button { display:none; }
  .welcome-actions { align-self:flex-end; }
  .welcome-copy { font-size:13px; }
  .decision-banner { grid-template-columns:auto 1fr; padding:20px; }
  .decision-actions { grid-column:1 / -1; }
  .content-grid { grid-template-columns:1fr; }
  .simple-primary-actions { position:static; padding:0 32px 28px; justify-content:flex-end; }
  .side-column { position:static; }
  .tracked-item { grid-template-columns:auto 1fr auto; }
  .mini-weather { display:none; }
  .mobile-nav { position:fixed; left:12px; right:12px; bottom:12px; z-index:80; display:grid; grid-template-columns:repeat(3,1fr); padding:7px; background:rgba(255,255,252,.94); border:1px solid var(--line); border-radius:18px; box-shadow:0 12px 45px rgba(35,49,42,.16); backdrop-filter:blur(16px); }
  .mobile-nav button { border:0; background:none; display:flex; flex-direction:column; align-items:center; gap:2px; color:#8b948f; font-size:9px; cursor:pointer; }
  .mobile-nav button.active { color:var(--ink); }
  .mobile-nav svg { width:20px; height:20px; }
  .mobile-plus { width:38px; height:38px; display:grid; place-items:center; margin-top:-23px; margin-bottom:1px; background:var(--ink); color:#fff; border-radius:50%; font-size:20px; box-shadow:0 6px 15px rgba(0,0,0,.22); }
  .mobile-plus svg { width:21px; height:21px; stroke-width:2.4; }
}

@media (max-width: 580px) {
  .top-actions .icon-button { display:none; }
  .location-settings-button { width:38px; padding:0; justify-content:center; }
  .location-settings-button span { display:none; }
  .app-shell { padding-top:24px; }
  .welcome-row { margin-bottom:24px; }
  .welcome-row h1 { font-size:26px; }
  .simple-decision-main { padding:22px 20px; }
  .simple-primary-actions { display:grid; grid-template-columns:1fr 1fr; padding:0 20px 20px; }
  .simple-primary-actions .full-dark-button,.simple-primary-actions .text-button { width:100%; }
  .simple-event-line h2 { font-size:19px; }
  .simple-answer { align-items:flex-start; gap:12px; margin:23px 0; padding:17px; }
  .simple-weather-icon { width:44px; height:44px; border-radius:12px; }
  .simple-weather-icon svg { width:35px; }
  .simple-answer h3 { font-size:16px; line-height:1.5; }
  .simple-risk-heading { margin:24px 0 12px; }
  .simple-risk-heading .weather-headline { font-size:30px; line-height:1.2; }
  .weather-facts { gap:6px; margin-top:13px; }
  .weather-facts span { padding:7px 8px; }
  .simple-timeline { padding:0; }
  .simple-timeline b { font-size:12px; }
  .simple-timeline small { font-size:10px; }
  .simple-recommendation { padding:23px 20px; }
  .simple-other { padding:20px 18px 4px; }
  .simple-other article { grid-template-columns:auto 1fr auto; }
  .simple-weather { display:none; }
  .activity-hourly-preview { grid-column:1/-1; grid-row:2; grid-template-columns:repeat(4,minmax(62px,1fr)); overflow-x:auto; padding-top:2px; }
  .simple-other article .simple-row-actions { grid-column:3; grid-row:1; flex-direction:row; align-items:center; justify-content:flex-end; gap:7px; }
  .simple-other article.weather-risk { margin:0; padding-right:12px; padding-left:12px; }
  .list-risk-label { top:-6px; right:13px; width:9px; height:9px; background:#df4f45; font-size:0; }
  .simple-other article.weather-risk .simple-row-actions { padding-top:0; }
  .activity-timeline-view { padding:22px 18px; }
  .calendar-week { gap:3px; padding:5px; }
  .calendar-week button { min-height:66px; padding:8px 2px 6px; }
  .calendar-week strong { font-size:16px; }
  .selected-day-heading { margin-top:22px; }
  .day-schedule { padding-left:0; }
  .day-time-label { left:-62px; width:38px; font-size:13px; }
  .day-time-dot { left:-23px; }
  .day-event-card { grid-template-columns:1fr; padding:15px; }
  .day-event-end { grid-row:2; }
  .empty-day { margin-left:0; }
  .gantt-scroll { margin-right:-18px; padding-right:18px; }
  .gantt-chart { min-width:690px; }
  .gantt-axis,.gantt-row { grid-template-columns:118px 1fr; }
  .gantt-row-label { padding-right:12px; }
  .vertical-gantt { min-height:600px; }
  .vertical-gantt-head { grid-template-columns:46px 1fr 112px; }
  .vertical-gantt-head span:last-child { padding-left:8px; }
  .vertical-gantt-body { height:560px; }
  .vertical-hour-row { grid-template-columns:46px 1fr 112px; height:70px; }
  .vertical-hour-row time { font-size:10px; }
  .vertical-weather { gap:6px; padding:8px 6px; }
  .weather-symbol-dot { width:24px; height:24px; }
  .vertical-weather strong { font-size:10px; }
  .vertical-weather span { font-size:8px; }
  .vertical-weather b { font-size:9px; }
  .vertical-activity-lane { width:112px; }
  .vertical-activity-bar { left:7px; right:6px; padding:7px; }
  .activity-bar-top strong { font-size:11px; }
  .activity-bar-top time { font-size:10px; }
  .activity-bar-weather { display:none; }
  .rain-period-band { left:46px; right:112px; }
  .vertical-combined-scroll { height:calc(100dvh - 150px); margin-right:-18px; padding-right:18px; }
  .combined-gantt-head { grid-template-columns:46px repeat(var(--location-count),var(--activity-column-width,160px)); }
  .single-column .combined-gantt-head { grid-template-columns:46px minmax(var(--activity-column-width,230px),1fr); }
  .combined-hour-row { grid-template-columns:46px repeat(var(--location-count),var(--activity-column-width,160px)); }
  .single-column .combined-hour-row { grid-template-columns:46px minmax(var(--activity-column-width,230px),1fr); }
  .combined-hour-row>time { font-size:12px; }
  .combined-lanes { left:46px; grid-template-columns:repeat(var(--location-count),var(--activity-column-width,160px)); }
  .single-column .combined-lanes { right:0; grid-template-columns:minmax(var(--activity-column-width,230px),1fr); }
  .vertical-location-lane .vertical-activity-bar { --bar-right:6px; }
  .combined-gantt-body { height:512px; }
  .combined-weather-cell { gap:6px; padding:8px 7px; }
  .combined-location-head strong { font-size:13px; }
  .combined-location-head small { font-size:10px; }
  .combined-weather-cell strong { font-size:13px; }
  .combined-weather-cell span { font-size:12px; }
  .combined-weather-cell b { font-size:12px; }
  .activity-timeline-list::before { left:8px; top:42px; bottom:42px; }
  .activity-timeline-item { grid-template-columns:18px 1fr; gap:9px; min-height:0; }
  .timeline-date { grid-column:2; flex-direction:row; align-items:baseline; gap:7px; padding:8px 0; }
  .timeline-date strong { font-size:25px; }
  .timeline-date span { margin:0; font-size:11px; }
  .timeline-track-dot { position:absolute; left:2px; top:12px; margin:0; width:8px; height:8px; }
  .timeline-event-content { grid-column:2; grid-template-columns:1fr; gap:8px; margin-bottom:18px; padding:16px; }
  .timeline-event-content>div { flex-wrap:wrap; }
  .timeline-event-content time { grid-row:2; font-size:20px; }
  .timeline-event-content p,.timeline-detail-button { grid-column:1; }
  .timeline-open-detail { grid-column:1; grid-row:auto; justify-self:start; }
  .activity-detail-card { padding:22px 20px; }
  .activity-detail-header { height:64px; padding:0 15px; }
  .activity-detail-card { width:calc(100% - 30px); margin:20px auto 40px; }
  .activity-detail-top h2 { font-size:21px; }
  .activity-detail-time { grid-template-columns:1fr; padding:18px; }
  .activity-detail-time>span { grid-column:1; }
  .activity-detail-time time { font-size:24px; }
  .activity-detail-alerts { align-items:flex-start; flex-direction:column; gap:9px; }
  .activity-detail-weather { grid-template-columns:1fr; }
  .detail-forecast-heading { align-items:flex-start; }
  .detail-forecast-heading>span { max-width:150px; }
  .detail-forecast-strip { grid-auto-columns:116px; margin-right:-20px; padding-right:20px; }
  .decision-banner { display:flex; flex-wrap:wrap; gap:14px; }
  .decision-icon { width:42px; height:42px; }
  .decision-copy { flex:1; min-width:220px; }
  .decision-copy h2 { font-size:17px; }
  .decision-actions { width:100%; }
  .decision-actions button { flex:1; }
  .event-panel { padding:20px; }
  .event-title-wrap { gap:10px; }
  .event-heading h2 { font-size:18px; }
  .event-details { gap:7px 12px; }
  .risk-metrics { grid-template-columns:repeat(2,1fr); }
  .risk-metrics>div { padding:14px; border-bottom:1px solid var(--line); }
  .risk-metrics>div:nth-child(2) { border-right:0; }
  .risk-metrics>div:nth-child(n+3) { border-bottom:0; }
  .hourly-wrap { padding-bottom:18px; }
  .legend { display:none; }
  .chart-times span:nth-child(even) { visibility:hidden; }
  .change-strip { margin:0 -20px -20px; padding:15px 20px; }
  .change-strip button { font-size:0; }
  .change-strip button span { font-size:18px; }
  .tracked-panel { padding:22px 20px 5px; }
  .tracked-item { grid-template-columns:auto 1fr; }
  .tracked-item .status-pill { grid-column:2; justify-self:start; }
  .suggestion-panel,.monitor-panel { padding:22px 20px; }
  .history-header { align-items:flex-start; }
  .notifications-header { align-items:flex-start; }
  .push-setup { grid-template-columns:auto 1fr; padding:18px; }
  .push-setup-actions { grid-column:1/-1; }
  .push-setup-actions button { flex:1; }
  .notifications-header .ghost-button { display:none; }
  .notification-list article { padding:18px; }
  .history-header h2 { font-size:22px; }
  .history-header .ghost-button { display:block; padding:8px 10px; font-size:10px; }
  .history-chart-panel,.timeline-panel { padding:22px 20px; }
  .h-labels span:nth-child(even) { display:none; }
  .form-grid.two,.form-grid.three { grid-template-columns:1fr; }
  .recent-location-chip { max-width:145px; padding:4px 7px; }
  .modal { padding:24px 20px; max-height:calc(100vh - 30px); overflow:auto; }
  .toast { left:20px; right:20px; bottom:92px; }
}

@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
