/* Earth Pulse — Earth API 自有的轨道观测视觉语言 */
.ec-pulse-grid{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px;margin-bottom:16px}.ec-pulse-card{position:relative;overflow:hidden;padding:17px;border:1px solid rgba(34,211,238,.18);border-radius:16px;background:linear-gradient(145deg,rgba(8,47,73,.96),rgba(15,23,42,.96));color:#e0f2fe;box-shadow:0 12px 30px rgba(2,132,199,.09)}.ec-pulse-card:after{content:"";position:absolute;width:65px;height:65px;border:1px solid rgba(34,211,238,.2);border-radius:50%;right:-20px;top:-22px;box-shadow:0 0 0 12px rgba(139,92,246,.05)}.ec-pulse-card span,.ec-pulse-card small{display:block;color:#7dd3fc;font-size:11px;letter-spacing:.08em}.ec-pulse-card strong{display:block;margin:8px 0 4px;font:700 22px var(--ec-font-mono);color:#fff}.ec-pulse-card small{color:#94a3b8;letter-spacing:0}.ec-pulse-donut-wrap{min-height:240px;display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}.ec-orbit-chart{width:180px;height:180px;border-radius:50%;padding:20px;box-shadow:0 0 35px rgba(34,211,238,.16);position:relative}.ec-orbit-chart:before{content:"";position:absolute;inset:-8px;border:1px dashed rgba(34,211,238,.25);border-radius:50%}.ec-orbit-chart>div{width:100%;height:100%;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--ec-bg-elevated,#fff);box-shadow:inset 0 0 22px rgba(14,165,233,.08)}.ec-orbit-chart strong{font:700 18px var(--ec-font-mono);color:var(--ec-text-primary)}.ec-orbit-chart span{font-size:10px;color:var(--ec-text-muted);letter-spacing:.12em}.ec-orbit-legend{display:grid;gap:8px;min-width:150px}.ec-orbit-legend span{display:grid;grid-template-columns:10px 1fr auto;gap:7px;align-items:center;font-size:12px;color:var(--ec-text-secondary)}.ec-orbit-legend i{width:8px;height:8px;border-radius:50%;box-shadow:0 0 8px currentColor}.ec-orbit-legend b{font-family:var(--ec-font-mono);color:var(--ec-text-primary)}
.ec-observe-drawer{position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden}.ec-observe-drawer.open{pointer-events:auto;visibility:visible}.ec-observe-backdrop{position:absolute;inset:0;background:rgba(2,6,23,.62);backdrop-filter:blur(5px);opacity:0;transition:.25s}.ec-observe-drawer.open .ec-observe-backdrop{opacity:1}.ec-observe-panel{position:absolute;right:0;top:0;height:100%;width:min(940px,96vw);overflow:auto;background:linear-gradient(180deg,#061526 0,#0b1f35 220px,var(--ec-bg-page,#f8fafc) 500px);box-shadow:-30px 0 70px rgba(2,6,23,.35);transform:translateX(102%);transition:transform .34s cubic-bezier(.2,.8,.2,1)}.ec-observe-drawer.open .ec-observe-panel{transform:none}.ec-observe-head{height:150px;padding:30px 36px;color:white;display:flex;justify-content:space-between;align-items:flex-start;background-image:radial-gradient(circle at 78% 20%,rgba(34,211,238,.24),transparent 28%),radial-gradient(circle at 70% 110%,rgba(139,92,246,.22),transparent 36%)}.ec-observe-head h2{font-size:25px;margin:8px 0}.ec-observe-head p{color:#94a3b8;font-family:var(--ec-font-mono);font-size:12px}.ec-observe-kicker{font-size:10px;letter-spacing:.2em;color:#67e8f9}.ec-observe-close{width:38px;height:38px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:rgba(255,255,255,.1);color:white;font-size:25px;cursor:pointer;transition:transform .2s ease,background .2s ease}.ec-observe-close:hover{background:rgba(255,255,255,.18);transform:rotate(90deg)}.ec-observe-body{padding:0 30px 40px;margin-top:-18px}.ec-observe-loading{padding:80px;text-align:center;color:#94a3b8}.ec-observe-hero{display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.97);border-radius:18px;box-shadow:0 18px 50px rgba(2,6,23,.18);overflow:hidden}.ec-observe-hero>div{padding:22px;border-right:1px solid #e2e8f0}.ec-observe-hero>div:last-child{border:0}.ec-observe-hero span,.ec-observe-hero small{display:block;color:#64748b;font-size:11px}.ec-observe-hero strong{display:block;margin:7px 0;font:750 24px var(--ec-font-mono);color:#0f172a}.ec-observe-orbits{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:15px}.ec-observe-orbits article,.ec-observe-grid article,.ec-observe-trace,.ec-observe-error{padding:20px;border:1px solid rgba(14,165,233,.12);border-radius:16px;background:var(--ec-bg-elevated,#fff);box-shadow:0 6px 24px rgba(15,23,42,.06)}.ec-observe-orbits h3,.ec-observe-grid h3,.ec-observe-trace h3{margin:0 0 18px;font-size:13px;color:var(--ec-text-primary)}.ec-observe-orbits .ec-orbit-chart{width:140px;height:140px}.ec-observe-orbits article{display:grid;grid-template-columns:1fr 1fr;align-items:center}.ec-observe-orbits h3{grid-column:1/-1}.ec-observe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:15px}.ec-observe-field{padding:9px 0;border-bottom:1px dashed rgba(148,163,184,.25)}.ec-observe-field span{display:block;font-size:10px;color:var(--ec-text-muted);text-transform:uppercase;letter-spacing:.06em}.ec-observe-field strong{display:block;margin-top:4px;font-size:12px;color:var(--ec-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-observe-trace{margin-top:15px}.ec-orbit-step{display:flex;gap:15px;position:relative;padding:0 0 20px 4px}.ec-orbit-step:after{content:"";position:absolute;left:9px;top:18px;bottom:0;width:1px;background:#cbd5e1}.ec-orbit-step:last-child:after{display:none}.ec-orbit-step>i{width:12px;height:12px;border-radius:50%;margin-top:3px;z-index:1;background:#34d399;box-shadow:0 0 0 5px rgba(52,211,153,.12)}.ec-orbit-step.bad>i{background:#fb7185;box-shadow:0 0 0 5px rgba(251,113,133,.12)}.ec-orbit-step strong,.ec-orbit-step span,.ec-orbit-step small{display:block}.ec-orbit-step strong{font-size:12px;color:var(--ec-text-primary)}.ec-orbit-step span,.ec-orbit-step small{font-size:11px;color:var(--ec-text-muted);margin-top:3px}.ec-observe-error{margin-top:15px;border-color:rgba(244,63,94,.25);background:rgba(244,63,94,.06);color:#be123c}.ec-observe-error p{font-size:12px;margin:7px 0 0;white-space:pre-wrap}
.ec-orbit-stream{display:grid;gap:10px}.ec-orbit-empty{padding:46px 18px;text-align:center;color:var(--ec-text-muted);font-size:13px;border:1px dashed rgba(14,165,233,.25);border-radius:16px;background:linear-gradient(135deg,rgba(14,165,233,.025),rgba(139,92,246,.03))}.ec-orbit-call{display:grid;grid-template-columns:72px minmax(170px,1.2fr) minmax(210px,1.5fr) 155px 115px 22px;align-items:center;gap:16px;padding:15px 17px;border:1px solid rgba(148,163,184,.16);border-radius:17px;background:linear-gradient(105deg,var(--ec-bg-elevated,#fff),rgba(239,246,255,.7));cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.ec-orbit-call:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:#34d399}.ec-orbit-call.is-error:before{background:#fb7185}.ec-orbit-call:hover{transform:translateX(4px);border-color:rgba(14,165,233,.45);box-shadow:0 12px 28px rgba(14,165,233,.11)}.ec-orbit-beacon{text-align:center}.ec-orbit-beacon i{display:block;margin:auto;width:25px;height:25px;border-radius:50%;background:#34d399;box-shadow:0 0 0 7px rgba(52,211,153,.12),0 0 20px rgba(52,211,153,.42);position:relative}.ec-orbit-beacon i:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#ecfdf5}.is-error .ec-orbit-beacon i{background:#fb7185;box-shadow:0 0 0 7px rgba(251,113,133,.12),0 0 20px rgba(251,113,133,.35)}.ec-orbit-beacon span{display:block;margin-top:7px;font-size:10px;color:#059669}.is-error .ec-orbit-beacon span{color:#e11d48}.ec-orbit-title{display:flex;align-items:center;gap:8px;min-width:0}.ec-orbit-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ec-text-primary);font-size:14px}.ec-orbit-title>span{padding:3px 7px;border-radius:6px;color:#0369a1;background:#e0f2fe;font-size:10px;white-space:nowrap}.ec-orbit-user{color:#7c3aed!important;background:#ede9fe!important}.ec-orbit-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;color:var(--ec-text-muted);font-size:10px;font-family:var(--ec-font-mono)}.ec-orbit-meta .warn{color:#b45309}.ec-spectrum-bar{display:flex;height:7px;border-radius:99px;overflow:hidden;background:#e2e8f0;margin-bottom:8px}.ec-spectrum-bar i{display:block;min-width:1px}.ec-spectrum-bar .input{background:#22d3ee}.ec-spectrum-bar .output{background:#8b5cf6}.ec-spectrum-bar .cache{background:#34d399}.ec-orbit-token-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:start;color:var(--ec-text-muted);font-size:10px}.ec-orbit-token-summary span,.ec-orbit-token-summary strong{display:grid;gap:2px;min-width:0}.ec-orbit-token-summary em{font-style:normal;color:var(--ec-text-muted);font-weight:400}.ec-orbit-token-summary span b,.ec-orbit-token-summary strong{color:var(--ec-text-primary);font-family:var(--ec-font-mono)}.ec-orbit-token-summary strong{text-align:right}.ec-orbit-cache-note{display:block;margin-top:5px;color:#0284c7;font-size:10px;line-height:1.3}.ec-orbit-spectrum span b{color:var(--ec-text-primary);font-family:var(--ec-font-mono)}.ec-orbit-spectrum strong{margin-left:auto;color:var(--ec-text-primary);font-family:var(--ec-font-mono)}.ec-orbit-flight{font-size:10px;color:var(--ec-text-muted);white-space:nowrap}.ec-flight-line{height:4px;background:#e2e8f0;border-radius:99px;margin-bottom:7px;overflow:hidden}.ec-flight-line i{display:block;height:100%;background:linear-gradient(90deg,#22d3ee,#8b5cf6);border-radius:99px}.ec-orbit-flight strong{display:block;color:var(--ec-text-primary);font:600 12px var(--ec-font-mono);margin-top:3px}.ec-orbit-cost{border-left:1px solid rgba(148,163,184,.2);padding-left:14px;white-space:nowrap}.ec-orbit-cost span,.ec-orbit-cost small{display:block;font-size:10px;color:var(--ec-text-muted)}.ec-orbit-cost strong{display:block;margin:4px 0;color:#059669;font:700 15px var(--ec-font-mono)}.ec-orbit-arrow{font-size:27px;color:#94a3b8}.ec-orbit-stream-admin .ec-orbit-call{grid-template-columns:72px minmax(200px,1.3fr) minmax(210px,1.4fr) 155px 115px 22px}.ec-checkbox-label{display:flex!important;align-items:center;gap:6px;font-size:12px!important}
@media(max-width:1000px){.ec-pulse-grid{grid-template-columns:repeat(3,1fr)}.ec-orbit-call,.ec-orbit-stream-admin .ec-orbit-call{grid-template-columns:58px 1fr 130px 95px 18px}.ec-orbit-spectrum{grid-column:2/4}.ec-orbit-flight{grid-column:4}.ec-orbit-cost{grid-column:2}.ec-orbit-arrow{grid-column:5;grid-row:1}.ec-observe-grid{grid-template-columns:1fr}}@media(max-width:620px){.ec-pulse-grid{grid-template-columns:repeat(2,1fr)}.ec-observe-head{padding:24px 20px}.ec-observe-body{padding:0 12px 25px}.ec-observe-hero{grid-template-columns:1fr 1fr}.ec-observe-hero>div:nth-child(2){border-right:0}.ec-observe-orbits{grid-template-columns:1fr}.ec-observe-orbits article{grid-template-columns:1fr}.ec-observe-orbits h3{grid-column:1}.ec-pulse-donut-wrap{flex-direction:column}.ec-orbit-call,.ec-orbit-stream-admin .ec-orbit-call{grid-template-columns:48px 1fr 18px;gap:10px}.ec-orbit-main{grid-column:2}.ec-orbit-spectrum,.ec-orbit-flight,.ec-orbit-cost{grid-column:2}.ec-orbit-arrow{grid-column:3;grid-row:1}.ec-orbit-beacon span{display:none}.ec-orbit-token-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.ec-orbit-token-summary strong{text-align:left;margin-left:0}.ec-orbit-cache-note{grid-column:1/-1}}
