259 lines
6.8 KiB
CSS
259 lines
6.8 KiB
CSS
/* info-panel.css — brand panel + detail card */
|
|
|
|
/* ── Left column wrapper ──────────────────────────────────────── */
|
|
|
|
.earth-left-column {
|
|
position: absolute;
|
|
top: var(--hud-offset);
|
|
left: var(--hud-offset);
|
|
display: flex;
|
|
flex-direction: column;
|
|
z-index: 10;
|
|
pointer-events: none;
|
|
/* Width is set by the widest child (brand or info card) */
|
|
max-width: min(calc(340px * var(--hud-scale)), calc(100vw - 32px));
|
|
}
|
|
|
|
.earth-left-column > * {
|
|
position: relative; /* override .hud-panel position:absolute */
|
|
pointer-events: auto;
|
|
width: 100%;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* ── Brand panel ──────────────────────────────────────────────── */
|
|
|
|
.hud-panel-brand {
|
|
--brand-scale: 0.88;
|
|
--brand-copy-width: 160px;
|
|
border-radius: 0;
|
|
padding: calc(18px * var(--hud-scale)) calc(20px * var(--hud-scale));
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
/* Reserve full panel height before brand images load */
|
|
min-height: calc(66px * var(--hud-scale));
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: calc(10px * var(--hud-scale) * var(--brand-scale));
|
|
min-width: 0;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__logo {
|
|
display: block;
|
|
flex: 0 0 auto;
|
|
width: calc(128px * var(--hud-scale) * var(--brand-scale));
|
|
height: calc(128px * var(--hud-scale) * var(--brand-scale));
|
|
object-fit: contain;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__copy {
|
|
display: flex;
|
|
flex: 0 0 auto;
|
|
flex-direction: column;
|
|
justify-content: center;
|
|
gap: calc(5px * var(--hud-scale) * var(--brand-scale));
|
|
width: calc(var(--brand-copy-width) * var(--hud-scale) * var(--brand-scale));
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__title {
|
|
display: block;
|
|
width: min(100%, calc(var(--brand-copy-width) * var(--hud-scale) * var(--brand-scale)));
|
|
max-width: 100%;
|
|
height: auto;
|
|
min-height: calc(20px * var(--hud-scale) * var(--brand-scale));
|
|
object-fit: contain;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__meta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: calc(2px * var(--hud-scale) * var(--brand-scale));
|
|
width: fit-content;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__subtitle {
|
|
color: var(--hud-text-muted);
|
|
font-size: calc(0.74rem * var(--hud-scale) * var(--brand-scale));
|
|
line-height: 1.3;
|
|
font-weight: 500;
|
|
letter-spacing: 0.01em;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand__description {
|
|
color: var(--hud-text-soft);
|
|
font-size: calc(0.6rem * var(--hud-scale) * var(--brand-scale));
|
|
line-height: 1.3;
|
|
letter-spacing: 0.08em;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand--en {
|
|
--brand-copy-width: 172px;
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand--en .earth-brand__title {
|
|
width: min(100%, calc(var(--brand-copy-width) * var(--hud-scale) * var(--brand-scale)));
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand--en .earth-brand__copy {
|
|
width: calc(var(--brand-copy-width) * var(--hud-scale) * var(--brand-scale));
|
|
}
|
|
|
|
.hud-panel-brand .earth-brand--en .earth-brand__subtitle,
|
|
.hud-panel-brand .earth-brand--en .earth-brand__description {
|
|
font-family: "Roboto Condensed", "Arial Narrow", "Trebuchet MS", "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
|
}
|
|
|
|
/* ── Info detail panel (floating, positioned near click by JS) ── */
|
|
|
|
.hud-panel-info {
|
|
position: absolute;
|
|
z-index: 50;
|
|
width: min(calc(300px * var(--hud-scale)), calc(100vw - 32px));
|
|
border-radius: 0;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
/* Start hidden */
|
|
opacity: 0;
|
|
transform: scale(0.94) translateY(4px);
|
|
pointer-events: none;
|
|
transition:
|
|
opacity 0.22s ease,
|
|
transform 0.22s ease;
|
|
}
|
|
|
|
.hud-panel-info.is-visible {
|
|
opacity: 1;
|
|
transform: scale(1) translateY(0);
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* ── Info Card ────────────────────────────────────────────────── */
|
|
|
|
.info-card {
|
|
display: block;
|
|
}
|
|
|
|
.info-card-header {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: calc(10px * var(--hud-scale)) calc(12px * var(--hud-scale));
|
|
background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
|
|
border-bottom: 1px solid var(--hud-line);
|
|
gap: var(--hud-gap-xs);
|
|
}
|
|
|
|
.info-card-icon {
|
|
font-size: calc(16px * var(--hud-scale));
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.info-card-header h3 {
|
|
flex: 1;
|
|
margin: 0;
|
|
font-size: calc(0.92rem * var(--hud-scale));
|
|
color: var(--hud-title);
|
|
font-weight: 600;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.info-card-close {
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.info-card-content {
|
|
padding: calc(8px * var(--hud-scale)) calc(12px * var(--hud-scale));
|
|
max-height: 58vh;
|
|
overflow-y: auto;
|
|
scrollbar-width: thin;
|
|
scrollbar-color: rgba(160, 186, 216, 0.34) transparent;
|
|
pointer-events: auto;
|
|
}
|
|
|
|
.info-card-content::-webkit-scrollbar {
|
|
width: 4px;
|
|
}
|
|
|
|
.info-card-content::-webkit-scrollbar-track {
|
|
background: transparent;
|
|
}
|
|
|
|
.info-card-content::-webkit-scrollbar-thumb {
|
|
background: linear-gradient(180deg, rgba(210, 225, 242, 0.2), rgba(126, 154, 185, 0.28));
|
|
border-radius: 999px;
|
|
}
|
|
|
|
.info-card-property {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: flex-start;
|
|
padding: calc(6px * var(--hud-scale)) 0;
|
|
border-bottom: 1px solid rgba(214, 229, 245, 0.06);
|
|
pointer-events: auto;
|
|
gap: var(--hud-gap-sm);
|
|
}
|
|
|
|
.info-card-property:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.info-card-label {
|
|
color: var(--hud-text-soft);
|
|
font-size: calc(0.68rem * var(--hud-scale));
|
|
letter-spacing: 0.1em;
|
|
text-transform: uppercase;
|
|
cursor: pointer;
|
|
flex-shrink: 0;
|
|
transition: color 0.18s ease;
|
|
}
|
|
|
|
.info-card-label:hover {
|
|
color: var(--hud-text-muted);
|
|
}
|
|
|
|
.info-card-value {
|
|
color: var(--hud-text);
|
|
font-weight: 600;
|
|
font-size: calc(0.82rem * var(--hud-scale));
|
|
line-height: 1.45;
|
|
text-align: right;
|
|
max-width: calc(180px * var(--hud-scale));
|
|
word-break: break-word;
|
|
}
|
|
|
|
/* Type-specific header accent colors */
|
|
.info-card.cable .info-card-header {
|
|
background: rgba(255, 200, 0, 0.12);
|
|
border-bottom-color: rgba(255, 200, 0, 0.15);
|
|
}
|
|
.info-card.cable .info-card-header h3 { color: #ffc800; }
|
|
|
|
.info-card.satellite .info-card-header {
|
|
background: rgba(0, 229, 255, 0.12);
|
|
border-bottom-color: rgba(0, 229, 255, 0.15);
|
|
}
|
|
.info-card.satellite .info-card-header h3 { color: #00e5ff; }
|
|
|
|
.info-card.bgp .info-card-header {
|
|
background: rgba(120, 180, 255, 0.12);
|
|
border-bottom-color: rgba(120, 180, 255, 0.15);
|
|
}
|
|
.info-card.bgp .info-card-header h3 { color: var(--hud-accent-strong); }
|
|
|
|
/* ── Layout-expanded: slide left column off-screen ────────────── */
|
|
|
|
.earth-app.layout-expanded .earth-left-column {
|
|
transform: translate(calc(-100% + var(--hud-offset)), 0);
|
|
}
|