@layer tokens{ :root{ --brand-500:#2563a8; --brand-600:#1c4f8a; --brand-700:#143f6e; --brand-on-light:#143f6e; --brand-on-dark:#82c0f0; --accent-500:#d97706; --accent-300:#f59e0b; --m-route:#0369a1; --m-weather:#d97706; --m-clothes:#7c3aed; --m-play:#0f766e; --m-warn:#b91c1c; --m-route-dark:#38bdf8; --m-weather-dark:#f59e0b; --m-clothes-dark:#a78bfa; --m-play-dark:#2dd4bf; --m-warn-dark:#f87171; --success-500:#0f766e; --info-500:#0369a1; --danger-500:#b91c1c; --warning-500:#d97706; --violet-500:#7c3aed; --bg:#f4f6fa; --bg-deep:#e9eef5; --bg-overlay:rgba(15, 27, 45, 0.85); --card-bg:#ffffff; --card-bg-2:#fbfcfe; --text:#0f1b2d; --text-muted:#5b6b80; --text-subtle:#8895a8; --border:#dfe6f0; --border-strong:#c1cbd9; --focus-ring:#2563a8; --focus-ring-dark:#82c0f0; --grad-hero:linear-gradient(135deg, #1c5fa3 0%, #2c7a4a 50%, #d97706 100%); --grad-primary:linear-gradient(135deg, var(--brand-700) 0%, var(--brand-500) 100%); --grad-amap:linear-gradient(135deg, #2c7a4a 0%, var(--brand-500) 100%); --grad-cold:linear-gradient(135deg, #2980b9 0%, #2c3e50 100%); --grad-hot:linear-gradient(135deg, #e67e22 0%, #b91c1c 100%); --grad-star:linear-gradient(135deg, #c97a1f 0%, var(--violet-500) 100%); --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --fs-xs:12px; --fs-sm:14px; --fs-base:16px; --fs-md:18px; --fs-lg:22px; --fs-xl:28px; --fs-2xl:36px; --fw-normal:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:24px; --r-pill:999px; --sh-1:0 1px 2px rgb(15 27 45 / .06), 0 1px 3px rgb(15 27 45 / .08); --sh-2:0 4px 12px rgb(15 27 45 / .08); --sh-3:0 12px 32px rgb(15 27 45 / .12); --sh-4:0 24px 48px rgb(15 27 45 / .16); --bp-sm:480px; --bp-md:768px; --bp-lg:1024px; --bp-xl:1280px; --container-max:960px; --container-pad:var(--s-5); --z-sticky:100; --z-overlay:200; --z-modal:300; --z-toast:400; --font-sans:ui-sans-serif, -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans CN", sans-serif; --font-mono:ui-monospace, "SF Mono", Menlo, "Cascadia Code", monospace; --ease:cubic-bezier(0.2, 0.6, 0.2, 1); --t-fast:120ms; --t-base:200ms; --t-slow:400ms}:root[data-theme="dark"]{ --bg:#0b1220; --bg-deep:#070d18; --bg-overlay:rgba(0, 0, 0, 0.85); --card-bg:#131c2e; --card-bg-2:#182438; --text:#e5ecf5; --text-muted:#95a3b8; --text-subtle:#6b7a90; --border:#243049; --border-strong:#34425c; --focus-ring:var(--focus-ring-dark); --sh-1:0 1px 2px rgb(0 0 0 / .4); --sh-2:0 4px 12px rgb(0 0 0 / .4); --sh-3:0 12px 32px rgb(0 0 0 / .5); --sh-4:0 24px 48px rgb(0 0 0 / .6); --m-route:var(--m-route-dark); --m-weather:var(--m-weather-dark); --m-clothes:var(--m-clothes-dark); --m-play:var(--m-play-dark); --m-warn:var(--m-warn-dark)}@media (prefers-color-scheme:dark){ :root:not([data-theme]){ --bg:#0b1220; --bg-deep:#070d18; --card-bg:#131c2e; --card-bg-2:#182438; --text:#e5ecf5; --text-muted:#95a3b8; --text-subtle:#6b7a90; --border:#243049; --border-strong:#34425c; --focus-ring:var(--focus-ring-dark); --sh-1:0 1px 2px rgb(0 0 0 / .4); --sh-2:0 4px 12px rgb(0 0 0 / .4); --sh-3:0 12px 32px rgb(0 0 0 / .5); --m-route:var(--m-route-dark); --m-weather:var(--m-weather-dark); --m-clothes:var(--m-clothes-dark); --m-play:var(--m-play-dark); --m-warn:var(--m-warn-dark)}}@media (prefers-reduced-motion:reduce){ :root{ --t-fast:0ms; --t-base:0ms; --t-slow:0ms}}}@layer reset{ *, *::before, *::after{ box-sizing:border-box}*{ margin:0; padding:0}html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; text-size-adjust:100%; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale}body{ min-height:100vh; font-family:var(--font-sans); font-size:var(--fs-base); line-height:1.65; background:var(--bg); color:var(--text); transition:background var(--t-base) var(--ease), color var(--t-base) var(--ease)}img, picture, video, canvas, svg{ display:block; max-width:100%}input, button, textarea, select{ font:inherit; color:inherit}button{ background:none; border:none; cursor:pointer}a{ color:inherit; text-decoration:none}ul, ol{ list-style:none}table{ border-collapse:collapse; width:100%}}@layer base{ body{ font-family:var(--font-sans); font-size:var(--fs-base); line-height:1.65; color:var(--text); background:var(--bg)}h1, h2, h3, h4, h5, h6{ font-weight:var(--fw-semibold); line-height:1.3; color:var(--text)}h1{ font-size:var(--fs-2xl); letter-spacing:0.5px}h2{ font-size:var(--fs-xl)}h3{ font-size:var(--fs-lg)}h4{ font-size:var(--fs-md)}h5{ font-size:var(--fs-base)}h6{ font-size:var(--fs-sm)}p{ margin-bottom:var(--s-3); line-height:1.7}a{ color:var(--brand-500); text-decoration:none; transition:color var(--t-fast) var(--ease)}a:hover{ color:var(--brand-700); text-decoration:underline; text-underline-offset:2px}code, pre{ font-family:var(--font-mono); font-size:0.92em}code{ background:var(--bg-deep); padding:2px 6px; border-radius:var(--r-sm)}pre{ background:#1c2228; color:#e6e8eb; padding:var(--s-4); border-radius:var(--r-md); overflow-x:auto; line-height:1.6}pre code{ background:transparent; padding:0}hr{ border:none; border-top:1px solid var(--border); margin:var(--s-6) 0}strong, b{ font-weight:var(--fw-semibold)}em, i{ font-style:italic}:focus-visible{ outline:3px solid var(--focus-ring); outline-offset:2px; border-radius:var(--r-sm)}:focus:not(:focus-visible){ outline:none}::selection{ background:var(--brand-500); color:white}::-webkit-scrollbar{ width:8px; height:8px}::-webkit-scrollbar-thumb{ background:var(--border-strong); border-radius:var(--r-pill)}::-webkit-scrollbar-thumb:hover{ background:var(--text-subtle)}}@layer layout{ .container{ width:100%; max-width:var(--container-max); margin-inline:auto; padding-inline:var(--container-pad)}.container.narrow{ --container-max:720px}.container.wide{ --container-max:1200px}.stack > * + *{ margin-top:var(--s-4)}.stack.tight > * + *{ margin-top:var(--s-2)}.stack.relaxed > * + *{ margin-top:var(--s-6)}.cluster{ display:flex; flex-wrap:wrap; gap:var(--s-3); align-items:center}.grid{ display:grid; gap:var(--s-4)}.grid.cols-2{ grid-template-columns:repeat(auto-fill, minmax(280px, 1fr))}.grid.cols-3{ grid-template-columns:repeat(auto-fill, minmax(220px, 1fr))}.grid.cols-4{ grid-template-columns:repeat(auto-fill, minmax(180px, 1fr))}.grid.cols-5{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr))}.section{ padding-block:var(--s-7)}.section.tight{ padding-block:var(--s-5)}.section.bg-alt{ background:var(--bg-deep)}.text-xs{ font-size:var(--fs-xs)}.text-sm{ font-size:var(--fs-sm)}.text-md{ font-size:var(--fs-md)}.text-lg{ font-size:var(--fs-lg)}.text-xl{ font-size:var(--fs-xl)}.text-muted{ color:var(--text-muted)}.text-subtle{ color:var(--text-subtle)}.text-center{ text-align:center}.text-right{ text-align:right}.fw-medium{ font-weight:var(--fw-medium)}.fw-semibold{ font-weight:var(--fw-semibold)}.fw-bold{ font-weight:var(--fw-bold)}.hidden{ display:none !important}.sr-only{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0, 0, 0, 0) !important; white-space:nowrap !important; border:0 !important}@media (max-width:480px){ .hide-sm{ display:none}}@media (min-width:769px){ .hide-md-up{ display:none}}@media (max-width:768px){ .hide-md-down{ display:none}}.card-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:var(--s-4)}.card-link{ display:block; text-decoration:none}.card-title-lg{ font-size:var(--fs-xl); color:var(--brand-500); font-weight:var(--fw-bold)}.card-subtitle{ margin-top:var(--s-3); font-weight:var(--fw-medium)}.card-highlight{ margin-top:var(--s-2); font-weight:var(--fw-semibold); color:var(--accent-color, var(--brand-500))}.card-path{ margin-top:var(--s-2)}}@layer components{ .skip-link{ position:absolute; top:-40px; left:var(--s-3); background:var(--brand-500); color:white; padding:var(--s-2) var(--s-4); border-radius:var(--r-sm); font-weight:var(--fw-medium); z-index:var(--z-modal); transition:top var(--t-fast) var(--ease)}.skip-link:focus, .skip-link:focus-visible{ top:var(--s-3); color:white; text-decoration:none}.btn{ display:inline-flex; align-items:center; gap:var(--s-2); padding:var(--s-2) var(--s-4); font-size:var(--fs-sm); font-weight:var(--fw-medium); border-radius:var(--r-md); border:1px solid transparent; cursor:pointer; text-decoration:none; transition:all var(--t-fast) var(--ease); white-space:nowrap; background:var(--card-bg); color:var(--text)}.btn:hover{ text-decoration:none; transform:translateY(-1px); box-shadow:var(--sh-2)}.btn-primary{ background:var(--brand-500); color:white; border-color:var(--brand-500)}.btn-primary:hover{ background:var(--brand-700); border-color:var(--brand-700); color:white}.btn-secondary{ background:var(--card-bg-2); color:var(--brand-500); border-color:var(--border)}.btn-secondary:hover{ background:var(--bg-deep); color:var(--brand-700)}.btn-ghost{ background:transparent; color:var(--text-muted)}.btn-ghost:hover{ background:var(--bg-deep); color:var(--text)}.btn-icon{ padding:var(--s-2); width:36px; height:36px; justify-content:center}.btn-sm{ font-size:var(--fs-xs); padding:4px var(--s-3)}.card{ background:var(--card-bg); border:1px solid var(--border); border-radius:var(--r-lg); padding:var(--s-5); box-shadow:var(--sh-1); transition:box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease)}.card-interactive{ cursor:pointer; text-decoration:none; color:var(--text); display:block}.card-interactive:hover{ text-decoration:none; box-shadow:var(--sh-2); transform:translateY(-2px); border-color:var(--brand-500)}.card-accent{ border-inline-start:4px solid var(--accent-color, var(--brand-500))}.card-accent.route{ --accent-color:var(--m-route)}.card-accent.weather{ --accent-color:var(--m-weather)}.card-accent.clothes{ --accent-color:var(--m-clothes)}.card-accent.play{ --accent-color:var(--m-play)}.card-accent.warn{ --accent-color:var(--m-warn)}.alert{ border-radius:var(--r-md); padding:var(--s-4); border-inline-start:4px solid var(--brand-500); background:var(--bg-deep); color:var(--text); font-size:var(--fs-sm); margin-block:var(--s-3)}.alert-info{ border-color:var(--info-500); background:color-mix(in srgb, var(--info-500) 8%, var(--card-bg))}.alert-success{ border-color:var(--success-500); background:color-mix(in srgb, var(--success-500) 8%, var(--card-bg))}.alert-warning{ border-color:var(--warning-500); background:color-mix(in srgb, var(--warning-500) 8%, var(--card-bg))}.alert-danger, .alert-critical{ border-color:var(--danger-500); background:color-mix(in srgb, var(--danger-500) 8%, var(--card-bg))}.tag{ display:inline-flex; align-items:center; gap:var(--s-1); padding:2px var(--s-2); font-size:var(--fs-xs); font-weight:var(--fw-medium); border-radius:var(--r-pill); background:var(--bg-deep); color:var(--text-muted); border:1px solid var(--border); white-space:nowrap}.tag.route{ background:color-mix(in srgb, var(--m-route) 15%, transparent); color:var(--m-route); border-color:transparent}.tag.weather{ background:color-mix(in srgb, var(--m-weather) 15%, transparent); color:var(--m-weather); border-color:transparent}.tag.clothes{ background:color-mix(in srgb, var(--m-clothes) 15%, transparent); color:var(--m-clothes); border-color:transparent}.tag.play{ background:color-mix(in srgb, var(--m-play) 15%, transparent); color:var(--m-play); border-color:transparent}.tag.warn{ background:color-mix(in srgb, var(--m-warn) 15%, transparent); color:var(--m-warn); border-color:transparent}.topbar{ background:var(--grad-primary); color:white; padding:var(--s-3) 0; position:sticky; top:0; z-index:var(--z-sticky); box-shadow:var(--sh-2)}.topbar .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--s-3)}.topbar .brand{ font-size:var(--fs-md); font-weight:var(--fw-semibold); color:white; text-decoration:none; letter-spacing:0.5px}.topbar .brand:hover{ color:white; text-decoration:none}.topbar .nav-links{ display:flex; gap:var(--s-4); flex-wrap:wrap; align-items:center}.topbar .nav-links a{ color:rgba(255, 255, 255, 0.85); font-size:var(--fs-sm); transition:color var(--t-fast) var(--ease)}.topbar .nav-links a:hover, .topbar .nav-links a.active{ color:white; text-decoration:none}.topbar .nav-links a.active{ font-weight:var(--fw-semibold)}.theme-toggle{ background:rgba(255, 255, 255, 0.15); border:1px solid rgba(255, 255, 255, 0.25); border-radius:var(--r-pill); padding:4px 10px; color:white; font-size:14px; transition:background var(--t-fast) var(--ease); cursor:pointer}.theme-toggle:hover{ background:rgba(255, 255, 255, 0.25)}.hero{ background:var(--grad-hero); color:white; padding:var(--s-9) 0 var(--s-8); text-align:center}.hero h1{ font-size:var(--fs-2xl); font-weight:var(--fw-bold); margin-bottom:var(--s-3); letter-spacing:1px; color:white}.hero .subtitle{ font-size:var(--fs-md); opacity:0.95; margin-bottom:var(--s-5)}.hero .meta{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--s-5); font-size:var(--fs-sm)}.hero .meta-item strong{ color:#ffd966; margin-right:var(--s-1)}.data-table{ width:100%; border-collapse:separate; border-spacing:0; background:var(--card-bg); border:1px solid var(--border); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-1); font-size:var(--fs-sm); table-layout:fixed}.data-table .col-item, .data-table .col-spot{ width:auto}.data-table .col-unit, .data-table .col-qty{ width:22%}.data-table .col-price{ width:38%}.data-table .col-num{ width:16%}.data-table .col-tag{ width:14%}.data-table thead{ background:var(--brand-500); color:white}.data-table thead th{ padding:var(--s-3) var(--s-3); text-align:left; font-weight:var(--fw-semibold); font-size:var(--fs-sm); border-bottom:none}.data-table thead th.num-th{ text-align:right}.data-table tbody tr{ transition:background var(--t-fast) var(--ease)}.data-table tbody tr:hover{ background:color-mix(in srgb, var(--brand-500) 5%, transparent)}.data-table tbody tr:last-child td{ border-bottom:none}.data-table td{ padding:var(--s-3) var(--s-3); border-bottom:1px solid var(--border); vertical-align:top; word-break:break-word; overflow-wrap:anywhere}.data-table .num, .data-table th.num{ text-align:right; font-variant-numeric:tabular-nums; font-family:var(--font-mono); font-size:0.95em; white-space:nowrap}.data-table .muted{ color:var(--text-muted); font-size:var(--fs-sm)}.data-table .hl{ color:var(--text); font-weight:var(--fw-semibold)}.data-table tfoot th, .data-table tfoot td{ background:var(--bg-deep); font-weight:var(--fw-semibold); border-top:2px solid var(--brand-500); border-bottom:none; padding:var(--s-3) var(--s-3)}.data-table .t-right{ text-align:right}.data-table .icon{ text-align:center; font-size:var(--fs-lg); width:40px}.data-table .tag{ display:inline-block; padding:2px 8px; border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:var(--fw-semibold); white-space:nowrap; text-align:center; min-width:60px}.data-table .tag-ok{ background:color-mix(in srgb, var(--m-play) 15%, transparent); color:var(--m-play)}.data-table .tag-warn{ background:color-mix(in srgb, var(--m-warn) 12%, transparent); color:var(--m-warn)}.data-table .tag-up{ background:color-mix(in srgb, var(--m-weather) 15%, transparent); color:var(--m-weather)}.data-table .tag-down{ background:color-mix(in srgb, var(--m-play) 15%, transparent); color:var(--m-play)}.data-table code.tel{ background:var(--bg-deep); padding:2px 8px; border-radius:var(--r-sm); font-family:var(--font-mono); font-weight:var(--fw-semibold); color:var(--brand-500); font-variant-numeric:tabular-nums}:root[data-theme="dark"] .data-table{ background:var(--card-bg); border-color:var(--border)}:root[data-theme="dark"] .data-table thead{ background:var(--brand-700)}:root[data-theme="dark"] .data-table tbody tr:hover{ background:color-mix(in srgb, var(--brand-500) 8%, transparent)}:root[data-theme="dark"] .data-table tfoot th, :root[data-theme="dark"] .data-table tfoot td{ background:var(--bg-deep)}:root[data-theme="dark"] .data-table .tag-ok{ background:color-mix(in srgb, var(--m-play-dark) 18%, transparent); color:var(--m-play-dark)}:root[data-theme="dark"] .data-table .tag-warn{ background:color-mix(in srgb, var(--m-warn-dark) 18%, transparent); color:var(--m-warn-dark)}:root[data-theme="dark"] .data-table .tag-up{ background:color-mix(in srgb, var(--m-weather-dark) 18%, transparent); color:var(--m-weather-dark)}:root[data-theme="dark"] .data-table .tag-down{ background:color-mix(in srgb, var(--m-play-dark) 18%, transparent); color:var(--m-play-dark)}:root[data-theme="dark"] .data-table code.tel{ color:var(--brand-on-dark)}.weather-table{ background:var(--card-bg); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-1); font-size:var(--fs-sm); border:1px solid var(--border)}.weather-table thead{ background:var(--brand-500); color:white}.weather-table th, .weather-table td{ padding:var(--s-3) var(--s-2); text-align:left; border-bottom:1px solid var(--border)}.weather-table tbody tr:hover{ background:color-mix(in srgb, var(--brand-500) 5%, transparent)}.weather-table .star{ color:var(--accent-500); font-weight:var(--fw-bold)}.weather-table a{ color:var(--brand-500); font-weight:var(--fw-semibold)}.day-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:var(--s-4); margin-top:var(--s-5)}.day-card{ background:var(--card-bg); border-radius:var(--r-lg); padding:var(--s-4) var(--s-3); text-decoration:none; color:var(--text); box-shadow:var(--sh-1); border:2px solid transparent; position:relative; overflow:hidden; transition:all var(--t-base) var(--ease); display:block}.day-card:hover{ transform:translateY(-3px); box-shadow:var(--sh-2); border-color:var(--brand-500); text-decoration:none; color:var(--text)}.day-card .day-num{ font-size:26px; font-weight:var(--fw-bold); color:var(--brand-500); line-height:1}.day-card .day-date{ font-size:var(--fs-xs); color:var(--text-muted); margin-top:var(--s-1)}.day-card .day-route{ font-size:var(--fs-sm); margin-top:var(--s-2); color:var(--text); font-weight:var(--fw-medium); line-height:1.4}.day-card .day-temp{ font-size:var(--fs-xs); color:var(--accent-500); margin-top:var(--s-2); font-weight:var(--fw-semibold)}.day-card .badge{ position:absolute; top:var(--s-2); right:var(--s-2); background:var(--accent-500); color:white; font-size:10px; padding:2px var(--s-2); border-radius:var(--r-pill); font-weight:var(--fw-semibold)}.day-card .badge.cold{ background:var(--info-500)}.day-card .badge.hot{ background:var(--danger-500)}.info-card{ background:var(--card-bg); border-radius:var(--r-lg); padding:var(--s-5); box-shadow:var(--sh-1); border:1px solid var(--border); margin-bottom:var(--s-4)}.info-card h3{ color:var(--brand-500); margin-bottom:var(--s-3); font-size:var(--fs-md); font-weight:var(--fw-semibold)}.info-card ul{ padding-left:var(--s-5)}.info-card li{ margin:var(--s-2) 0; line-height:1.6}.section h2{ font-size:var(--fs-xl); color:var(--brand-500); margin-bottom:var(--s-5); border-inline-start:4px solid var(--brand-500); padding-inline-start:var(--s-3); font-weight:var(--fw-semibold)}.day-header{ background:var(--grad-primary); color:white; padding:var(--s-7) 0; position:relative; overflow:hidden}.day-header.cold{ background:var(--grad-cold)}.day-header.hot{ background:var(--grad-hot)}.day-header.star{ background:var(--grad-star)}.day-header .container{ position:relative; z-index:2}.day-header .day-tag{ font-size:var(--fs-sm); opacity:0.9; margin-bottom:var(--s-2)}.day-header h1{ font-size:var(--fs-2xl); color:white; margin-bottom:var(--s-3); letter-spacing:0.5px}.day-header .route-summary{ font-size:var(--fs-md); opacity:0.95}.day-header .badges{ display:flex; gap:var(--s-2); margin-top:var(--s-4); flex-wrap:wrap}.day-header .badges .badge{ background:rgba(255, 255, 255, 0.25); color:white; padding:var(--s-1) var(--s-3); border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:var(--fw-medium); backdrop-filter:blur(4px)}.modules{ padding:var(--s-6) 0}.module{ background:var(--card-bg); border-radius:var(--r-lg); padding:var(--s-5); box-shadow:var(--sh-1); margin-bottom:var(--s-4); border:1px solid var(--border); border-inline-start:4px solid var(--brand-500); transition:box-shadow var(--t-base) var(--ease)}.module:hover{ box-shadow:var(--sh-2)}.module.route{ border-inline-start-color:var(--m-route)}.module.weather{ border-inline-start-color:var(--m-weather)}.module.clothes{ border-inline-start-color:var(--m-clothes)}.module.play{ border-inline-start-color:var(--m-play)}.module.warn{ border-inline-start-color:var(--m-warn)}.module h2{ font-size:var(--fs-md); color:var(--brand-500); margin-bottom:var(--s-3); display:flex; align-items:center; gap:var(--s-2); font-weight:var(--fw-semibold)}.module.route h2{ color:var(--m-route)}.module.weather h2{ color:var(--m-weather)}.module.clothes h2{ color:var(--m-clothes)}.module.play h2{ color:var(--m-play)}.module.warn h2{ color:var(--m-warn)}.module .module-body{ font-size:var(--fs-base); color:var(--text); line-height:1.7}.module .module-body ul{ padding-left:var(--s-5); margin:var(--s-2) 0}.module .module-body li{ margin:var(--s-1) 0}.module .module-body strong{ color:var(--accent-500); font-weight:var(--fw-semibold)}.module .module-body p{ margin:var(--s-2) 0}.module .critical, .module .module-body .critical{ color:var(--m-warn); font-weight:var(--fw-semibold)}.day-nav{ display:flex; justify-content:space-between; margin:var(--s-6) 0; gap:var(--s-3); flex-wrap:wrap}.day-nav a{ display:inline-flex; align-items:center; padding:var(--s-3) var(--s-5); background:var(--brand-500); color:white; text-decoration:none; border-radius:var(--r-md); font-size:var(--fs-sm); font-weight:var(--fw-medium); transition:background var(--t-fast) var(--ease), transform var(--t-fast) var(--ease); flex:1; justify-content:center; min-width:120px}.day-nav a:hover{ background:var(--brand-700); color:white; text-decoration:none; transform:translateY(-1px)}.day-nav a.prev{ background:var(--text-muted)}.day-nav a.prev:hover{ background:var(--text-subtle)}.day-nav a.home{ background:var(--accent-500)}.day-nav a.home:hover{ background:var(--accent-500); filter:brightness(0.9)}.footer{ background:var(--brand-700); color:rgba(255, 255, 255, 0.9); padding:var(--s-5) 0; text-align:center; font-size:var(--fs-sm); margin-top:var(--s-7)}.footer a{ color:#ffd966; text-decoration:none; font-weight:var(--fw-medium)}.footer a:hover{ color:white; text-decoration:underline}.footer p{ margin:var(--s-1) 0}@media (max-width:768px){ :root{ --container-pad:var(--s-4)}.hero{ padding:var(--s-8) 0 var(--s-7)}.hero h1{ font-size:var(--fs-xl)}.hero .subtitle{ font-size:var(--fs-base)}.day-header h1{ font-size:var(--fs-xl)}.day-grid{ grid-template-columns:repeat(2, 1fr); gap:var(--s-3)}.day-nav{ flex-direction:column}.topbar .nav-links{ gap:var(--s-3)}.topbar .nav-links a{ font-size:var(--fs-xs)}}@media (max-width:480px){ .day-grid{ grid-template-columns:1fr}}}@layer weather{ .weather-controls{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-3); margin-bottom:var(--s-4); padding:var(--s-3) var(--s-4); background:color-mix(in srgb, var(--brand-500) 6%, transparent); border:1px solid color-mix(in srgb, var(--brand-500) 18%, transparent); border-radius:var(--r-md); font-size:var(--fs-sm)}.weather-controls label{ display:inline-flex; align-items:center; gap:var(--s-2); font-weight:var(--fw-semibold); color:var(--text)}.weather-controls input[type="date"]{ font:inherit; color:inherit; background:var(--bg); border:1px solid var(--border); border-radius:var(--r-sm); padding:4px 10px; cursor:pointer; font-variant-numeric:tabular-nums; transition:border-color 0.15s, box-shadow 0.15s}.weather-controls input[type="date"]:hover{ border-color:var(--brand-500)}.weather-controls input[type="date"]:focus-visible{ outline:none; border-color:var(--brand-500); box-shadow:0 0 0 3px color-mix(in srgb, var(--brand-500) 25%, transparent)}.weather-controls-hint{ color:var(--text-muted); font-size:var(--fs-xs); font-weight:var(--fw-normal)}:root[data-theme="dark"] .weather-controls{ background:color-mix(in srgb, var(--brand-500) 14%, transparent); border-color:color-mix(in srgb, var(--brand-500) 30%, transparent)}:root[data-theme="dark"] .weather-controls input[type="date"]{ color-scheme:dark}.weather-block{ font-size:var(--fs-base); color:var(--text); line-height:1.7}.weather-block .temp{ font-weight:var(--fw-semibold); color:var(--text)}.weather-block .desc{ color:var(--text-muted)}.weather-block .uv{ font-weight:var(--fw-medium)}.weather-block .uv strong{ color:inherit}.weather-block .wind{ color:var(--text-muted); font-size:var(--fs-sm)}.weather-block .precip{ color:var(--info-500); font-weight:var(--fw-medium); font-size:var(--fs-sm)}.weather-block .live-tag{ display:inline-flex; align-items:center; gap:var(--s-1); background:color-mix(in srgb, var(--success-500) 12%, transparent); color:var(--success-500); padding:2px var(--s-2); border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:var(--fw-semibold); letter-spacing:0.3px; border:1px solid color-mix(in srgb, var(--success-500) 25%, transparent)}.weather-block[data-weather-status="loading"]{ opacity:0.6}.weather-block[data-weather-status="live"]{ padding-inline-start:var(--s-3); border-inline-start:2px solid var(--success-500)}.weather-block[data-weather-status="static"]{ padding-inline-start:var(--s-3); border-inline-start:2px solid var(--border)}.weather-block[data-weather-status="out-of-range"]{ padding-inline-start:var(--s-3); border-inline-start:2px solid var(--danger-500); color:var(--danger-500); font-size:var(--fs-sm)}.weather-block[data-weather-status="out-of-range"] .note{ font-weight:var(--fw-medium)}.weather-block + p, .weather-block + small{ font-size:var(--fs-xs); color:var(--text-subtle); margin-top:var(--s-2)}.weather-refresh{ display:inline-flex; align-items:center; justify-content:center; background:transparent; border:1px solid var(--border); border-radius:var(--r-pill); padding:2px 8px; font-size:13px; line-height:1; cursor:pointer; transition:transform 0.15s, background 0.15s, border-color 0.15s; font-family:inherit; color:inherit}.weather-refresh:hover{ background:color-mix(in srgb, var(--brand-500) 10%, transparent); border-color:var(--brand-500)}.weather-refresh:active{ transform:scale(0.92)}.weather-refresh:focus-visible{ outline:2px solid var(--brand-500); outline-offset:2px}.weather-block[data-weather-status="loading"] .weather-refresh, .weather-block[data-weather-status="loading"] .weather-meta .weather-refresh{ opacity:0.4; pointer-events:none}.weather-meta{ display:inline-flex; align-items:center; gap:var(--s-1); margin-inline-start:var(--s-2); font-size:var(--fs-xs); color:var(--text-subtle)}.weather-timestamp{ font-variant-numeric:tabular-nums; white-space:nowrap}.weather-table{ width:100%; table-layout:fixed}.weather-table th, .weather-table td{ vertical-align:top}.weather-table th:nth-child(1), .weather-table td:nth-child(1){ width:56px}.weather-table th:nth-child(2), .weather-table td:nth-child(2){ width:110px; white-space:nowrap}.weather-table th:nth-child(3), .weather-table td:nth-child(3){ width:auto; word-break:break-word}.weather-table th:nth-child(4), .weather-table td:nth-child(4){ width:340px; max-width:340px}.weather-table th:nth-child(5), .weather-table td:nth-child(5){ width:60px; text-align:center}.weather-table .weather-block{ display:inline-flex; flex-wrap:wrap; align-items:center; gap:4px; font-size:var(--fs-sm); border:0; padding:0}.weather-table .weather-meta{ flex-basis:100%; margin-top:4px; margin-inline-start:0; font-size:var(--fs-xs); color:var(--text-subtle)}@media (max-width:768px){ .weather-table .weather-timestamp{ display:none}.weather-table .weather-meta{ justify-content:flex-end}.weather-table th:nth-child(3), .weather-table td:nth-child(3){ min-width:140px}.weather-table th:nth-child(4), .weather-table td:nth-child(4){ min-width:180px; max-width:220px}.weather-table th:nth-child(2), .weather-table td:nth-child(2){ width:80px}}}@layer print{ @media print{ .topbar, .day-nav, .footer, .theme-toggle, .skip-link, button{ display:none !important}body{ background:white !important; color:black !important; font-size:11pt; line-height:1.4}.container{ max-width:100%; padding:0 1cm}.module, .card, .info-card, .weather-block{ break-inside:avoid; page-break-inside:avoid; box-shadow:none !important; border:1px solid #ccc !important; margin-bottom:0.5cm}.day-header, .hero{ background:#1c5fa3 !important; -webkit-print-color-adjust:exact; print-color-adjust:exact; padding:0.5cm 0}.day-header.hot{ background:#c97a1f !important}.day-header.cold{ background:#2c7a4a !important}.day-header.star{ background:#c97a1f !important}a[href^="http"]:not([href*="gtian.cn"])::after{ content:" (" attr(href) ")"; font-size:9pt; color:#666; word-break:break-all}h1, h2, h3{ color:#000 !important; page-break-after:avoid}.weather-table{ box-shadow:none !important; border:1px solid #ccc}}}