Spaces:
Sleeping
Sleeping
| .workbench-shell { | |
| max-width: 1680px; | |
| margin: 0 auto; | |
| padding: 18px; | |
| } | |
| .mini-label { | |
| margin: 0 0 6px; | |
| color: var(--accent-cool); | |
| font-family: var(--font-mono); | |
| font-size: 0.72rem; | |
| letter-spacing: 0.13em; | |
| text-transform: uppercase; | |
| } | |
| .app-topbar { | |
| display: grid; | |
| gap: 14px; | |
| margin-bottom: 14px; | |
| } | |
| .title-block { | |
| display: grid; | |
| gap: 4px; | |
| } | |
| .title-block h1 { | |
| margin: 0; | |
| color: var(--ink-strong); | |
| font-size: clamp(1.7rem, 2vw, 2.2rem); | |
| line-height: 1; | |
| letter-spacing: -0.04em; | |
| } | |
| .title-copy { | |
| margin: 0; | |
| max-width: 88ch; | |
| color: var(--ink-soft); | |
| font-size: 0.98rem; | |
| } | |
| .summary-strip { | |
| display: grid; | |
| grid-template-columns: minmax(260px, 1.8fr) repeat(4, minmax(0, 1fr)); | |
| gap: 10px; | |
| } | |
| .summary-card, | |
| .controls-band, | |
| .map-panel, | |
| .side-card { | |
| border: 1px solid var(--panel-stroke); | |
| background: rgba(253, 252, 248, 0.92); | |
| box-shadow: 0 12px 28px rgba(19, 42, 51, 0.06); | |
| } | |
| .summary-card { | |
| min-height: 88px; | |
| padding: 12px 14px; | |
| border-radius: 16px; | |
| } | |
| .summary-card span, | |
| .fact-row span, | |
| .inspector-grid dt { | |
| display: block; | |
| color: var(--ink-muted); | |
| font-size: 0.76rem; | |
| text-transform: uppercase; | |
| letter-spacing: 0.08em; | |
| } | |
| .summary-card strong, | |
| .fact-row strong, | |
| .inspector-grid dd { | |
| display: block; | |
| margin-top: 6px; | |
| color: var(--ink-strong); | |
| font-size: 1.15rem; | |
| line-height: 1.05; | |
| } | |
| .summary-card p { | |
| margin: 8px 0 0; | |
| color: var(--ink-soft); | |
| font-size: 0.9rem; | |
| } | |
| .summary-card-wide strong { | |
| font-size: 1.25rem; | |
| } | |
| .controls-band { | |
| padding: 12px 14px 14px; | |
| border-radius: 16px; | |
| } | |
| .controls-head { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| align-items: flex-end; | |
| margin-bottom: 12px; | |
| } | |
| .controls-head h2, | |
| .topology-header h2, | |
| .side-header h3 { | |
| margin: 0; | |
| color: var(--ink-strong); | |
| font-size: 1.1rem; | |
| } | |
| .controls-meta { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| align-items: center; | |
| } | |
| .controls-meta span, | |
| .reset-chip, | |
| .scene-button { | |
| padding: 7px 10px; | |
| border-radius: 999px; | |
| border: 1px solid rgba(19, 58, 80, 0.09); | |
| background: rgba(246, 244, 238, 0.92); | |
| color: var(--ink-soft); | |
| font-family: var(--font-mono); | |
| font-size: 0.78rem; | |
| } | |
| .reset-chip, | |
| .scene-button { | |
| color: var(--accent-warm); | |
| } | |
| .controls-grid { | |
| display: grid; | |
| grid-template-columns: repeat(4, minmax(0, 1fr)); | |
| gap: 10px; | |
| } | |
| .controls-stack { | |
| display: grid; | |
| gap: 10px; | |
| } | |
| .controls-grid-parallelism { | |
| grid-template-columns: repeat(5, minmax(0, 1fr)); | |
| } | |
| .control-card { | |
| border: 1px solid rgba(19, 58, 80, 0.08); | |
| border-radius: 14px; | |
| padding: 11px 12px; | |
| background: rgba(250, 248, 242, 0.96); | |
| } | |
| .field-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 10px; | |
| } | |
| .field-grid-wide { | |
| grid-template-columns: repeat(3, minmax(0, 1fr)); | |
| } | |
| .control-card-header { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 10px; | |
| align-items: center; | |
| margin-bottom: 10px; | |
| } | |
| .control-card-header h3 { | |
| margin: 0; | |
| color: var(--ink-strong); | |
| font-size: 1rem; | |
| } | |
| .control-card-header p { | |
| margin: 2px 0 0; | |
| color: var(--ink-soft); | |
| font-size: 0.84rem; | |
| } | |
| .control-badge { | |
| padding: 5px 8px; | |
| border-radius: 999px; | |
| background: rgba(17, 122, 112, 0.1); | |
| color: var(--accent-cool); | |
| font-family: var(--font-mono); | |
| font-size: 0.76rem; | |
| } | |
| .control-field { | |
| display: grid; | |
| gap: 6px; | |
| } | |
| .control-field span, | |
| .control-toggle span { | |
| color: var(--ink-muted); | |
| font-size: 0.76rem; | |
| letter-spacing: 0.06em; | |
| text-transform: uppercase; | |
| } | |
| .control-field input, | |
| .control-field select { | |
| width: 100%; | |
| padding: 8px 10px; | |
| border: 1px solid rgba(19, 58, 80, 0.12); | |
| border-radius: 10px; | |
| background: #fffdf8; | |
| color: var(--ink-strong); | |
| } | |
| .control-field-toggle { | |
| align-self: end; | |
| } | |
| .control-toggle { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| min-height: 40px; | |
| padding: 8px 10px; | |
| border: 1px solid rgba(19, 58, 80, 0.12); | |
| border-radius: 10px; | |
| background: #fffdf8; | |
| } | |
| .control-toggle input { | |
| accent-color: var(--accent-cool); | |
| } | |
| .option-strip { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 6px; | |
| } | |
| .option-chip { | |
| min-width: 38px; | |
| padding: 7px 9px; | |
| border: 1px solid rgba(19, 58, 80, 0.12); | |
| border-radius: 10px; | |
| background: #fffdf8; | |
| color: var(--ink-soft); | |
| font-weight: 500; | |
| transition: | |
| background-color 150ms ease, | |
| border-color 150ms ease, | |
| transform 150ms ease; | |
| } | |
| .option-chip:hover { | |
| transform: translateY(-1px); | |
| } | |
| .option-chip.active { | |
| border-color: rgba(17, 122, 112, 0.26); | |
| background: rgba(225, 246, 241, 0.96); | |
| color: var(--accent-cool); | |
| } | |
| .analysis-stack { | |
| display: grid; | |
| gap: 14px; | |
| margin-top: 14px; | |
| align-items: start; | |
| } | |
| .status-banner { | |
| display: flex; | |
| gap: 10px; | |
| align-items: center; | |
| padding: 10px 12px; | |
| border-radius: 14px; | |
| border: 1px solid rgba(214, 98, 37, 0.16); | |
| background: rgba(255, 245, 236, 0.96); | |
| color: var(--ink-soft); | |
| } | |
| .status-banner strong { | |
| color: var(--accent-warm); | |
| } | |
| .status-banner-wip { | |
| border-color: rgba(180, 142, 34, 0.2); | |
| background: rgba(255, 249, 229, 0.96); | |
| } | |
| .status-banner-wip strong { | |
| color: #8a6b12; | |
| } | |
| .map-panel { | |
| padding: 12px; | |
| border-radius: 16px; | |
| } | |
| .topology-header { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| align-items: flex-end; | |
| margin-bottom: 10px; | |
| } | |
| .topology-header-actions { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 10px; | |
| align-items: center; | |
| justify-content: flex-end; | |
| } | |
| .topology-scene-shell { | |
| display: grid; | |
| gap: 10px; | |
| } | |
| .scene-toolbar { | |
| display: flex; | |
| justify-content: flex-end; | |
| gap: 10px; | |
| align-items: center; | |
| } | |
| .scene-toolbar-actions { | |
| display: flex; | |
| gap: 8px; | |
| flex-wrap: wrap; | |
| } | |
| .pixi-surface-wrap { | |
| position: relative; | |
| width: 100%; | |
| overflow: hidden; | |
| border-radius: 18px; | |
| background: | |
| radial-gradient(circle at 10% 10%, rgba(24, 155, 141, 0.14), transparent 22%), | |
| radial-gradient(circle at 100% 0%, rgba(255, 175, 111, 0.16), transparent 24%), | |
| linear-gradient(180deg, #0f202d 0%, #08141d 100%); | |
| } | |
| .topology-surface-wrap { | |
| min-height: 760px; | |
| height: min(76vh, 980px); | |
| user-select: none; | |
| touch-action: none; | |
| overscroll-behavior: contain; | |
| } | |
| .topology-interaction-layer { | |
| position: absolute; | |
| inset: 0; | |
| z-index: 1; | |
| background: rgba(0, 0, 0, 0.001); | |
| cursor: grab; | |
| touch-action: none; | |
| overscroll-behavior: contain; | |
| } | |
| .topology-interaction-layer.is-dragging { | |
| cursor: grabbing; | |
| } | |
| .pixi-surface, | |
| .pixi-canvas, | |
| .pixi-surface canvas { | |
| display: block; | |
| width: 100%; | |
| height: 100%; | |
| } | |
| .scene-inspector, | |
| .scene-debug-panel { | |
| position: absolute; | |
| z-index: 2; | |
| max-width: min(320px, calc(100% - 32px)); | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| border-radius: 16px; | |
| backdrop-filter: blur(14px); | |
| pointer-events: auto; | |
| } | |
| .scene-inspector { | |
| left: 16px; | |
| bottom: 16px; | |
| padding: 12px 14px; | |
| background: rgba(7, 19, 29, 0.78); | |
| color: rgba(229, 241, 246, 0.92); | |
| } | |
| .scene-inspector .mini-label { | |
| color: rgba(135, 244, 226, 0.82); | |
| } | |
| .scene-inspector h3 { | |
| margin: 0; | |
| font-size: 1rem; | |
| } | |
| .inspector-subheading { | |
| margin: 6px 0 0; | |
| color: rgba(179, 201, 211, 0.82); | |
| font-size: 0.88rem; | |
| } | |
| .inspector-link-note { | |
| margin: 10px 0 0; | |
| color: rgba(255, 223, 161, 0.9); | |
| font-size: 0.82rem; | |
| } | |
| .inspector-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| gap: 10px 14px; | |
| margin: 12px 0 0; | |
| } | |
| .inspector-grid div { | |
| margin: 0; | |
| } | |
| .inspector-grid dt { | |
| color: rgba(160, 188, 200, 0.78); | |
| font-size: 0.68rem; | |
| } | |
| .inspector-grid dd { | |
| margin: 4px 0 0; | |
| color: rgba(243, 250, 252, 0.96); | |
| font-size: 0.95rem; | |
| } | |
| .scene-debug-panel { | |
| top: 16px; | |
| right: 16px; | |
| padding: 12px 14px; | |
| background: rgba(10, 20, 31, 0.82); | |
| color: rgba(225, 238, 244, 0.92); | |
| } | |
| .scene-debug-panel .mini-label { | |
| color: rgba(255, 221, 156, 0.82); | |
| } | |
| .debug-toggle-grid { | |
| display: grid; | |
| gap: 8px; | |
| } | |
| .debug-toggle-grid label { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| color: rgba(228, 240, 245, 0.92); | |
| font-size: 0.86rem; | |
| } | |
| .debug-toggle-grid input { | |
| accent-color: var(--accent-warm); | |
| } | |
| .debug-stats { | |
| display: flex; | |
| flex-wrap: wrap; | |
| gap: 8px; | |
| margin-top: 12px; | |
| } | |
| .debug-stats span { | |
| padding: 5px 8px; | |
| border-radius: 999px; | |
| background: rgba(255, 255, 255, 0.06); | |
| color: rgba(235, 245, 248, 0.9); | |
| font-family: var(--font-mono); | |
| font-size: 0.74rem; | |
| } | |
| .side-column { | |
| display: grid; | |
| gap: 14px; | |
| } | |
| .side-card { | |
| padding: 12px; | |
| border-radius: 16px; | |
| } | |
| .side-header { | |
| margin-bottom: 12px; | |
| } | |
| .facts-grid { | |
| display: grid; | |
| gap: 10px; | |
| } | |
| .fact-row { | |
| padding-bottom: 10px; | |
| border-bottom: 1px solid rgba(19, 58, 80, 0.08); | |
| } | |
| .fact-row:last-child { | |
| padding-bottom: 0; | |
| border-bottom: 0; | |
| } | |
| .warning-list { | |
| display: grid; | |
| gap: 8px; | |
| margin-top: 12px; | |
| } | |
| .warning-pill { | |
| border-left: 3px solid rgba(214, 98, 37, 0.74); | |
| border-radius: 10px; | |
| padding: 9px 10px; | |
| background: rgba(255, 244, 232, 0.92); | |
| color: var(--ink-soft); | |
| font-size: 0.88rem; | |
| } | |
| .fullscreen-overlay { | |
| position: fixed; | |
| inset: 0; | |
| z-index: 40; | |
| display: grid; | |
| place-items: center; | |
| padding: 20px; | |
| background: rgba(4, 12, 20, 0.72); | |
| backdrop-filter: blur(10px); | |
| } | |
| .fullscreen-shell { | |
| display: grid; | |
| gap: 12px; | |
| width: min(1600px, 100%); | |
| max-height: calc(100vh - 40px); | |
| padding: 14px; | |
| border: 1px solid rgba(255, 255, 255, 0.08); | |
| border-radius: 22px; | |
| background: rgba(252, 250, 245, 0.98); | |
| box-shadow: 0 24px 80px rgba(4, 12, 20, 0.38); | |
| } | |
| .fullscreen-toolbar { | |
| display: flex; | |
| justify-content: space-between; | |
| gap: 12px; | |
| align-items: flex-end; | |
| } | |
| .fullscreen-toolbar h2 { | |
| margin: 0; | |
| color: var(--ink-strong); | |
| font-size: 1.2rem; | |
| } | |
| .fullscreen-content { | |
| min-height: 0; | |
| overflow: auto; | |
| } | |
| .fullscreen-content .map-panel { | |
| min-height: calc(100vh - 168px); | |
| } | |
| .fullscreen-content .topology-surface-wrap { | |
| height: calc(100vh - 290px); | |
| min-height: 680px; | |
| } | |
| @media (max-width: 1400px) { | |
| .summary-strip { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .fullscreen-shell { | |
| width: 100%; | |
| } | |
| } | |
| @media (max-width: 1040px) { | |
| .controls-grid, | |
| .controls-grid-parallelism, | |
| .field-grid, | |
| .field-grid-wide { | |
| grid-template-columns: repeat(2, minmax(0, 1fr)); | |
| } | |
| .controls-head, | |
| .topology-header, | |
| .scene-toolbar, | |
| .fullscreen-toolbar { | |
| flex-direction: column; | |
| align-items: flex-start; | |
| } | |
| } | |
| @media (max-width: 760px) { | |
| .workbench-shell { | |
| padding: 12px; | |
| } | |
| .summary-strip, | |
| .controls-grid, | |
| .controls-grid-parallelism, | |
| .field-grid, | |
| .field-grid-wide, | |
| .inspector-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .topology-surface-wrap { | |
| min-height: 560px; | |
| height: 64vh; | |
| } | |
| .fullscreen-overlay { | |
| padding: 10px; | |
| } | |
| .fullscreen-shell { | |
| max-height: calc(100vh - 20px); | |
| padding: 10px; | |
| } | |
| .fullscreen-content .topology-surface-wrap, | |
| .fullscreen-content .topology-surface-wrap { | |
| min-height: 420px; | |
| height: 62vh; | |
| } | |
| .scene-inspector, | |
| .scene-debug-panel { | |
| position: static; | |
| max-width: none; | |
| margin: 10px; | |
| } | |
| } | |