diff --git a/ZeroSpace/ZeroSpace.Web/Pages/Galaxy.razor.css b/ZeroSpace/ZeroSpace.Web/Pages/Galaxy.razor.css index 00090d5..f4a1e13 100644 --- a/ZeroSpace/ZeroSpace.Web/Pages/Galaxy.razor.css +++ b/ZeroSpace/ZeroSpace.Web/Pages/Galaxy.razor.css @@ -373,3 +373,209 @@ font-size: 0.72rem; letter-spacing: 0.2px; } + +/* Galaxy layout with right-side faction drawer */ +.galaxy-layout { + display: flex; + align-items: flex-start; + gap: 1rem; +} + +.galaxy-layout .galaxy-map-container { + margin: 0; + max-width: none; + min-width: 0; + flex: 1 1 auto; +} + +.faction-drawer { + width: 330px; + flex: 0 0 auto; + border-radius: 12px; + padding: 1rem; + position: sticky; + top: 1rem; + max-height: calc(100vh - 2rem); + display: flex; + flex-direction: column; +} + +.faction-drawer.is-collapsed { + width: auto; +} + +.drawer-title { + font-size: 1rem; +} + +.drawer-subtitle { + font-size: 0.72rem; +} + +.drawer-body { + overflow-y: auto; + margin-top: 0.75rem; + display: flex; + flex-direction: column; + gap: 1rem; + min-height: 0; +} + +/* Faction picker: always exactly one selected */ +.faction-picker { + display: flex; + flex-direction: column; + gap: 6px; +} + +.faction-pick { + display: flex; + align-items: center; + gap: 8px; + width: 100%; + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(139, 148, 158, 0.25); + border-radius: 8px; + color: #c9d1d9; + padding: 8px 10px; + font-size: 0.85rem; + cursor: pointer; + text-align: left; + transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease; +} + +.faction-pick:hover { + background: rgba(255, 255, 255, 0.06); +} + +.faction-pick-name { + flex: 1 1 auto; + font-weight: 600; +} + +.faction-pick-count { + font-size: 0.72rem; + color: #8b949e; + background: rgba(0, 0, 0, 0.35); + border-radius: 10px; + padding: 1px 8px; +} + +.faction-pick.is-active { + background: rgba(255, 255, 255, 0.06); +} + +.faction-pick.is-active.owner-eden { + border-color: rgba(16, 185, 129, 0.7); + box-shadow: 0 0 12px rgba(16, 185, 129, 0.15); +} + +.faction-pick.is-active.owner-keeper { + border-color: rgba(56, 189, 248, 0.7); + box-shadow: 0 0 12px rgba(56, 189, 248, 0.15); +} + +.faction-pick.is-active.owner-obsidian { + border-color: rgba(239, 68, 68, 0.7); + box-shadow: 0 0 12px rgba(239, 68, 68, 0.15); +} + +/* Drawer sections */ +.drawer-section-title { + font-size: 0.72rem; + text-transform: uppercase; + letter-spacing: 0.6px; + color: #8b949e; + font-weight: 700; + margin-bottom: 0.5rem; +} + +.drawer-summary { + font-size: 0.85rem; +} + +/* Aggregated bonus rows */ +.bonus-list { + display: flex; + flex-direction: column; + gap: 6px; +} + +.bonus-row { + display: grid; + grid-template-columns: auto 1fr auto; + gap: 8px; + align-items: baseline; + background: rgba(255, 255, 255, 0.03); + border: 1px solid rgba(139, 148, 158, 0.18); + border-radius: 8px; + padding: 6px 10px; +} + +.bonus-total { + color: #34d399; + font-weight: 700; + font-size: 0.9rem; + white-space: nowrap; +} + +.bonus-label { + color: #c9d1d9; + font-size: 0.8rem; +} + +.bonus-count { + color: #8b949e; + font-size: 0.72rem; + white-space: nowrap; +} + +/* Planet list */ +.planet-list { + display: flex; + flex-direction: column; + gap: 4px; +} + +.planet-row { + display: flex; + justify-content: space-between; + gap: 8px; + align-items: baseline; + width: 100%; + text-align: left; + background: transparent; + border: 1px solid transparent; + border-radius: 6px; + color: #c9d1d9; + padding: 5px 8px; + cursor: pointer; + font-size: 0.8rem; +} + +.planet-row:hover { + background: rgba(56, 189, 248, 0.08); + border-color: rgba(56, 189, 248, 0.25); +} + +.planet-name { + font-weight: 600; +} + +.planet-buff { + color: #34d399; + font-size: 0.75rem; + text-align: right; +} + +@media (max-width: 992px) { + .galaxy-layout { + flex-direction: column; + } + + .faction-drawer { + width: 100%; + max-height: none; + position: static; + } +}