@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{color-scheme:light;--bg: #f4f1ea;--bg-strong: #efe7da;--surface: rgba(255, 251, 245, .84);--surface-strong: rgba(255, 248, 239, .96);--line: rgba(108, 86, 58, .14);--line-strong: rgba(22, 93, 73, .18);--text: #1d1b19;--muted: #655b4e;--accent: #165d49;--accent-strong: #0e4234;--warm: #d96c2f;--warm-strong: #ef8e41;--shadow: 0 24px 70px rgba(76, 52, 31, .12);font-family:Outfit,Aptos,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:radial-gradient(circle at top left,rgba(217,108,47,.18),transparent 34%),radial-gradient(circle at top right,rgba(22,93,73,.14),transparent 24%),linear-gradient(180deg,#fbf7f0,#f1ece2);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 40%),radial-gradient(circle at 20% 20%,rgba(255,255,255,.34),transparent 14%)}body{color:var(--text)}a{color:inherit;text-decoration:none}button{border:0;font:inherit;cursor:pointer}strong{font-weight:700}#app{min-height:100vh}.shell{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px}.workspace-main{min-width:0}.hero-panel,.panel,.metric-card,.forecast-card,.mini-card,.module-card,.stack-step,.convention-item{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:28px;background:var(--surface);box-shadow:var(--shadow)}.workspace-topbar,.user-box{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.hero-panel,.panel,.metric-card,.forecast-card,.mini-card,.module-card,.stack-step,.convention-item{padding:24px}.hero-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;min-height:320px;align-items:stretch;position:relative;overflow:hidden}.dashboard-hero{background:linear-gradient(135deg,rgba(255,255,255,.26),transparent 46%),linear-gradient(160deg,#165d4914,#d96c2f1a),var(--surface)}.dashboard-hero:before,.dashboard-hero:after{content:"";position:absolute;inset:auto;border-radius:999px;pointer-events:none}.dashboard-hero:before{top:-72px;right:-42px;width:240px;height:240px;background:radial-gradient(circle,#d96c2f29,#d96c2f00)}.dashboard-hero:after{bottom:-110px;left:-40px;width:280px;height:280px;background:radial-gradient(circle,#165d4924,#165d4900)}.dashboard-hero>*{position:relative;z-index:1}.loading-panel{grid-template-columns:1fr;min-height:220px}.hero-copy,.weather-hero-copy{display:flex;flex-direction:column;justify-content:space-between}.hero-glance{border-radius:24px;padding:28px;background:linear-gradient(145deg,#165d49f5,#0c352aeb),linear-gradient(180deg,rgba(255,255,255,.16),transparent);color:#f4efe7;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.hero-glance:after{content:"";position:absolute;inset:auto -30px -30px auto;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#ffdbaad9,#ffdbaa00)}.hero-glance-dashboard{min-height:260px}.hero-glance-weather{justify-content:space-between}.home-glance-top{display:flex;align-items:center;gap:14px;margin-top:14px}.hero-glance-weather .weather-glyph{width:58px;height:58px;color:#f7eedf}.hero-glance-time{margin-top:8px;font-family:IBM Plex Mono,Consolas,monospace;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#f4efe7d6}.glance-badge,.stat-pill{display:inline-flex;width:fit-content;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:#ffffff1f;border:1px solid rgba(255,255,255,.18)}.glance-chip-row,.module-card-foot,.hero-status-row{display:flex;flex-wrap:wrap;gap:8px}.glance-chip-row{margin-top:18px}.glance-chip,.hero-chip,.module-chip,.status-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);font-family:IBM Plex Mono,Consolas,monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.glance-chip{border-color:#ffffff2e;background:#ffffff1a;color:#f4efe7d6}.hero-chip,.module-chip{background:#ffffffb3;color:var(--accent-strong)}.status-badge{font-weight:600;color:var(--accent-strong);background:#ffffffdb}.status-badge-live{border-color:#165d4929;background:#ebf6f1f5;color:var(--accent-strong)}.status-badge-building{border-color:#d96c2f29;background:#fff4e9f5;color:#9a4d21}.status-badge-secure{border-color:#0e42342e;background:#e4efebf5;color:#0e4234}.status-badge-neutral{border-color:#6c563a24;background:#fffaf3eb;color:var(--muted)}.glance-temp{margin:18px 0 8px;font-size:clamp(2.4rem,6vw,4.4rem);line-height:.95;font-weight:800;letter-spacing:-.06em}.glance-text,.supporting-copy,.helper,.metric-hint,.panel-note,.user-email,.forecast-meta,.mini-meta,.feedback,.empty-state,.lede,.module-copy,.sidebar-copy,.stack-copy,.nav-copy{color:var(--muted)}.hero-glance .glance-text{color:#f4efe7db;max-width:28ch}.eyebrow,.mini-time,.metric-label,.panel-note,.helper,.nav-kicker,.forecast-day,.convention-path{margin:0;font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{margin-top:10px;font-size:clamp(2.2rem,5vw,3.6rem);line-height:.95;letter-spacing:-.07em}h2{font-size:clamp(2.6rem,7vw,4.4rem);line-height:.92;letter-spacing:-.08em}h3{font-size:1.5rem;letter-spacing:-.04em}.lede{max-width:58ch;margin-top:16px;font-size:1.02rem}.hero-status-row{margin-top:20px}.supporting-copy,.helper,.module-copy,.stack-copy{margin-top:12px}.primary-button,.ghost-button,.primary-link,.ghost-link{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 18px;border-radius:999px;transition:transform .16s ease,opacity .16s ease,background .16s ease}.primary-button,.primary-link{width:fit-content;background:linear-gradient(135deg,var(--warm),var(--warm-strong));color:#fffaf2;box-shadow:0 16px 32px #d96c2f42}.ghost-button,.ghost-link{background:#1d1b190f;color:var(--text)}.primary-button:hover,.ghost-button:hover,.primary-link:hover,.ghost-link:hover{transform:translateY(-1px)}.primary-button:disabled,.ghost-button:disabled{opacity:.68;cursor:wait;transform:none}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.sidebar{position:sticky;top:28px;display:flex;flex-direction:column;gap:24px;min-height:calc(100vh - 76px)}.sidebar-head,.sidebar-foot{display:grid;gap:10px}.sidebar-title{font-size:2rem;letter-spacing:-.06em}.sidebar-nav{display:grid;gap:10px}.nav-link{display:grid;gap:6px;padding:14px 16px;border-radius:22px;border:1px solid transparent;background:#ffffff5c;transition:border-color .16s ease,background .16s ease,transform .16s ease}.nav-link strong{font-size:1.05rem;letter-spacing:-.03em}.nav-link:hover{transform:translateY(-1px);border-color:var(--line)}.nav-link.is-active{border-color:var(--line-strong);background:linear-gradient(135deg,#165d491f,#d96c2f1a),#fffbf5d1}.sidebar-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.sidebar-foot-value{font-size:1.35rem;font-weight:700;letter-spacing:-.04em}.workspace-topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px;padding:24px;border:1px solid var(--line);border-radius:28px;background:#fffbf5c2;box-shadow:var(--shadow)}.user-box{display:flex;gap:16px;align-items:center;padding:14px 16px;border-radius:24px;background:#fffbf5ad;border:1px solid var(--line)}.user-name{font-weight:700}.overview-grid,.modules-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-card{min-height:230px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 42%),var(--surface);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.module-card:before,.module-card:after{content:"";position:absolute;pointer-events:none}.module-card:before{inset:0 0 auto;height:1px;background:linear-gradient(90deg,#165d4900,#165d494d,#165d4900)}.module-card:after{top:-48px;right:-36px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,#165d491f,#165d4900)}.module-card>*{position:relative;z-index:1}.module-card:hover,.stack-step:hover,.convention-item:hover{transform:translateY(-3px);box-shadow:0 30px 80px #4c341f29}.module-card-top,.stack-step-head,.convention-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.module-card-title{display:grid;gap:10px}.module-card-title .module-copy,.convention-item .module-copy,.stack-step .stack-copy{margin-top:0}.module-card-link{margin-top:auto}.module-meta,.stack-note{margin:0;font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.stack-note{margin-top:auto}.module-card-live:after{background:radial-gradient(circle,#165d4929,#165d4900)}.module-card-build:after{background:radial-gradient(circle,#d96c2f2e,#d96c2f00)}.module-card-platform:after{background:radial-gradient(circle,#10433629,#10433600)}.weather-home-card{gap:16px}.weather-home-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.weather-home-time{margin:0;font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-strong)}.weather-home-body{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center}.weather-home-scene .weather-scene{min-height:170px;padding:16px;border-radius:22px}.weather-home-scene .weather-scene-icon{width:min(100%,170px)}.weather-home-copy{min-width:0}.weather-home-temp{font-size:2.2rem;font-weight:800;letter-spacing:-.06em}.weather-home-inline{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.weather-mini-chip{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 10px;border-radius:999px;background:#165d4914;color:var(--accent-strong)}.weather-mini-chip .weather-glyph,.weather-mini-chip .sun-moment-icon{width:20px;height:20px}.module-card-highlight{background:linear-gradient(160deg,#165d4929,#d96c2f1a),var(--surface);border-color:var(--line-strong)}.stack-panel{margin-top:20px}.stack-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.stack-step{min-height:180px;background:var(--surface-strong);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.stack-step:after{content:"";position:absolute;inset:auto -30px -50px auto;width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,#d96c2f1f,#d96c2f00);pointer-events:none}.stack-step>*{position:relative;z-index:1}.stack-index{display:inline-flex;color:var(--accent-strong);font-family:IBM Plex Mono,Consolas,monospace;font-size:.82rem;letter-spacing:.08em}.stack-step-head{margin-bottom:10px}.stack-title{font-size:1.18rem;font-weight:700;letter-spacing:-.03em}.convention-list{display:grid;gap:14px}.convention-item{background:var(--surface-strong);display:grid;gap:12px;position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.convention-item:after{content:"";position:absolute;inset:auto auto -44px -30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#165d491a,#165d4900);pointer-events:none}.convention-item>*{position:relative;z-index:1}.convention-path{color:var(--accent-strong)}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.weather-hero,.panel-wide{grid-column:span 12}.weather-hero{display:grid;grid-template-columns:1.05fr .95fr}.weather-hero-copy,.weather-hero-visual{min-width:0}.weather-hero-visual{display:grid;gap:18px;align-content:space-between}.metrics-grid{grid-column:span 12;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.hero-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.stat-pill{width:auto;min-width:0;flex:1 1 180px;background:#1d1b190d;border-color:#1d1b1914;display:grid;grid-template-columns:auto 1fr auto;gap:10px}.stat-pill strong{color:var(--accent-strong)}.stat-pill span{min-width:0;color:var(--muted)}.weather-scene{position:relative;min-height:250px;padding:22px;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#fff6e6d1,#eef7f4eb),#fffbf5b8;border:1px solid rgba(255,255,255,.4)}.weather-scene-clear{background:radial-gradient(circle at 22% 24%,rgba(255,214,125,.5),transparent 28%),linear-gradient(180deg,#fff5ddf0,#ebf6f1eb)}.weather-scene-cloud,.weather-scene-fog{background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.34),transparent 28%),linear-gradient(180deg,#f2f4f6f0,#eaf0f2f0)}.weather-scene-rain,.weather-scene-storm{background:radial-gradient(circle at 75% 12%,rgba(123,169,201,.22),transparent 28%),linear-gradient(180deg,#e4eef4f0,#dee6eef5)}.weather-scene-snow{background:radial-gradient(circle at 20% 18%,rgba(255,255,255,.48),transparent 24%),linear-gradient(180deg,#f3f8faf2,#eaf1f5f5)}.weather-scene-phase-dawn{background:radial-gradient(circle at 24% 24%,rgba(255,206,144,.42),transparent 30%),linear-gradient(180deg,#ffead2f2,#eef3f6f0)}.weather-scene-phase-dusk{background:radial-gradient(circle at 70% 18%,rgba(255,188,126,.28),transparent 32%),linear-gradient(180deg,#f0e1e0f0,#dfe9f2f5)}.weather-scene.is-night{color:#dbe8f2;border-color:#a7c3dc29;background:radial-gradient(circle at 22% 18%,rgba(184,208,255,.18),transparent 24%),linear-gradient(180deg,#142236f5,#0a1423fa)}.weather-scene.is-night.weather-scene-rain,.weather-scene.is-night.weather-scene-storm{background:radial-gradient(circle at 74% 14%,rgba(110,145,196,.12),transparent 22%),linear-gradient(180deg,#121f30fa,#09111dfa)}.weather-scene.is-night.weather-scene-snow{background:radial-gradient(circle at 24% 20%,rgba(221,238,255,.18),transparent 26%),linear-gradient(180deg,#1b2b3ff5,#0f1827fa)}.weather-scene-temp-hot{box-shadow:inset 0 0 0 1px #ffb7582e,0 24px 70px #d8762929}.weather-scene-temp-freezing,.weather-scene-temp-cold{box-shadow:inset 0 0 0 1px #78abe02e,0 24px 70px #5981aa1a}.weather-scene-backdrop{position:absolute;inset:auto -12% -26% auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,#fff9,#fff0)}.weather-scene-temp-hot .weather-scene-backdrop{background:radial-gradient(circle,#ffd28ab8,#ffd28a00)}.weather-scene-temp-freezing .weather-scene-backdrop,.weather-scene-temp-cold .weather-scene-backdrop{background:radial-gradient(circle,#bfe0ff99,#bfe0ff00)}.weather-scene.is-night .weather-scene-backdrop{background:radial-gradient(circle,#abceff3d,#abceff00)}.scene-sun-glow,.scene-cloud-wash,.scene-storm-flash,.scene-moon-glow,.scene-starfield,.scene-wind-field,.scene-rain-curtain,.scene-snow-curtain,.scene-fog-curtain{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.scene-sun-glow{inset:12% auto auto 8%;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,#ffe28c8c,#ffe28c00);filter:blur(6px)}.scene-moon-glow{inset:10% auto auto 12%;width:126px;height:126px;border-radius:50%;background:radial-gradient(circle,#cbe1ff57,#cbe1ff00);filter:blur(8px)}.scene-cloud-wash{inset:auto auto 18% 10%;width:180px;height:80px;border-radius:999px;background:linear-gradient(90deg,#fff6,#fff0);filter:blur(8px)}.scene-storm-flash{background:radial-gradient(circle at 32% 24%,#ffffffa3,#fff0);opacity:0}.scene-starfield{overflow:hidden}.scene-star{position:absolute;width:4px;height:4px;border-radius:50%;background:#f1f7ffe6;box-shadow:0 0 10px #d6e8ff66}.scene-star.star-a{top:16%;left:16%}.scene-star.star-b{top:24%;left:32%}.scene-star.star-c{top:12%;left:48%}.scene-star.star-d{top:28%;left:64%}.scene-star.star-e{top:18%;left:78%}.scene-star.star-f{top:36%;left:22%}.scene-wind-field{overflow:hidden}.wind-streak{position:absolute;display:block;height:2px;border-radius:999px;background:linear-gradient(90deg,#165d4900,#165d493d,#165d4900);opacity:.34}.wind-streak-a{top:24%;left:8%;width:120px}.wind-streak-b{top:38%;left:22%;width:90px}.wind-streak-c{top:62%;left:14%;width:136px}.scene-rain-drop,.scene-snow-dot,.scene-fog-band{position:absolute;display:block}.scene-rain-drop{top:-10%;width:2px;height:52px;border-radius:999px;background:linear-gradient(180deg,#fff0,#6ca9d5f2);opacity:var(--scene-rain-opacity, .42)}.scene-rain-drop.drop-1{left:18%}.scene-rain-drop.drop-2{left:32%}.scene-rain-drop.drop-3{left:49%}.scene-rain-drop.drop-4{left:66%}.scene-rain-drop.drop-5{left:82%}.scene-snow-dot{top:-6%;width:8px;height:8px;border-radius:50%;background:#ffffffe0;box-shadow:0 0 0 2px #add0e82e}.scene-snow-dot.dot-1{left:16%}.scene-snow-dot.dot-2{left:28%}.scene-snow-dot.dot-3{left:46%}.scene-snow-dot.dot-4{left:64%}.scene-snow-dot.dot-5{left:80%}.scene-fog-band{left:-8%;width:70%;height:18px;border-radius:999px;background:linear-gradient(90deg,#d5e0e71a,#d5e0e7b8,#d5e0e71a);filter:blur(2px)}.scene-fog-band.band-1{top:24%}.scene-fog-band.band-2{top:44%;width:82%}.scene-fog-band.band-3{top:64%;width:64%}.weather-scene-icon{position:relative;z-index:1;display:block;width:min(100%,280px);margin:0 auto;color:var(--accent-strong);filter:drop-shadow(0 18px 24px rgba(49,76,66,.08))}.weather-scene-icon svg,.metric-icon svg,.weather-glyph svg,.sun-moment-icon svg{display:block;width:100%;height:auto;overflow:visible}.metric-top,.mini-card-top,.forecast-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric-top{margin-bottom:10px}.weather-timing-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.timing-chip{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border-radius:20px;border:1px solid var(--line);background:#fffbf5b3}.timing-copy{min-width:0;display:grid;gap:2px}.timing-copy span{font-family:IBM Plex Mono,Consolas,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.timing-copy strong{min-width:0;font-size:.95rem;letter-spacing:-.02em}.timing-chip .metric-icon,.timing-chip .weather-glyph,.timing-chip .sun-moment-icon{width:40px;height:40px;flex:0 0 40px}.metric-top .metric-label{color:var(--accent-strong)}.metric-icon,.weather-glyph,.sun-moment-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.metric-icon{width:48px;height:48px;padding:8px;border-radius:16px;background:#165d4914;color:var(--accent-strong);--metric-accent: currentColor}.metric-icon.is-hot,.metric-icon.is-heavy,.metric-icon.is-strong{background:#d96c2f1f;color:#b5521f;--metric-accent: #d96c2f}.metric-icon.is-cold,.metric-icon.is-freezing,.metric-icon.is-humid{background:#67a8d824;color:#356f98;--metric-accent: #67a8d8}.metric-icon.is-low,.metric-icon.is-dry{background:#ebb16724;color:#b86b24;--metric-accent: #d58b3c}.metric-icon.is-high,.metric-icon.is-balanced,.metric-icon.is-steady,.metric-icon.is-light,.metric-icon.is-breezy,.metric-icon.is-warm{--metric-accent: currentColor}.weather-glyph{width:42px;height:42px;color:var(--accent-strong)}.sun-moment-icon{width:22px;height:22px;color:var(--accent-strong)}.metric-icon path,.metric-icon circle,.metric-icon line,.metric-icon polyline,.weather-glyph path,.weather-glyph circle,.weather-scene-icon path,.weather-scene-icon circle,.sun-moment-icon path,.sun-moment-icon circle{vector-effect:non-scaling-stroke}.icon-sun-ring,.icon-sun-rays path,.sun-rise-line,.sun-moment-arrow,.sun-horizon,.sun-arc{stroke:#e9a737;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.icon-sun-core,.sun-core{fill:#ffbf57}.icon-moon-shape{fill:#dbe8f3;stroke:#abc2d8;stroke-width:1.8;stroke-linejoin:round}.icon-star{fill:#f6e29d;stroke:#f6e29d;stroke-width:1.4;stroke-linecap:round}.weather-scene-icon .icon-moon-shape,.weather-glyph .icon-moon-shape{filter:drop-shadow(0 0 12px rgba(221,236,255,.24))}.icon-cloud path,.storm-cloud path{fill:#f7f0e8;stroke:#c6b8a5;stroke-width:2.5;stroke-linejoin:round}.icon-rain .drop,.rain-shell{fill:var(--metric-accent, #67a8d8);stroke:var(--metric-accent, #3a77a4);stroke-width:1.6}.drop-shell{fill:var(--metric-accent, #a5d4ef);stroke:var(--metric-accent, #4c8fba);stroke-width:1.8}.drop-highlight,.rain-highlight{fill:none;stroke:#ffffffe6;stroke-width:2.1;stroke-linecap:round}.rain-wave{fill:none;stroke:var(--metric-accent, #67a8d8);stroke-width:2.2;stroke-linecap:round}.icon-snow .flake{stroke:#77a7d8;stroke-width:2.3;stroke-linecap:round}.icon-fog path{fill:none;stroke:#9bb0b9;stroke-width:2.8;stroke-linecap:round}.icon-lightning{fill:#ffc64c;stroke:#d89c1d;stroke-width:1.8;stroke-linejoin:round}.thermo-body,.compass-ring,.compass-guides,.gauge-ring,.gauge-arc,.clock-ring{fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}.thermo-fill,.thermo-bulb{stroke:none;fill:var(--metric-accent)}.compass-core,.gauge-core,.clock-core{fill:currentColor}.compass-needle{fill:var(--metric-accent);stroke:var(--metric-accent);stroke-width:1.4;stroke-linejoin:round}.gauge-needle,.clock-hand-hour,.clock-hand-minute{stroke:currentColor;stroke-width:2.8;stroke-linecap:round}.gauge-needle{stroke:var(--metric-accent)}.sun-times{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.sun-chip{display:inline-flex;align-items:center;gap:6px;margin:0;padding:8px 10px;border-radius:999px;background:#165d4914}.metric-value{margin-top:8px;font-size:2rem;font-weight:700;letter-spacing:-.05em}.metric-hint{margin-top:6px;font-size:.92rem}.panel-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.hourly-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.mini-card{min-height:162px;background:var(--surface-strong)}.mini-card-top{margin-bottom:8px}.mini-temp{margin-top:12px;font-size:1.8rem;font-weight:700;letter-spacing:-.05em}.mini-label{margin-top:8px;font-weight:600}.mini-meta,.forecast-meta{margin-top:8px;font-size:.92rem}.daily-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.forecast-card{background:linear-gradient(180deg,#ffffffb8,#f9f5eee0),var(--surface)}.forecast-top{margin-bottom:10px}.forecast-day{color:var(--accent-strong)}.forecast-label{margin-top:12px;font-size:1.1rem;font-weight:700}.forecast-temps{margin-top:10px;font-size:1.8rem;font-weight:700;letter-spacing:-.05em}.feedback{margin:0 0 18px;padding:14px 16px;border-radius:18px;border:1px solid var(--line);background:#fffbf5cc}.feedback-error{color:#7c2513;border-color:#a5361b29;background:#ffeee8e0}.feedback-info{color:var(--accent-strong);border-color:#165d4929;background:#ebf6f1e0}.billing-metrics-grid{margin-top:20px}.billing-company-card{min-height:170px}.billing-company-next{margin-top:14px;font-family:IBM Plex Mono,Consolas,monospace;font-size:.88rem;color:var(--accent-strong)}.billing-company-foot{margin-top:6px;color:var(--muted)}.billing-table-wrap{overflow:auto}.billing-table{width:100%;min-width:760px;border-collapse:collapse}.billing-table th,.billing-table td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.billing-table th{font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.billing-alert{padding:18px 20px;border-radius:22px;border:1px solid var(--line);background:var(--surface-strong)}.billing-alert strong{display:block;margin-bottom:8px}.billing-alert-warning{border-color:#d96c2f2e;background:#fff5eceb}.billing-alert-success{border-color:#165d4929;background:#ebf6f1e0}.billing-status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--line);background:#ffffffd9;font-size:.82rem;line-height:1.2;color:var(--text)}.billing-status-ready,.billing-status-drafted,.billing-status-sent{border-color:#165d4924;background:#ebf6f1e0}.billing-status-recipient-missing,.billing-status-pdf-missing,.billing-status-warning{border-color:#d96c2f29;background:#fff5ece6}.billing-status-error{border-color:#a33a2c2e;background:#ffefebeb}.billing-row-actions{display:flex;flex-wrap:wrap;gap:8px}.billing-mini-button{min-width:112px;padding-inline:14px}.billing-preview-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:18px}.billing-preview-card{border-radius:22px;border:1px solid var(--line);background:#ffffffd1;padding:18px 20px}.billing-preview-number{font-size:1.5rem}.billing-preview-frame-wrap{overflow:hidden;border-radius:24px;border:1px solid var(--line);background:#f6f2eb}.billing-preview-frame{width:100%;min-height:980px;border:0;background:#fff}.billing-manual-controls{display:flex;flex-wrap:wrap;align-items:end;gap:14px;margin-top:14px}.billing-manual-year{display:grid;gap:6px;color:var(--muted);font-size:.92rem}.billing-manual-year input{width:140px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:#ffffffe6;color:var(--ink);font:inherit}.empty-state{min-height:88px;display:grid;place-items:center}.icon-sun-rays,.sun-rise-line,.icon-star,.sun-moment-arrow,.gauge-needle-wrap,.clock-hand-minute,.clock-hand-hour,.icon-cloud,.icon-fog path,.drop,.drop-shell,.flake,.icon-lightning,.thermo-fill,.thermo-bulb,.rain-wave{transform-origin:32px 32px}.icon-sun-rays{animation:spin-sun 18s linear infinite}.icon-sun-core,.sun-core{animation:pulse-sun 3s ease-in-out infinite;transform-origin:32px 32px}.icon-cloud{animation:drift-cloud 5.4s ease-in-out infinite}.drop-a{animation:rain-fall 1.4s ease-in-out infinite}.drop-b{animation:rain-fall 1.4s ease-in-out infinite .24s}.drop-c{animation:rain-fall 1.4s ease-in-out infinite .48s}.flake-a{animation:snow-drift 3.1s ease-in-out infinite}.flake-b{animation:snow-drift 3.1s ease-in-out infinite .4s}.flake-c{animation:snow-drift 3.1s ease-in-out infinite .8s}.icon-fog path:nth-child(1){animation:fog-slide 4.8s ease-in-out infinite}.icon-fog path:nth-child(2){animation:fog-slide 4.8s ease-in-out infinite .4s}.icon-fog path:nth-child(3){animation:fog-slide 4.8s ease-in-out infinite .8s}.icon-lightning{animation:storm-flash 3.2s steps(1,end) infinite}.compass-needle-wrap{transform-box:fill-box;transform-origin:center;transform:rotate(var(--needle-rotation, 0deg))}.compass-needle{animation:compass-breathe 2.8s ease-in-out infinite;transform-origin:32px 32px}.drop-shell{animation:humidity-bob 2.8s ease-in-out infinite}.gauge-needle-wrap{animation:gauge-swing 3.2s ease-in-out infinite}.clock-hand-minute{animation:clock-minute 8s linear infinite}.clock-hand-hour{animation:clock-hour 24s linear infinite}.thermo-fill,.thermo-bulb{animation:thermo-pulse 2.6s ease-in-out infinite}.sun-rise-line,.sun-moment-arrow{animation:sun-bob 2.4s ease-in-out infinite}.icon-star.dot-a,.icon-star.dot-b,.icon-star.sparkle-a,.icon-star.sparkle-b{animation:star-twinkle 3.4s ease-in-out infinite}.icon-star.dot-b,.icon-star.sparkle-b{animation-delay:.8s}.wave-a{animation:rain-ripple 2s ease-in-out infinite}.wave-b{animation:rain-ripple 2s ease-in-out infinite .2s}.wave-c{animation:rain-ripple 2s ease-in-out infinite .4s}.wind-streak-a{animation:scene-wind-slide var(--scene-wind-duration, 4.6s) linear infinite}.wind-streak-b{animation:scene-wind-slide var(--scene-wind-duration, 4.6s) linear infinite .8s}.wind-streak-c{animation:scene-wind-slide var(--scene-wind-duration, 4.6s) linear infinite 1.6s}.scene-rain-drop.drop-1{animation:scene-rain-fall var(--scene-rain-duration, 1.5s) linear infinite}.scene-rain-drop.drop-2{animation:scene-rain-fall var(--scene-rain-duration, 1.5s) linear infinite .28s}.scene-rain-drop.drop-3{animation:scene-rain-fall var(--scene-rain-duration, 1.5s) linear infinite .52s}.scene-rain-drop.drop-4{animation:scene-rain-fall var(--scene-rain-duration, 1.5s) linear infinite .16s}.scene-rain-drop.drop-5{animation:scene-rain-fall var(--scene-rain-duration, 1.5s) linear infinite .68s}.scene-snow-dot.dot-1{animation:scene-snow-fall 5.8s linear infinite}.scene-snow-dot.dot-2{animation:scene-snow-fall 6.4s linear infinite .6s}.scene-snow-dot.dot-3{animation:scene-snow-fall 5.4s linear infinite 1.2s}.scene-snow-dot.dot-4{animation:scene-snow-fall 6.8s linear infinite .9s}.scene-snow-dot.dot-5{animation:scene-snow-fall 5.9s linear infinite 1.8s}.scene-fog-band.band-1{animation:fog-slide 6.6s ease-in-out infinite}.scene-fog-band.band-2{animation:fog-slide 7.4s ease-in-out infinite .6s}.scene-fog-band.band-3{animation:fog-slide 6.2s ease-in-out infinite 1.2s}.scene-sun-glow{animation:pulse-sun 4.2s ease-in-out infinite}.scene-star.star-a,.scene-star.star-c,.scene-star.star-e{animation:star-twinkle 3.8s ease-in-out infinite}.scene-star.star-b,.scene-star.star-d,.scene-star.star-f{animation:star-twinkle 4.6s ease-in-out infinite .9s}.scene-storm-flash{animation:scene-storm-sky 4.2s steps(1,end) infinite}.weather-scene-wind-calm .scene-wind-field{opacity:.18}.weather-scene-wind-light .scene-wind-field{opacity:.32}.weather-scene-wind-breezy .scene-wind-field{opacity:.56}.weather-scene-wind-strong .scene-wind-field{opacity:.82}.weather-scene-rain-dry .scene-rain-curtain{opacity:.18}.weather-scene-rain-light .scene-rain-curtain{opacity:.46}.weather-scene-rain-steady .scene-rain-curtain,.weather-scene-rain-heavy .scene-rain-curtain{opacity:1}@keyframes spin-sun{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-sun{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes drift-cloud{0%,to{transform:translate(0)}50%{transform:translate(6px)}}@keyframes rain-fall{0%,to{transform:translateY(-1px);opacity:.92}50%{transform:translateY(5px);opacity:.58}}@keyframes snow-drift{0%,to{transform:translate(0)}50%{transform:translate(2px,4px)}}@keyframes fog-slide{0%,to{transform:translate(0);opacity:.78}50%{transform:translate(5px);opacity:1}}@keyframes storm-flash{0%,78%,to{opacity:.82}80%,84%{opacity:1}82%{opacity:.35}}@keyframes compass-breathe{0%,to{transform:scale(1)}50%{transform:scale(calc(1 + var(--wind-icon-pulse, .08)))}}@keyframes humidity-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes gauge-swing{0%,to{transform:rotate(-10deg)}50%{transform:rotate(10deg)}}@keyframes clock-minute{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes clock-hour{0%{transform:rotate(0)}to{transform:rotate(30deg)}}@keyframes thermo-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes sun-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes rain-ripple{0%,to{opacity:.75}50%{opacity:1}}@keyframes star-twinkle{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}@keyframes scene-wind-slide{0%{transform:translate(calc(var(--scene-wind-shift, 16px) * -1));opacity:0}20%,80%{opacity:1}to{transform:translate(var(--scene-wind-shift, 16px));opacity:0}}@keyframes scene-rain-fall{0%{transform:translateY(-10%) translate(0);opacity:0}15%,85%{opacity:var(--scene-rain-opacity, .42)}to{transform:translateY(122%) translate(calc(var(--scene-wind-shift, 16px) * .15));opacity:0}}@keyframes scene-snow-fall{0%{transform:translate3d(0,-10%,0);opacity:0}20%,85%{opacity:.95}to{transform:translate3d(10px,128%,0);opacity:0}}@keyframes scene-storm-sky{0%,72%,to{opacity:0}74%,78%{opacity:.36}76%{opacity:.8}}@media(max-width:1100px){.workspace{grid-template-columns:1fr}.sidebar{position:static;min-height:unset}.overview-grid,.modules-grid,.stack-grid,.metrics-grid,.hourly-strip,.daily-grid,.billing-preview-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-home-body,.weather-timing-row,.hero-panel,.weather-hero{grid-template-columns:1fr}.weather-scene{min-height:220px}.weather-scene-icon{width:min(100%,220px)}}@media(prefers-reduced-motion:reduce){.icon-sun-rays,.icon-sun-core,.sun-core,.icon-cloud,.icon-star,.drop,.drop-shell,.flake,.icon-fog path,.icon-lightning,.compass-needle,.gauge-needle-wrap,.clock-hand-minute,.clock-hand-hour,.thermo-fill,.thermo-bulb,.sun-rise-line,.sun-moment-arrow,.rain-wave,.wind-streak,.scene-rain-drop,.scene-snow-dot,.scene-fog-band,.scene-star,.scene-sun-glow,.scene-storm-flash{animation:none!important}}@media(max-width:760px){.shell{width:min(100% - 24px,1240px);padding:20px 0 34px}.workspace-topbar,.user-box,.panel-heading{flex-direction:column;align-items:flex-start}.hero-panel,.panel,.metric-card,.forecast-card,.mini-card,.module-card,.stack-step,.convention-item,.workspace-topbar{border-radius:22px}.hero-panel{min-height:unset}.weather-scene{min-height:190px}.timing-chip{width:100%}.overview-grid,.modules-grid,.stack-grid,.metrics-grid,.hourly-strip,.daily-grid,.billing-preview-meta{grid-template-columns:1fr}.weather-home-head{flex-direction:column}.module-card-top,.convention-head,.stack-step-head{flex-direction:column;align-items:flex-start}.hero-actions{flex-direction:column;align-items:stretch}.primary-link,.ghost-link,.primary-button,.ghost-button{width:100%}}.billing-dashboard-shell{display:grid;gap:20px}.billing-toolbar,.billing-section-actions{display:flex;flex-wrap:wrap;gap:10px}.billing-section{overflow:hidden}.billing-section-toggle{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:0;background:transparent;text-align:left}.billing-section-copy{display:grid;gap:8px}.billing-section-copy h3{font-size:1.25rem}.billing-section-side{display:grid;gap:8px;justify-items:end}.billing-section-summary,.billing-section-chevron{font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.billing-section-body{margin-top:18px;display:grid;gap:18px}.billing-dense .panel,.billing-dense .metric-card,.billing-dense .convention-item,.billing-dense .report-card,.billing-dense .history-group-card{padding:18px}.report-grid{display:grid;gap:14px}.report-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.report-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.report-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.report-card,.history-group-card{padding:20px;border-radius:24px;border:1px solid var(--line);background:#ffffffc7}.report-card h3,.history-group-card h3{font-size:1.12rem;letter-spacing:-.03em}.report-big{margin-top:14px;font-size:1.7rem;font-weight:700;letter-spacing:-.05em}.config-card{display:grid;gap:16px}.billing-preview-editor{display:grid;gap:14px}.billing-form-grid,.settings-grid{display:grid;gap:12px}.billing-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.billing-form-grid label,.settings-row{display:grid;gap:6px}.billing-form-grid label span,.settings-row p{color:var(--muted)}.billing-form-grid input,.billing-form-grid select,.billing-form-grid textarea,.settings-row input{width:100%;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:#ffffffe6;color:var(--text);font:inherit}.billing-form-grid textarea{resize:vertical}.billing-form-span-2{grid-column:span 2}.settings-grid-tight{margin-top:8px}.settings-row{grid-template-columns:minmax(0,1fr) minmax(200px,1fr) auto;align-items:end;padding:12px 0;border-bottom:1px solid var(--line)}.settings-row:last-child{border-bottom:0}.billing-inline-toggle{display:flex!important;align-items:center;gap:10px;padding-top:24px}.billing-inline-toggle input{width:auto}.stat-row{display:flex;justify-content:space-between;gap:12px;margin-top:10px;color:var(--muted)}.stat-row strong{color:var(--text)}.timeline-wrap{overflow:auto}.timeline-table{width:100%;min-width:880px;border-collapse:collapse}.timeline-table th,.timeline-table td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.timeline-table th{font-family:IBM Plex Mono,Consolas,monospace;font-size:.76rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.timeline-rule{min-width:220px}.timeline-rule strong,.timeline-cell strong,.report-month-cell strong{display:block}.timeline-rule span,.timeline-cell span,.report-month-cell span{color:var(--muted);font-size:.9rem}.timeline-cell,.report-month-cell{min-width:120px}.timeline-cell.issued{background:#165d4914}.timeline-cell.missing{background:#d96c2f1a}.timeline-cell.future{background:#1d1b190a}.timeline-cell.na{color:var(--muted)}.history-groups,.history-month-list,.history-chip-list{display:grid;gap:14px}.history-group-head,.history-month-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.history-group-head span,.history-month-head span,.history-chip span{color:var(--muted)}.history-month-block{padding:16px;border-radius:20px;border:1px solid var(--line);background:#fffbf5cc}.history-chip{padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:#ffffffd1;display:grid;gap:4px}@media(max-width:1100px){.report-grid-2,.report-grid-4,.report-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.billing-toolbar,.billing-section-toggle,.billing-section-side,.history-group-head,.history-month-head,.stat-row{flex-direction:column;align-items:flex-start}.billing-form-grid,.settings-row,.report-grid-2,.report-grid-4,.report-grid-3{grid-template-columns:1fr}.billing-form-span-2{grid-column:span 1}}
