.dashboard-observatory{--obs-bg:#101e2c;--obs-panel:#152837d9;--obs-line:#bddcdb24;--obs-title:#eaf6f1;--obs-sub:#a1b9b8;--obs-accent:#8cdec7;--obs-grid:#b3d5cf22;position:relative;isolation:isolate;background:var(--obs-bg);color:var(--obs-title);border:1px solid var(--obs-line);border-radius:30px;padding:30px;overflow:hidden;box-shadow:0 24px 70px #1b34421c;min-width:0}
.dashboard-observatory::before{content:"";position:absolute;z-index:-1;pointer-events:none;width:700px;height:700px;right:-260px;top:-380px;background:radial-gradient(ellipse,#589a9a48,transparent 65%);animation:obs-drift 15s ease-in-out infinite alternate}
.dashboard-observatory::after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0;background:radial-gradient(ellipse at 10% 38%,#68579416,transparent 48%),linear-gradient(135deg,#b9f2e407,transparent 65%)}
.dashboard-observatory[data-style=mist]{--obs-bg:#f0f4ef;--obs-panel:#ffffffd9;--obs-line:#52756d26;--obs-title:#25433e;--obs-sub:#667e73;--obs-accent:#287761;--obs-grid:#54736a1c}
.observatory-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:12px 8px 30px;min-width:0}.observatory-hero-copy{min-width:0;flex:1}.observatory-kicker{display:block;letter-spacing:2.3px;font-size:10px;color:var(--obs-accent);font-weight:600;line-height:1.8}.observatory-hero h2{font-size:clamp(25px,2.8vw,40px);font-weight:500;letter-spacing:-1.2px;margin:19px 0 16px;line-height:1.5;color:var(--obs-title)}.observatory-hero p{color:var(--obs-sub);line-height:1.9;font-size:13px;max-width:510px}.observatory-status{display:inline-flex;align-items:center;gap:9px;font-size:11px;margin-top:20px;color:var(--obs-accent);line-height:1.8}.observatory-status::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--obs-accent);box-shadow:0 0 12px var(--obs-accent);flex-shrink:0}
.observatory-orbit{width:170px;height:170px;flex-shrink:0;position:relative;display:grid;place-items:center;background:radial-gradient(circle,#8addcd14,transparent 60%)}.observatory-orbit i{position:absolute;inset:9px;border:1px solid var(--obs-line);border-radius:50%;transform:rotate(-25deg) scaleY(.6);animation:obs-orbit 18s linear infinite}.observatory-orbit i:nth-child(2){inset:25px;animation-direction:reverse;transform:rotate(55deg) scaleY(.75);border-color:#8bdcc866}.observatory-orbit i::after{content:"";position:absolute;left:20%;top:5%;width:7px;height:7px;background:var(--obs-accent);box-shadow:0 0 18px #a7f3d0;border-radius:50%}.observatory-orbit>span{font-size:51px;color:var(--obs-accent);filter:drop-shadow(0 0 16px #8adecd55);animation:obs-glow 5s ease-in-out infinite alternate}.observatory-orbit small{position:absolute;bottom:1px;letter-spacing:2px;font-size:8px;color:var(--obs-sub)}
.observatory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:25px;padding:0 5px}.observatory-style,.observatory-actions,.observatory-period{display:flex;gap:6px;flex-wrap:wrap}.dashboard-observatory button{min-height:38px;border:1px solid var(--obs-line);background:transparent;color:var(--obs-sub);border-radius:12px;font:inherit;font-size:11px;cursor:pointer;padding:9px 13px;transition:background .2s,transform .2s,color .2s}.dashboard-observatory button:hover{background:#87bda314;color:var(--obs-title);transform:translateY(-1px)}.dashboard-observatory button:focus-visible{outline:2px solid var(--obs-accent);outline-offset:3px}.dashboard-observatory button:disabled{opacity:.5;cursor:wait;transform:none}.dashboard-observatory button[aria-pressed=true]{background:#7bd1b817;color:var(--obs-accent);border-color:#74c5ae55}.dashboard-observatory .observatory-refresh{background:var(--obs-accent);color:var(--obs-bg);font-weight:600;border-color:transparent}
.observatory-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.observatory-stat{border:1px solid var(--obs-line);border-radius:21px;background:linear-gradient(140deg,#ffffff06,transparent),var(--obs-panel);padding:22px;position:relative;min-width:0;animation:obs-enter .55s ease both;animation-delay:var(--enter-delay);transition:transform .25s,border-color .25s}.observatory-stat:hover{transform:translateY(-4px);border-color:var(--accent-color)}.observatory-stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--obs-sub);line-height:1.8}.observatory-spark{color:var(--accent-color);font-size:22px}.observatory-value{font-family:Georgia,"PingFang SC",serif;font-weight:400;font-variant-numeric:tabular-nums;font-size:clamp(27px,3vw,39px);line-height:1.4;letter-spacing:-1px;margin:12px 0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}.observatory-value small{font-family:inherit;letter-spacing:0;font-size:11px;color:var(--obs-sub)}.observatory-stat p{color:var(--obs-sub);font-size:10px;line-height:1.9;margin:0}
.observatory-panel{border:1px solid var(--obs-line);border-radius:24px;background:var(--obs-panel);padding:24px;margin-bottom:20px;min-width:0;backdrop-filter:blur(18px)}.observatory-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.observatory-panel-head h3{font-size:19px;font-weight:500;letter-spacing:-.4px;margin:8px 0;color:var(--obs-title)}.observatory-panel-head p{color:var(--obs-sub);font-size:11px;line-height:1.8;margin:0}.observatory-chart{height:290px;width:100%;min-width:0}.observatory-chart.compact{height:220px}.observatory-chart svg{width:100%;height:100%;display:block;overflow:visible}.observatory-chart svg text{fill:var(--obs-sub)}.observatory-chart svg line{stroke:var(--obs-grid)}.observatory-chart svg path[fill=none]{stroke-dasharray:1;stroke-dashoffset:0;animation:obs-draw 2s ease-out both}.observatory-chart svg rect{transform-origin:bottom;animation:obs-bar .9s ease-out both}
.observatory-legend{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:18px}.observatory-legend>span{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--obs-sub)}.observatory-legend i{display:block;width:6px;height:6px;border-radius:50%;background:var(--legend)}.observatory-period-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--obs-line);padding-top:20px;margin-top:12px}.observatory-period-totals span,.observatory-period-totals strong{display:block}.observatory-period-totals span{font-size:10px;color:var(--obs-sub);margin-bottom:10px}.observatory-period-totals strong{font-weight:500;font-size:19px;color:var(--obs-title)}.observatory-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px;min-width:0}.observatory-columns .observatory-panel{margin:0}.observatory-library{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0}.observatory-library>div{border-top:1px solid var(--obs-line);padding-top:15px;min-width:0}.observatory-library dt{color:var(--obs-sub);font-size:11px;margin-bottom:8px}.observatory-library dd{color:var(--obs-title);font-family:Georgia,serif;font-size:25px;margin:0 0 7px}.observatory-library small{font-size:9px;color:var(--obs-sub);line-height:1.7}.observatory-module-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-top:15px}.observatory-module-list>div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--obs-line);padding-bottom:8px;font-size:11px}.observatory-module-list strong{font-weight:500;color:var(--obs-title)}.observatory-footnote{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:9px;line-height:1.9;color:var(--obs-sub);padding:22px 4px 0}.observatory-error{border:1px solid #e19a9a55;color:#ecacac;background:#cb737310;border-radius:16px;padding:16px;margin-bottom:20px;line-height:1.8;font-size:12px}.observatory-error[hidden]{display:none}.dashboard-observatory[data-style=mist] .observatory-error{color:#9a4a4a}.observatory-skeleton{padding:90px 20px;text-align:center;line-height:2;color:var(--obs-sub);animation:obs-glow 1.6s ease-in-out infinite alternate}
@keyframes obs-drift{to{transform:translate(-60px,100px) scale(1.1)}}@keyframes obs-orbit{to{transform:rotate(335deg) scaleY(.6)}}@keyframes obs-glow{to{opacity:.55}}@keyframes obs-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes obs-draw{from{stroke-dashoffset:1}}@keyframes obs-bar{from{opacity:.1;transform:scaleY(.05)}to{opacity:1;transform:scaleY(1)}}
.dashboard-observatory[data-motion=off] *, .dashboard-observatory[data-motion=off]::before{animation:none!important;transition:none!important}
@media(min-width:1440px){.observatory-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.observatory-stat{padding:19px}.observatory-value{font-size:33px}.observatory-stat-top{font-size:11px}}
@media(max-width:1150px){.observatory-columns{grid-template-columns:1fr}.observatory-library{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.dashboard-observatory{padding:18px 14px;border-radius:24px}.observatory-hero{padding:10px 2px 24px}.observatory-orbit{display:none}.observatory-hero h2{font-size:27px;margin-top:15px;letter-spacing:-.8px}.observatory-hero p{font-size:12px}.observatory-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.observatory-stat{padding:15px 12px;border-radius:17px}.observatory-value{font-size:29px;gap:4px}.observatory-stat-top{font-size:11px}.observatory-spark{font-size:17px}.observatory-panel{padding:18px 12px;border-radius:20px}.observatory-panel-head h3{font-size:18px}.observatory-kicker{font-size:8px;letter-spacing:1.6px}.observatory-chart{height:220px}.observatory-chart.compact{height:180px}.observatory-library{grid-template-columns:1fr 1fr;gap:20px 12px}.observatory-period-totals{gap:8px}.observatory-period-totals strong{font-size:16px}.observatory-legend{gap:13px}.observatory-toolbar{padding:0;gap:10px}.observatory-actions{width:100%;justify-content:space-between}.observatory-period button{padding:7px 12px}.observatory-footnote{font-size:9px}}
@media(prefers-reduced-motion:reduce){.dashboard-observatory *,.dashboard-observatory::before{animation:none!important;transition:none!important}}
