/* /Components/Home/CanvasMap.razor.rz.scp.css */
.canvas-map-container[b-epudq58not] {
    --map-panel-bg: color-mix(in srgb, var(--color-panel) 95%, transparent);
    --map-label-bg: rgba(14, 29, 42, 0.4);
    --map-label-line: rgba(182, 213, 235, 0.75);
    --map-label-shadow: rgba(0, 0, 0, 0.9);
    --map-controls-border: var(--color-border);
    --map-controls-border-hover: var(--color-input-border);
    --map-controls-bg: var(--color-panel);
    --map-controls-bg-hover: var(--color-surface);
    --map-accent: #667eea;
    --map-accent-hover: #5a6fd6;
    --map-good: var(--color-success);
    --map-bad: var(--color-danger);

    position: absolute;
    inset: 0;
    width: 100%;
    min-height: auto;
    height: 100%;
    overflow: hidden;
    background: var(--map-bg);
}

.canvas-map-container .game-canvas[b-epudq58not] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    cursor: grab;
    touch-action: none;
}

.canvas-map-container .game-canvas:active[b-epudq58not] {
    cursor: grabbing;
}

.canvas-map-container .map-empty-state[b-epudq58not] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--map-text-bright);
    opacity: 0.9;
}

.canvas-map-container .port-label-overlay[b-epudq58not] {
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    font-size: 20px;
    font-weight: 500;
    color: var(--map-label-default);
    text-shadow: 0 1px 3px var(--map-label-shadow);
    white-space: nowrap;
    pointer-events: none;
    z-index: 10;
    padding: 1px 3px;
    border-radius: 4px;
    background: var(--map-label-bg);
}

.canvas-map-container .port-label-name[b-epudq58not] {
    line-height: 1.05;
}

.canvas-map-container .port-label-price[b-epudq58not] {
    font-size: 0.67em;
    font-weight: 700;
    line-height: 1;
    text-shadow: 0 1px 3px var(--map-label-shadow);
}

.canvas-map-container .port-label-overlay-line[b-epudq58not] {
    position: absolute;
    height: 1.5px;
    transform-origin: 0 50%;
    background: var(--map-label-line);
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
    pointer-events: none;
    z-index: 9;
}

.canvas-map-container .port-label-overlay.capital[b-epudq58not] {
    font-size: 23px;
    font-weight: 700;
    color: var(--map-label-capital);
}

.canvas-map-container .port-label-overlay.current-port[b-epudq58not] {
    color: var(--map-label-current);
    font-weight: 700;
}

.canvas-map-container .port-label-overlay.emphasized[b-epudq58not] {
    font-size: 21px;
    font-weight: 600;
    color: var(--map-text-bright);
    text-shadow: 0 1px 4px var(--map-label-shadow);
}

.canvas-map-container .port-label-overlay.deemphasized[b-epudq58not] {
    opacity: 0.4;
}

.canvas-map-container .port-label-overlay.route-port[b-epudq58not] {
    font-weight: 600;
}

.canvas-map-container .map-hidden-labels-badge[b-epudq58not] {
    position: absolute;
    bottom: 0;
    left: 0;
    font-size: 11px;
    font-weight: 500;
    color: rgba(220, 233, 245, 0.7);
    background: rgba(12, 28, 40, 0.55);
    border: 1px solid rgba(173, 209, 235, 0.2);
    border-radius: 0 6px 0 0;
    padding: 3px 8px;
    pointer-events: none;
    z-index: 55;
}

.canvas-map-container .player-ship-marker[b-epudq58not] {
    position: absolute;
    width: 20px;
    height: 20px;
    margin: -10px 0 0 -10px;
    padding: 0;
    border-radius: 50%;
    background: var(--color-flight, #5ec8ff);
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px rgba(94, 200, 255, 0.4), 0 0 10px 2px rgba(94, 200, 255, 0.6);
    cursor: pointer;
    z-index: 11;
    transition: transform 0.12s ease, box-shadow 0.12s ease;
    animation: player-ship-pulse-b-epudq58not 2s ease-in-out infinite;
}

.canvas-map-container .player-ship-marker:hover[b-epudq58not] {
    transform: scale(1.25);
    box-shadow: 0 0 0 3px rgba(94, 200, 255, 0.5), 0 0 14px 4px rgba(94, 200, 255, 0.8);
}

@keyframes player-ship-pulse-b-epudq58not {
    0%, 100% { box-shadow: 0 0 0 2px rgba(94, 200, 255, 0.4), 0 0 10px 2px rgba(94, 200, 255, 0.5); }
    50% { box-shadow: 0 0 0 3px rgba(94, 200, 255, 0.55), 0 0 14px 5px rgba(94, 200, 255, 0.85); }
}

.canvas-map-container .player-label-overlay[b-epudq58not] {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    padding: 0.3rem 0.45rem;
    border-radius: 6px;
    background: rgba(10, 24, 35, 0.68);
    border: 1px solid rgba(255, 255, 255, 0.14);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
    white-space: nowrap;
    pointer-events: none;
    z-index: 10;
}

.canvas-map-container .player-label-ship[b-epudq58not] {
    font-size: 12px;
    font-weight: 700;
    color: #e9f6ff;
}

.canvas-map-container .player-label-destination[b-epudq58not] {
    font-size: 11px;
    font-weight: 500;
    color: var(--color-flight);
}

.canvas-map-container .other-player-marker[b-epudq58not] {
    position: absolute;
    transform: translate(-50%, -50%);
    z-index: 8;
}

/* Port markers are HTML overlays so they always render above other players' ship
   avatars (z-index 8, 60 on hover) - a canvas dot can never sit above an HTML overlay.
   pointer-events stay off: port clicks/hover are hit-tested on the canvas by world coords. */
.canvas-map-container .port-marker[b-epudq58not] {
    position: absolute;
    transform: translate(-50%, -50%);
    box-sizing: border-box;
    border-radius: 50%;
    border: 2px solid #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    z-index: 65;
}

.canvas-map-container .port-marker--ring[b-epudq58not] {
    background: transparent;
    /* border-color is set inline to the port colour */
}

.canvas-map-container .port-marker__dot[b-epudq58not] {
    box-sizing: border-box;
    border-radius: 50%;
    border: 2px solid #fff;
}

/* Flag pinned to the top-right of a port whose destination has an active contract. */
.canvas-map-container .port-contract-flag[b-epudq58not] {
    position: absolute;
    transform: translate(-35%, -65%);
    font-size: 15px;
    line-height: 1;
    color: #f1c40f;
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.9)) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.9));
    pointer-events: none;
    z-index: 66;
}

/* Raise the hovered ship (and its tooltip) above its neighbours. */
.canvas-map-container .other-player-marker:hover[b-epudq58not] {
    z-index: 60;
}

.canvas-map-container .other-player-avatar[b-epudq58not] {
    display: block;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    object-fit: cover;
    background: #0a1823;
    border: 2px solid #16a085;
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.6);
}

.canvas-map-container .other-player-marker.flying .other-player-avatar[b-epudq58not] {
    border-color: #1abc9c;
}

.canvas-map-container .other-player-dot[b-epudq58not] {
    display: block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #16a085;
    border: 2px solid #0a1823;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.6);
}

.canvas-map-container .other-player-marker.flying .other-player-dot[b-epudq58not] {
    background: #1abc9c;
}

/* Always-on ship-name label sitting just below an in-flight ship. */
.canvas-map-container .other-player-label[b-epudq58not] {
    position: absolute;
    top: calc(100% + 3px);
    left: 50%;
    transform: translateX(-50%);
    padding: 1px 5px;
    border-radius: 4px;
    background: rgba(10, 24, 35, 0.68);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #e9f6ff;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
    pointer-events: none;
}

/* Hover card: enlarged avatar + player and ship name. */
.canvas-map-container .other-player-tooltip[b-epudq58not] {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    transform: translateX(-50%);
    display: none;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.55rem;
    border-radius: 8px;
    background: rgba(10, 24, 35, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.18);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
    white-space: nowrap;
    pointer-events: none;
}

.canvas-map-container .other-player-marker:hover .other-player-tooltip[b-epudq58not] {
    display: flex;
}

.canvas-map-container .other-player-tooltip-avatar[b-epudq58not] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background: #0a1823;
    border: 2px solid #1abc9c;
    flex-shrink: 0;
}

.canvas-map-container .other-player-tooltip-text[b-epudq58not] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.canvas-map-container .other-player-tooltip-name[b-epudq58not] {
    font-size: 13px;
    font-weight: 700;
    color: #e9f6ff;
}

.canvas-map-container .other-player-tooltip-ship[b-epudq58not] {
    font-size: 11px;
    font-weight: 500;
    color: #9fb6c4;
}

.canvas-map-container .port-popup[b-epudq58not] {
    position: absolute;
    top: 10px;
    right: 10px;
    background: var(--color-panel);
    color: var(--color-text);
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    padding: 0.75rem;
    min-width: 160px;
    z-index: 100;
    pointer-events: auto;
    font-family: inherit;
}

.canvas-map-container .map-context-menu[b-epudq58not] {
    position: absolute;
    background: var(--color-panel);
    color: var(--color-text);
    border: 1px solid var(--color-border, #dee2e6);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    padding: 4px;
    min-width: 140px;
    z-index: 100;
    pointer-events: auto;
    font-family: inherit;
}

.canvas-map-container .map-context-menu-item[b-epudq58not] {
    display: block;
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    border-radius: 4px;
    padding: 6px 10px;
    font-size: 13px;
    color: var(--color-text);
    cursor: pointer;
}

.canvas-map-container .map-context-menu-item:hover[b-epudq58not] {
    background: var(--color-surface, #f8f9fa);
}

.canvas-map-container .port-popup-header[b-epudq58not] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.5rem;
}

.canvas-map-container .port-popup-header h4[b-epudq58not] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text);
}

.canvas-map-container .port-popup-close[b-epudq58not] {
    background: none;
    border: none;
    font-size: 1.25rem;
    color: var(--map-text-muted);
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    line-height: 1;
}

.canvas-map-container .port-popup-close:hover[b-epudq58not] {
    background: var(--map-controls-bg-hover);
    color: var(--map-text-subtle);
}

.canvas-map-container .port-popup-content[b-epudq58not] {
    margin-bottom: 0.5rem;
}

.canvas-map-container .port-popup-badge[b-epudq58not] {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
}

.canvas-map-container .port-popup-badge.current[b-epudq58not] {
    background: var(--bg-success-soft);
    color: var(--text-success-strong);
}

.canvas-map-container .port-popup-badge.open[b-epudq58not] {
    background: var(--bg-info-soft);
    color: var(--text-info-strong);
}

.canvas-map-container .port-popup-actions[b-epudq58not] {
    margin-top: 0.5rem;
}

.canvas-map-container .port-popup-actions .btn-sm[b-epudq58not] {
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    background: var(--map-accent);
    color: var(--color-white);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-weight: 500;
}

.canvas-map-container .port-popup-actions .btn-sm:hover[b-epudq58not] {
    background: var(--map-accent-hover);
}

.canvas-map-container .popup-prices[b-epudq58not] {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border-soft);
}

.canvas-map-container .popup-prices h5[b-epudq58not] {
    margin: 0 0 0.5rem 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--map-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.canvas-map-container .popup-price-item[b-epudq58not] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.25rem 0;
    font-size: 0.9rem;
}

.canvas-map-container .cargo-name[b-epudq58not] {
    font-weight: 500;
    color: var(--map-text-subtle);
}

.canvas-map-container .cargo-price[b-epudq58not] {
    font-weight: 600;
}

.canvas-map-container .price-good[b-epudq58not] {
    color: var(--map-good);
}

.canvas-map-container .price-bad[b-epudq58not] {
    color: var(--map-bad);
}

.canvas-map-container .popup-docked[b-epudq58not] {
    margin-top: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border-soft);
}

.canvas-map-container .popup-docked h5[b-epudq58not] {
    margin: 0 0 0.5rem 0;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--map-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.canvas-map-container .popup-docked-list[b-epudq58not] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.canvas-map-container .popup-docked-item[b-epudq58not] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.canvas-map-container .popup-docked-avatar[b-epudq58not] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    background: #0a1823;
    border: 2px solid #16a085;
    flex-shrink: 0;
}

.canvas-map-container .popup-docked-avatar.placeholder[b-epudq58not] {
    background: #16a085;
}

.canvas-map-container .popup-docked-text[b-epudq58not] {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    min-width: 0;
}

.canvas-map-container .popup-docked-name[b-epudq58not] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--map-text-subtle);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.canvas-map-container .popup-docked-ship[b-epudq58not] {
    font-size: 0.75rem;
    color: var(--map-text-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.canvas-map-container .popup-docked-more[b-epudq58not] {
    margin-top: 0.35rem;
    font-size: 0.75rem;
    color: var(--map-text-muted);
}

.canvas-map-container .price-neutral[b-epudq58not] {
    color: var(--map-text-muted);
}

.canvas-map-container .price-delta[b-epudq58not] {
    font-size: 1.2rem;
    opacity: 0.8;
    margin-left: 0.25rem;
}

.canvas-map-container .producer-badge[b-epudq58not] {
    color: var(--color-port);
    font-weight: 700;
    margin-right: 0.2rem;
    font-size: 0.85em;
}

.canvas-map-container .map-legend[b-epudq58not] {
    position: absolute;
    bottom: 10px;
    left: 10px;
    background: var(--map-panel-bg);
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    box-shadow: 0 2px 8px var(--map-overlay-shadow);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    z-index: 50;
}

.canvas-map-container .legend-item[b-epudq58not] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    color: var(--map-text-subtle);
}

.canvas-map-container .legend-dot[b-epudq58not] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.canvas-map-container .legend-dot.docked[b-epudq58not] {
    background: var(--color-flight);
}

.canvas-map-container .legend-dot.flying[b-epudq58not] {
    background: #e74c3c;
}

.canvas-map-container .legend-dot.open[b-epudq58not] {
    background: var(--base-port-color);
}

.canvas-map-container .map-coords[b-epudq58not] {
    position: absolute;
    bottom: 45px;
    right: 20px;
    font-size: 11px;
    font-weight: 600;
    font-family: monospace;
    color: var(--color-white);
    text-shadow: 0 1px 3px var(--map-label-shadow);
    background: rgba(0, 0, 0, 0.4);
    padding: 3px 8px;
    border-radius: 4px;
    z-index: 50;
}

.canvas-map-container .map-scale-bar[b-epudq58not] {
    position: absolute;
    bottom: 20px;
    right: 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 8px;
    z-index: 50;
}

.canvas-map-container .scale-bar-label[b-epudq58not] {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-white);
    text-shadow: 0 1px 3px var(--map-label-shadow);
    white-space: nowrap;
    line-height: 1;
}

.canvas-map-container .scale-bar-line[b-epudq58not] {
    height: 6px;
    background: var(--color-white);
    border-radius: 3px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.6);
}

.canvas-map-container .scale-bar-zoom[b-epudq58not] {
    font-size: 11px;
    color: var(--color-white);
    opacity: 0.7;
    text-shadow: 0 1px 3px var(--map-label-shadow);
    white-space: nowrap;
    line-height: 1;
}

.canvas-map-container .map-cargo-filter[b-epudq58not] {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--map-panel-bg);
    padding: 0.4rem;
    border-radius: 6px;
    box-shadow: 0 2px 8px var(--map-overlay-shadow);
    z-index: 50;
}

.canvas-map-container .cargo-filter-select[b-epudq58not] {
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--map-controls-border);
    background: var(--map-controls-bg);
    border-radius: 4px;
    font-size: 0.85rem;
    cursor: pointer;
    min-width: 180px;
}

.canvas-map-container .cargo-filter-clear[b-epudq58not] {
    padding: 0.25rem 0.5rem;
    border: 1px solid var(--map-controls-border);
    background: var(--map-controls-bg);
    border-radius: 4px;
    font-size: 0.8rem;
    cursor: pointer;
    color: var(--color-text-muted);
    line-height: 1;
}

.canvas-map-container .cargo-filter-clear:hover[b-epudq58not] {
    background: var(--map-controls-bg-hover);
    color: var(--color-danger);
    border-color: var(--color-danger);
}

.canvas-map-container .map-controls[b-epudq58not] {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    z-index: 50;
}

.canvas-map-container .map-btn[b-epudq58not] {
    width: 36px;
    height: 36px;
    border: 1px solid var(--map-controls-border);
    background: var(--map-controls-bg);
    border-radius: 4px;
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.canvas-map-container .map-btn:hover[b-epudq58not] {
    background: var(--map-controls-bg-hover);
    border-color: var(--map-controls-border-hover);
}

.canvas-map-container .map-btn-recenter svg[b-epudq58not] {
    width: 16px;
    height: 16px;
}

.canvas-map-container .map-relocate-banner[b-epudq58not] {
    position: absolute;
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(255, 193, 7, 0.9);
    color: #1a1a1a;
    padding: 8px 16px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    z-index: 60;
    pointer-events: none;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
/* /Components/Home/CaptainsNotebookDialog.razor.rz.scp.css */
.captains-notebook[b-3tg51j3iws] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.captains-notebook p[b-3tg51j3iws] {
    margin: 0;
    line-height: 1.65;
    color: var(--color-text);
}

.captains-notebook em[b-3tg51j3iws] {
    font-style: italic;
    color: var(--color-text);
}

.captains-notebook strong[b-3tg51j3iws] {
    color: var(--color-port);
    font-weight: 600;
}

.captains-notebook-lede[b-3tg51j3iws] {
    font-style: italic;
    opacity: 0.85;
}

.captains-notebook-article-title[b-3tg51j3iws] {
    margin: 0;
    font-size: 1.15rem;
    color: var(--color-text);
    font-weight: 600;
    font-style: italic;
}

.captains-notebook-entry[b-3tg51j3iws] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding-left: 0.85rem;
    border-left: 2px solid var(--color-port);
}

.captains-notebook-entry h4[b-3tg51j3iws] {
    margin: 0;
    font-size: 1.05rem;
    color: var(--color-port);
    font-weight: 600;
    letter-spacing: 0.02em;
}

.captains-notebook-register[b-3tg51j3iws] {
    font-size: 0.85rem;
    opacity: 0.7;
    font-style: italic;
}

.captains-notebook-coda[b-3tg51j3iws] {
    opacity: 0.85;
    font-style: italic;
}

.captains-notebook-chapters[b-3tg51j3iws] {
    display: flex;
    gap: 0.25rem;
    border-bottom: 1px solid var(--color-border, rgba(255, 255, 255, 0.1));
}

.captains-notebook-chapter-tab[b-3tg51j3iws] {
    appearance: none;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    padding: 0.4rem 0.75rem;
    font: inherit;
    font-size: 0.95rem;
    color: var(--color-text);
    opacity: 0.6;
    cursor: pointer;
    transition: opacity 0.15s ease, border-color 0.15s ease;
}

.captains-notebook-chapter-tab:hover[b-3tg51j3iws] {
    opacity: 0.85;
}

.captains-notebook-chapter-tab.active[b-3tg51j3iws] {
    opacity: 1;
    font-weight: 600;
    border-bottom-color: var(--color-port);
}

/* Fixed-height page so the modal stays one size as you flip between entries. */
.captains-notebook-page[b-3tg51j3iws] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    height: min(30rem, 60vh);
    overflow-y: auto;
    padding-right: 0.5rem;
}

.captains-notebook-loading[b-3tg51j3iws] {
    opacity: 0.7;
    font-style: italic;
}

.captains-notebook-pager[b-3tg51j3iws] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border, rgba(255, 255, 255, 0.1));
}

.captains-notebook-pager-status[b-3tg51j3iws] {
    font-size: 0.85rem;
    opacity: 0.7;
    font-style: italic;
    white-space: nowrap;
}

.captains-notebook-actions[b-3tg51j3iws] {
    display: flex;
    justify-content: flex-end;
    margin-top: 0.5rem;
}
/* /Components/Home/ChartRoomPanel.razor.rz.scp.css */
.chart-room-panel[b-yr1xofoz2r] {
    min-width: 300px;
}

.chart-room-intro[b-yr1xofoz2r] {
    margin-bottom: 0.75rem;
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.route-table-wrap[b-yr1xofoz2r] {
    overflow: auto;
    max-height: 60vh;
    border: 1px solid var(--color-border);
    border-radius: 8px;
}

.route-table[b-yr1xofoz2r] {
    width: 100%;
    /* separate, not collapse: collapsed borders detach from position:sticky headers */
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.85rem;
}

.route-table th[b-yr1xofoz2r] {
    position: sticky;
    top: 0;
    z-index: 1;
    text-align: left;
    padding: 0.45rem 0.6rem;
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
    white-space: nowrap;
}

.route-table td[b-yr1xofoz2r] {
    padding: 0.45rem 0.6rem;
    border-bottom: 1px solid var(--color-border-soft);
    color: var(--color-text);
    white-space: nowrap;
}

.route-table tbody tr:last-child td[b-yr1xofoz2r] {
    border-bottom: none;
}

.route-row[b-yr1xofoz2r] {
    cursor: pointer;
}

.route-row:hover[b-yr1xofoz2r] {
    background: var(--color-surface-alt);
}

.col-num[b-yr1xofoz2r],
.route-table th.col-num[b-yr1xofoz2r] {
    text-align: right;
    font-family: var(--font-mono);
}

.route-distance[b-yr1xofoz2r],
.route-arrival[b-yr1xofoz2r] {
    display: block;
    font-size: 0.7rem;
    color: var(--color-text-muted);
}

.sort-header[b-yr1xofoz2r] {
    /* inherits the th typography; the button exists for tap targets and a11y */
    all: unset;
    cursor: pointer;
    font: inherit;
    color: inherit;
    text-transform: inherit;
    letter-spacing: inherit;
    white-space: nowrap;
}

.sort-header:hover[b-yr1xofoz2r],
.sort-header.active[b-yr1xofoz2r] {
    color: var(--color-text);
}

.route-rate[b-yr1xofoz2r] {
    font-weight: 700;
}

.staleness-dot[b-yr1xofoz2r] {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    margin-left: 0.35rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--color-warning);
    cursor: pointer;
    vertical-align: middle;
}

.staleness-note-row td[b-yr1xofoz2r] {
    padding: 0;
}

.staleness-note[b-yr1xofoz2r] {
    padding: 0.4rem 0.6rem;
    font-size: 0.78rem;
    color: var(--color-text-subtle);
    background: var(--color-surface);
    border-left: 3px solid var(--color-warning);
}

.no-data[b-yr1xofoz2r],
.loading-prices[b-yr1xofoz2r] {
    color: var(--color-text-muted);
    font-style: italic;
}
/* /Components/Home/CloseAccountDialog.razor.rz.scp.css */
.close-account-dialog[b-ql1eesfwp5] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.close-account-dialog .warning[b-ql1eesfwp5] {
    margin: 0;
    line-height: 1.4;
}

.close-account-dialog label[b-ql1eesfwp5] {
    font-size: 0.9rem;
    margin-top: 0.25rem;
}

.confirm-input[b-ql1eesfwp5] {
    padding: 0.5rem;
    border-radius: 4px;
    border: 1px solid var(--color-border, #888);
    background: var(--color-input-bg, #fff);
    color: var(--color-text, #000);
}

.dialog-error[b-ql1eesfwp5] {
    color: var(--color-danger, #c0392b);
    font-size: 0.9rem;
}

.btn-danger[b-ql1eesfwp5] {
    background: var(--color-danger, #c0392b);
    color: #fff;
    border: none;
    padding: 0.5rem 0.9rem;
    border-radius: 4px;
    cursor: pointer;
}

.btn-danger:disabled[b-ql1eesfwp5] {
    opacity: 0.5;
    cursor: not-allowed;
}
/* /Components/Home/ContractsPanel.razor.rz.scp.css */
.contracts-panel[b-o3dlkdm66l] {
    margin-top: 14px;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(6, 14, 30, 0.88), rgba(6, 14, 30, 0.72));
    color: #f2f7ff;
}

.contracts-header h3[b-o3dlkdm66l] {
    margin: 0;
    font-size: 1rem;
}

.contracts-header p[b-o3dlkdm66l] {
    margin: 4px 0 0;
    opacity: 0.85;
    font-size: 0.86rem;
}

.contracts-loading[b-o3dlkdm66l],
.contracts-error[b-o3dlkdm66l],
.muted[b-o3dlkdm66l] {
    margin-top: 12px;
    font-size: 0.9rem;
    opacity: 0.9;
}

.contracts-error[b-o3dlkdm66l] {
    color: #ffb9b9;
}

.contracts-grid[b-o3dlkdm66l] {
    margin-top: 12px;
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}

.contracts-card[b-o3dlkdm66l] {
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 10px;
    padding: 12px;
    background: rgba(7, 19, 40, 0.8);
}

.contracts-card h4[b-o3dlkdm66l] {
    margin: 0 0 8px;
    font-size: 0.95rem;
}

.contract-list[b-o3dlkdm66l] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 10px;
}

.contract-list li[b-o3dlkdm66l] {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 10px;
}

.contract-list li:first-child[b-o3dlkdm66l] {
    border-top: 0;
    padding-top: 0;
}

.contract-title[b-o3dlkdm66l] {
    font-weight: 700;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.contract-expired-badge[b-o3dlkdm66l] {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: #ffb9b9;
    border: 1px solid rgba(255, 100, 100, 0.4);
    border-radius: 4px;
    padding: 1px 6px;
}

.contract-meta[b-o3dlkdm66l] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 0.84rem;
    opacity: 0.92;
    margin: 6px 0;
}

dl[b-o3dlkdm66l] {
    margin: 8px 0;
}

dt[b-o3dlkdm66l] {
    opacity: 0.7;
    font-size: 0.8rem;
}

dd[b-o3dlkdm66l] {
    margin: 0 0 4px;
    font-size: 0.9rem;
}

.contract-actions[b-o3dlkdm66l] {
    display: flex;
    gap: 8px;
    margin-top: 6px;
}

.contract-btn[b-o3dlkdm66l] {
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.08);
    color: #f2f7ff;
    padding: 6px 12px;
    cursor: pointer;
}

.contract-btn.abandon[b-o3dlkdm66l] {
    border-color: rgba(255, 100, 100, 0.35);
    color: #ffb9b9;
}

.contract-btn:disabled[b-o3dlkdm66l] {
    opacity: 0.45;
    cursor: not-allowed;
}
/* /Components/Home/EditProfileDialog.razor.rz.scp.css */
.rename-form[b-73vj34e952] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rename-form-copy[b-73vj34e952] {
    color: var(--color-text-subtle);
    font-size: 0.95rem;
    line-height: 1.5;
}

.rename-field[b-73vj34e952] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rename-field label[b-73vj34e952] {
    color: var(--color-text);
    font-size: 0.9rem;
    font-weight: 600;
}

.rename-field input[b-73vj34e952] {
    border: 1px solid var(--color-input-border);
    border-radius: 8px;
    padding: 0.7rem 0.85rem;
    font-size: 0.95rem;
    background: var(--color-input-bg);
    color: var(--color-text);
}

.rename-field input:focus[b-73vj34e952] {
    outline: none;
    border-color: var(--status-accent-docked);
    box-shadow: 0 0 0 3px rgba(52, 152, 219, 0.16);
}

.rename-error[b-73vj34e952] {
    background: var(--bg-danger-soft);
    border: 1px solid var(--border-danger-soft);
    border-radius: 8px;
    color: var(--text-danger-strong);
    padding: 0.75rem 0.85rem;
    font-size: 0.9rem;
}

.rename-actions[b-73vj34e952] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

@media (max-width: 640px) {
    .rename-actions[b-73vj34e952] {
        flex-direction: column-reverse;
    }

    .rename-actions button[b-73vj34e952] {
        width: 100%;
    }
}
/* /Components/Home/IntroDialog.razor.rz.scp.css */
.intro-dialog[b-nnihqx83qw] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.intro-dialog p[b-nnihqx83qw] {
    margin: 0;
    line-height: 1.65;
    color: var(--color-text);
}

.intro-dialog em[b-nnihqx83qw] {
    font-style: italic;
    color: var(--color-text);
}

.intro-dialog strong[b-nnihqx83qw] {
    color: var(--color-port);
    font-weight: 600;
}
/* /Components/Home/ManageAdminsDialog.razor.rz.scp.css */
.manage-admins-search[b-z8dqvijn7t] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.manage-admins-search input[type="search"][b-z8dqvijn7t] {
    flex: 1;
    padding: 0.5rem 0.75rem;
    font-size: 1rem;
}

.manage-admins-status[b-z8dqvijn7t] {
    flex: 0 0 6rem;
    visibility: hidden;
}

.manage-admins-status.is-active[b-z8dqvijn7t] {
    visibility: visible;
}

.manage-admins-results[b-z8dqvijn7t] {
    min-height: 60vh;
    overflow-y: auto;
}

.manage-admins-table[b-z8dqvijn7t] {
    width: 100%;
    border-collapse: collapse;
}

.manage-admins-table th[b-z8dqvijn7t],
.manage-admins-table td[b-z8dqvijn7t] {
    padding: 0.5rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--border-color, #333);
}

.manage-admins-table th[b-z8dqvijn7t] {
    font-weight: 600;
    opacity: 0.8;
}

.provider-cell[b-z8dqvijn7t] {
    white-space: nowrap;
}

.provider-icon[b-z8dqvijn7t] {
    display: inline-flex;
    align-items: center;
    margin-right: 0.35rem;
    opacity: 0.85;
}

.provider-icon:last-child[b-z8dqvijn7t] {
    margin-right: 0;
}

.provider-github[b-z8dqvijn7t] { color: var(--color-text); }
.provider-discord[b-z8dqvijn7t] { color: #5865f2; }

.status-pill[b-z8dqvijn7t] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.4;
}

.status-active[b-z8dqvijn7t] {
    background: rgba(74, 222, 128, 0.15);
    color: var(--success-color, #4ade80);
}

.status-banned[b-z8dqvijn7t] {
    background: rgba(248, 113, 113, 0.15);
    color: var(--danger-color, #f87171);
}

.admin-player-actions[b-z8dqvijn7t] {
    min-width: 12rem;
}

.admin-player-action[b-z8dqvijn7t] {
    margin: 0.25rem 0.35rem 0.25rem 0;
    padding: 0.2rem 0.45rem;
    border: 1px solid var(--border-color, #555);
    border-radius: 4px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 0.8rem;
}

.admin-player-action:hover[b-z8dqvijn7t] {
    background: rgba(255, 255, 255, 0.08);
}

.ban-reason[b-z8dqvijn7t] {
    max-width: 14rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.8rem;
}

.ban-control[b-z8dqvijn7t] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.2rem;
    margin-top: 0.25rem;
}

.ban-control input[b-z8dqvijn7t] {
    width: 12rem;
    min-width: 8rem;
    padding: 0.25rem 0.4rem;
    font-size: 0.8rem;
}

.admin-level-control[b-z8dqvijn7t] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.admin-level-saved[b-z8dqvijn7t] {
    color: var(--success-color, #4ade80);
    font-weight: bold;
    width: 1ch;
    display: inline-block;
    text-align: center;
    opacity: 0;
}

.admin-level-saved.is-active[b-z8dqvijn7t] {
    animation: admin-saved-fade-b-z8dqvijn7t 2s ease-out forwards;
}

@keyframes admin-saved-fade-b-z8dqvijn7t {
    0% { opacity: 0; transform: scale(0.6); }
    15% { opacity: 1; transform: scale(1); }
    80% { opacity: 1; }
    100% { opacity: 0; }
}

.admin-menu-error[b-z8dqvijn7t] {
    margin-bottom: 0.75rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--danger-color, #f87171);
    color: var(--danger-color, #f87171);
    border-radius: 4px;
}

.muted[b-z8dqvijn7t] {
    opacity: 0.6;
}
/* /Components/Home/NoticeDialog.razor.rz.scp.css */
.notice-dialog[b-1nvaypbjio] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.notice-dialog p[b-1nvaypbjio] {
    margin: 0;
    line-height: 1.4;
}
/* /Components/Home/PortEditorPanel.razor.rz.scp.css */
.port-editor-panel[b-uxkygsdpal] {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--editor-panel-width, 420px);
    height: 100%;
    overflow-y: auto;
    background: var(--map-panel-bg, color-mix(in srgb, var(--color-panel) 95%, transparent));
    border: 1px solid var(--color-border, #dee2e6);
    border-left: none;
    border-radius: 0 8px 8px 0;
    padding: 12px 16px;
    box-shadow: 4px 0 16px rgba(0, 0, 0, 0.3);
    z-index: 50;
    font-size: 13px;
    color: var(--color-text, #2c3e50);
    backdrop-filter: blur(4px);
}

.port-editor-panel label[b-uxkygsdpal] {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    font-size: 12px;
    color: var(--color-text-muted, #6c757d);
}

.port-editor-panel input[type="text"][b-uxkygsdpal],
.port-editor-panel select[b-uxkygsdpal],
.port-editor-panel textarea[b-uxkygsdpal] {
    width: 100%;
    padding: 6px 8px;
    border: 1px solid var(--color-border, #dee2e6);
    border-radius: 4px;
    background: var(--color-panel, #ffffff);
    color: var(--color-text, #2c3e50);
    font-size: 13px;
    margin-bottom: 8px;
    box-sizing: border-box;
}

.port-editor-panel textarea[b-uxkygsdpal] {
    resize: vertical;
    font-family: inherit;
}

.editor-header[b-uxkygsdpal] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--color-border, #dee2e6);
    padding-bottom: 6px;
}

.editor-header h4[b-uxkygsdpal] {
    flex: 1;
    margin: 0;
    font-size: 15px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.editor-back[b-uxkygsdpal],
.editor-close[b-uxkygsdpal] {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
    color: var(--color-text-muted, #6c757d);
    line-height: 1;
    padding: 0;
    flex-shrink: 0;
}

.editor-back:hover[b-uxkygsdpal],
.editor-close:hover[b-uxkygsdpal] {
    color: var(--color-text, #2c3e50);
}

.editor-tabs[b-uxkygsdpal] {
    display: flex;
    gap: 4px;
    margin-bottom: 12px;
}

.editor-tab[b-uxkygsdpal] {
    flex: 1;
    padding: 6px 4px;
    border: 1px solid var(--color-border, #dee2e6);
    border-radius: 6px;
    background: transparent;
    color: var(--color-text-muted, #6c757d);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.editor-tab:hover[b-uxkygsdpal] {
    color: var(--color-text, #2c3e50);
}

.editor-tab.active[b-uxkygsdpal] {
    background: var(--color-port, #3498db);
    border-color: var(--color-port, #3498db);
    color: #fff;
}

.editor-section[b-uxkygsdpal] {
    margin-bottom: 10px;
}

.editor-flags[b-uxkygsdpal] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.editor-flags-grid[b-uxkygsdpal] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px 10px;
}

.editor-hint[b-uxkygsdpal] {
    font-size: 11px;
    color: var(--color-text-muted, #6c757d);
    margin-bottom: 8px;
}

.cargo-price-list[b-uxkygsdpal] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.cargo-price-row[b-uxkygsdpal] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cargo-price-row.off[b-uxkygsdpal] {
    opacity: 0.5;
}

.cargo-price-toggle[b-uxkygsdpal] {
    flex: 1;
    margin-bottom: 0;
}

.cargo-price-input[b-uxkygsdpal] {
    width: 84px;
    padding: 5px 6px;
    border: 1px solid var(--color-border, #dee2e6);
    border-radius: 4px;
    background: var(--color-panel, #ffffff);
    color: var(--color-text, #2c3e50);
    font-size: 13px;
    text-align: right;
    box-sizing: border-box;
    font-variant-numeric: tabular-nums;
}

.cargo-price-input:disabled[b-uxkygsdpal] {
    background: var(--color-surface, #f8f9fa);
    cursor: not-allowed;
}

.flag-checkbox[b-uxkygsdpal] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: normal;
    cursor: pointer;
    font-size: 12px;
}

.flag-checkbox input[b-uxkygsdpal] {
    cursor: pointer;
}

.editor-readonly[b-uxkygsdpal] {
    font-size: 13px;
    color: var(--color-text, #2c3e50);
}

.editor-closest[b-uxkygsdpal] {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.closest-item[b-uxkygsdpal] {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
}

.closest-name[b-uxkygsdpal] {
    color: var(--color-text, #2c3e50);
}

.closest-dist[b-uxkygsdpal] {
    color: var(--color-text-muted, #6c757d);
    font-variant-numeric: tabular-nums;
}

.editor-actions[b-uxkygsdpal] {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--color-border, #dee2e6);
}

.editor-actions button[b-uxkygsdpal] {
    flex: 1;
}

.editor-actions-stacked[b-uxkygsdpal] {
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.editor-delete-actions[b-uxkygsdpal] {
    margin-top: 8px;
    border-top: 1px solid var(--color-border, #dee2e6);
    padding-top: 10px;
}

.editor-delete-actions button[b-uxkygsdpal] {
    background: var(--color-danger, #dc3545);
    color: #fff;
    border: none;
}

.editor-delete-actions button:hover[b-uxkygsdpal] {
    background: #c0392b;
}

.editor-error[b-uxkygsdpal] {
    margin-top: 8px;
    padding: 6px 8px;
    background: rgba(231, 76, 60, 0.1);
    border: 1px solid rgba(231, 76, 60, 0.3);
    border-radius: 4px;
    color: #c0392b;
    font-size: 12px;
}

.image-upload-row[b-uxkygsdpal] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.image-upload-preview[b-uxkygsdpal] {
    width: 40px;
    height: 40px;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--color-border, #dee2e6);
    flex-shrink: 0;
}

.editor-empty[b-uxkygsdpal] {
    padding: 20px 10px;
    text-align: center;
    color: var(--color-text-muted, #6c757d);
    font-size: 13px;
}

/* Dark theme overrides */
[data-theme="dark"] .port-editor-panel[b-uxkygsdpal] {
    --map-panel-bg: color-mix(in srgb, var(--color-panel) 92%, transparent);
}
/* /Components/Home/PortHubModal.razor.rz.scp.css */
/* Tab strip spans the full modal width; art + body share the row beneath it, so
   tabs never shift when a tab (Chart Room) drops the art panel. */
.port-hub[b-2t53tjhu2x] {
    display: flex;
    flex-direction: column;
    gap: 0;
    height: 100%;
    min-height: 0;
}

.port-hub-content[b-2t53tjhu2x] {
    display: flex;
    flex-direction: row;
    flex: 1 1 auto;
    min-height: 0;
}

.port-hub-art[b-2t53tjhu2x] {
    position: relative;
    flex: 0 0 50%;
    max-width: 50%;
    min-width: 240px;
    background: var(--color-surface);
    border-right: 1px solid var(--color-border);
    overflow: hidden;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
}

.port-hub-art img[b-2t53tjhu2x] {
    width: 98%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.port-hub-art-replace[b-2t53tjhu2x] {
    position: absolute;
    right: 10px;
    bottom: 10px;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.port-hub-art-replace-btn[b-2t53tjhu2x] {
    padding: 6px 12px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--color-panel) 85%, transparent);
    border: 1px solid var(--color-border);
    color: var(--color-text);
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    backdrop-filter: blur(4px);
}

.port-hub-art-replace-btn:hover[b-2t53tjhu2x] {
    background: var(--color-panel);
}

.port-hub-art-replace-buttons[b-2t53tjhu2x] {
    display: flex;
    gap: 6px;
}

.port-hub-art-replace-error[b-2t53tjhu2x] {
    max-width: 220px;
    padding: 4px 8px;
    background: rgba(231, 76, 60, 0.15);
    border: 1px solid rgba(231, 76, 60, 0.4);
    border-radius: 4px;
    color: #c0392b;
    font-size: 11px;
    text-align: right;
}

.port-hub-art-manager[b-2t53tjhu2x] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    width: 220px;
    max-height: 160px;
    overflow-y: auto;
    padding: 8px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--color-panel) 92%, transparent);
    border: 1px solid var(--color-border);
    backdrop-filter: blur(4px);
}

.port-hub-art-manager-hint[b-2t53tjhu2x] {
    font-size: 11px;
    color: var(--color-text-muted);
    text-align: right;
}

.port-hub-art-manager-thumb[b-2t53tjhu2x] {
    position: relative;
    width: 44px;
    height: 44px;
    flex-shrink: 0;
}

.port-hub-art-manager-thumb img[b-2t53tjhu2x] {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 4px;
    border: 1px solid var(--color-border);
    display: block;
}

.port-hub-art-manager-remove[b-2t53tjhu2x] {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-danger, #dc3545);
    color: #fff;
    border: none;
    font-size: 11px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.port-hub-art-manager-remove:disabled[b-2t53tjhu2x] {
    opacity: 0.6;
    cursor: not-allowed;
}

@media (max-width: 900px) {
    .port-hub-content[b-2t53tjhu2x] {
        flex-direction: column;
    }

    .port-hub-art[b-2t53tjhu2x] {
        flex: 0 0 200px;
        max-width: none;
        border-right: none;
        border-bottom: 1px solid var(--color-border);
    }
}

.port-hub-tabs[b-2t53tjhu2x] {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-surface);
}

.hub-tab[b-2t53tjhu2x] {
    flex: 1;
    padding: 0.75rem;
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    font-weight: 600;
    cursor: pointer;
    border-bottom: 3px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.hub-tab:hover[b-2t53tjhu2x] {
    color: var(--color-text);
}

.hub-tab.active[b-2t53tjhu2x] {
    color: var(--color-port);
    border-bottom-color: var(--color-port);
}

.hub-tab:disabled[b-2t53tjhu2x] {
    color: var(--color-text-subtle);
    cursor: not-allowed;
    opacity: 0.55;
}

.hub-tab:disabled:hover[b-2t53tjhu2x] {
    color: var(--color-text-subtle);
}

.hub-tab-badge[b-2t53tjhu2x] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.4rem;
    margin-left: 0.4rem;
    border-radius: 999px;
    background: var(--color-danger);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
    vertical-align: middle;
}

.hub-tab-dot[b-2t53tjhu2x] {
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    margin-left: 0.35rem;
    border-radius: 999px;
    background: var(--color-warning);
    vertical-align: middle;
}

.port-hub-body[b-2t53tjhu2x] {
    padding: 1rem;
    min-height: 0;
    min-width: 0;
    flex: 1 1 auto;
    overflow-y: auto;
}

.port-hub-title[b-2t53tjhu2x] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.port-hub-title h3[b-2t53tjhu2x] {
    margin: 0;
}

.port-hub-info-btn[b-2t53tjhu2x] {
    border: 2px solid var(--color-border);
    background: transparent;
    color: var(--color-text-muted);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.15rem 0.35rem;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}

.port-hub-info-btn:hover[b-2t53tjhu2x] {
    color: var(--color-port);
    background: color-mix(in srgb, var(--color-port) 12%, transparent);
}
/* /Components/Home/PortInfoDialog.razor.rz.scp.css */
.port-info-dialog[b-s1dpflek3w] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.port-info-image[b-s1dpflek3w] {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    max-height: 240px;
}

.port-info-image img[b-s1dpflek3w] {
    width: 100%;
    height: 100%;
    max-height: 240px;
    object-fit: contain;
    display: block;
}

.port-info-details[b-s1dpflek3w] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.port-info-region[b-s1dpflek3w] {
    font-size: 0.9rem;
    color: var(--color-text-muted);
    font-style: italic;
}

.port-info-tags[b-s1dpflek3w] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.port-info-tag[b-s1dpflek3w] {
    display: inline-block;
    padding: 0.15rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-port);
    background: color-mix(in srgb, var(--color-port) 12%, transparent);
    border: 1px solid color-mix(in srgb, var(--color-port) 35%, transparent);
    border-radius: 999px;
}

.port-info-description[b-s1dpflek3w] {
    line-height: 1.6;
    color: var(--color-text-subtle);
    margin: 0;
}
/* /Components/Home/ShipView.razor.rz.scp.css */
.ship-view[b-6r7defar61] {
    position: absolute;
    inset: 0;
    /* Sits at the map's layer: above map content (<=100), below the global chrome
       (player menu 200, toasts 950, modals 1000) so those stay reachable. */
    z-index: 150;
    background: radial-gradient(ellipse at 50% 30%, #24384f 0%, #16222f 70%, #0e1721 100%);
    overflow: hidden;
}

.ship-view-canvas[b-6r7defar61] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.ship-view-back[b-6r7defar61] {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 16px 10px 12px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text, #f2ede3);
    background: rgba(14, 23, 33, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background 0.15s ease, transform 0.15s ease;
}

.ship-view-back:hover[b-6r7defar61] {
    background: rgba(30, 46, 64, 0.92);
    transform: translateY(-1px);
}

.ship-view-back svg[b-6r7defar61] {
    flex: none;
}

.ship-view-nameplate[b-6r7defar61] {
    position: absolute;
    top: 18px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 2;
    font-family: 'IM Fell English SC', serif;
    font-size: 1.5rem;
    letter-spacing: 0.04em;
    color: var(--color-text, #f2ede3);
    text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
    pointer-events: none;
}
/* /Components/Home/ShipwrightPanel.razor.rz.scp.css */
.upgrades-loading[b-kmnd9sq3va] {
    color: var(--color-text-subtle);
    font-size: 0.95rem;
}

.upgrades-error[b-kmnd9sq3va] {
    background: var(--bg-danger-soft);
    border: 1px solid var(--border-danger-soft);
    border-radius: 8px;
    color: var(--text-danger-strong);
    padding: 0.75rem 0.85rem;
    font-size: 0.9rem;
}

.upgrades-summary[b-kmnd9sq3va] {
    display: grid;
    gap: 0.3rem;
    margin-bottom: 0.85rem;
    color: var(--color-text);
    font-size: 0.9rem;
}

.upgrade-tracks[b-kmnd9sq3va] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
    align-items: start;
}

@media (max-width: 640px) {
    .upgrade-tracks[b-kmnd9sq3va] {
        grid-template-columns: 1fr;
    }
}

.upgrade-track[b-kmnd9sq3va] {
    border: 1px solid var(--color-border-soft);
    border-radius: 10px;
    padding: 0.85rem;
    display: grid;
    gap: 0.6rem;
}

.track-header[b-kmnd9sq3va] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.track-header h4[b-kmnd9sq3va] {
    margin: 0;
    color: var(--color-text);
    font-style: normal;
}

.track-level[b-kmnd9sq3va] {
    font-size: 0.82rem;
    color: var(--color-text-muted);
}

.track-stats[b-kmnd9sq3va] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    font-size: 0.85rem;
    color: var(--color-text-subtle);
}

.track-note[b-kmnd9sq3va] {
    font-size: 0.82rem;
    color: var(--text-warning-strong);
    background: var(--bg-warning-soft);
    border: 1px solid var(--border-warning-soft);
    border-radius: 8px;
    padding: 0.45rem 0.55rem;
}

.track-warning[b-kmnd9sq3va] {
    font-size: 0.85rem;
    color: var(--text-warning-strong);
    background: var(--bg-warning-soft);
    border: 1px solid var(--border-warning-soft);
    border-radius: 8px;
    padding: 0.5rem 0.6rem;
    line-height: 1.4;
}

.confirm-actions[b-kmnd9sq3va] {
    display: flex;
    gap: 0.5rem;
}

.confirm-actions .btn-primary[b-kmnd9sq3va],
.confirm-actions .btn-secondary[b-kmnd9sq3va] {
    flex: 1;
}

.repair-bar[b-kmnd9sq3va] {
    height: 10px;
    border-radius: 999px;
    background: var(--color-border-soft);
    overflow: hidden;
}

.repair-bar-fill[b-kmnd9sq3va] {
    height: 100%;
    border-radius: 999px;
    background: var(--color-success);
    transition: width 250ms ease;
}

.repair-controls[b-kmnd9sq3va] {
    display: grid;
    gap: 0.45rem;
}

.repair-target-row[b-kmnd9sq3va] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--color-text-subtle);
}

.repair-controls input[type="range"][b-kmnd9sq3va] {
    width: 100%;
}

.repair-cost-row[b-kmnd9sq3va] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.85rem;
    color: var(--color-text-subtle);
}

.repair-rate-note[b-kmnd9sq3va] {
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.repair-rate-value[b-kmnd9sq3va] {
    display: block;
}

.repair-rate-formula[b-kmnd9sq3va] {
    display: block;
    margin-top: 0.1rem;
    font-size: 0.7rem;
    color: var(--color-text-subtle);
}
/* /Components/Home/StatusBar.razor.rz.scp.css */
.status-bar[b-hv57r59sfg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 1rem;
    background:  var(--color-surface);
    color: var(--color-text);
    font-size: 1rem;
    flex-shrink: 0;
}

.status-bar-left[b-hv57r59sfg],
.status-bar-center[b-hv57r59sfg],
.status-bar-right[b-hv57r59sfg] {
    display: flex;
    align-items: center;
    gap: 1rem;
    
}

.status-item[b-hv57r59sfg] {
    font-family: var(--font-parchment), sans-serif;
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.status-item.ship-name[b-hv57r59sfg] {
    font-weight: 600;
}

.status-item.location .flying[b-hv57r59sfg] {
    color: var(--status-accent-flying);
}

.status-item.location .docked[b-hv57r59sfg] {
    color: var(--status-accent-docked);
}

.player-menu-container[b-hv57r59sfg] {
    position: relative;
}

.player-menu-trigger[b-hv57r59sfg] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.1);
    border: none;
    border-radius: 4px;
    padding: 0.35rem 0.6rem;
    color: var(--color-text);
    cursor: pointer;
    font-size: inherit;
}

.player-menu-trigger:hover[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.2);
}

.player-avatar[b-hv57r59sfg] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}

.player-avatar-placeholder[b-hv57r59sfg] {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--status-accent-docked);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 0.75rem;
}

.player-name[b-hv57r59sfg] {
    font-weight: 600;
}

.menu-arrow[b-hv57r59sfg] {
    font-size: 0.65rem;
    opacity: 0.8;
}

.player-menu-dropdown[b-hv57r59sfg] {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 0.25rem;
    background: var(--color-surface);
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    min-width: 180px;
    z-index: 200;
    overflow: hidden;
}

.player-menu-summary[b-hv57r59sfg] {
    padding: 0.7rem 0.75rem 0.6rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
}

.player-menu-summary-name[b-hv57r59sfg] {
    font-size: 0.9rem;
    font-weight: 700;
}

.player-menu-summary-ship[b-hv57r59sfg] {
    margin-top: 0.2rem;
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.74rem;
}

.admin-menu-panel[b-hv57r59sfg] {
    padding: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(0, 0, 0, 0.12);
}

.admin-menu-header[b-hv57r59sfg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
}

.invite-create-btn[b-hv57r59sfg],
.invite-delete-btn[b-hv57r59sfg] {
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.75rem;
}

.invite-create-btn[b-hv57r59sfg] {
    padding: 0.4rem 0.6rem;
    background: var(--status-accent-flying);
    color: var(--color-on-accent);
}

.invite-create-btn:disabled[b-hv57r59sfg] {
    opacity: 0.7;
    cursor: progress;
}

.admin-menu-error[b-hv57r59sfg] {
    margin-bottom: 0.6rem;
    color: #ffd6d6;
    font-size: 0.75rem;
}

.latest-invite-box[b-hv57r59sfg] {
    margin-bottom: 0.7rem;
    padding: 0.55rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.08);
}

.latest-invite-label[b-hv57r59sfg],
.latest-invite-meta[b-hv57r59sfg],
.admin-menu-empty[b-hv57r59sfg],
.invite-list-meta[b-hv57r59sfg] {
    font-size: 0.72rem;
}

.latest-invite-label[b-hv57r59sfg],
.latest-invite-meta[b-hv57r59sfg],
.invite-list-meta[b-hv57r59sfg] {
    color: rgba(255, 255, 255, 0.75);
}

.linked-provider-name[b-hv57r59sfg] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.85rem;
    color: var(--color-text, #fff);
}

.latest-invite-value[b-hv57r59sfg] {
    margin: 0.2rem 0;
    font-family: monospace;
    font-size: 0.82rem;
    word-break: break-all;
}

.invite-list[b-hv57r59sfg] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.invite-list-item[b-hv57r59sfg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.45rem 0.5rem;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.06);
}

.invite-list-meta[b-hv57r59sfg] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.invite-delete-btn[b-hv57r59sfg] {
    padding: 0.35rem 0.5rem;
    background: rgba(255, 255, 255, 0.14);
    color: var(--color-text);
}

.invite-delete-btn:hover[b-hv57r59sfg],
.invite-create-btn:hover[b-hv57r59sfg] {
    filter: brightness(1.05);
}

.menu-item[b-hv57r59sfg] {
    display: block;
    width: 100%;
    padding: 0.5rem 0.75rem;
    background: none;
    border: none;
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
    font-size: 0.85rem;
}

.menu-item:hover[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.1);
}

.menu-item.active[b-hv57r59sfg] {
    background: rgba(255, 193, 7, 0.2);
    color: #ffc107;
    font-weight: 600;
}

.menu-item-danger[b-hv57r59sfg] {
    color: var(--color-danger, #c0392b);
}

.theme-toggle-item[b-hv57r59sfg] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
}

.theme-toggle-icon[b-hv57r59sfg] {
    font-size: 1rem;
    line-height: 1;
}

.status-item.cargo[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.1);
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
}

.status-item.market-timer[b-hv57r59sfg] {
    font-size: 0.72rem;
    font-family: var(--font-body);
    padding: 0.2rem 0.45rem;
    border-radius: 999px;
    border: 1px solid transparent;
    white-space: nowrap;
}

.status-item.market-timer.connected[b-hv57r59sfg] {
    background: rgba(39, 174, 96, 0.25);
    border-color: rgba(39, 174, 96, 0.5);
    color: #d8ffeb;
}

.status-item.market-timer.disconnected[b-hv57r59sfg] {
    background: rgba(243, 156, 18, 0.2);
    border-color: rgba(243, 156, 18, 0.45);
    color: #ffe4ad;
}

.status-item.market-timer.disabled[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.75);
}

.market-tick-btn[b-hv57r59sfg] {
    border: 1px solid rgba(255, 255, 255, 0.3);
    background: rgba(255, 255, 255, 0.12);
    color: var(--color-text);
    border-radius: 4px;
    font-size: 0.68rem;
    font-weight: 600;
    padding: 0.18rem 0.4rem;
    cursor: pointer;
}

.market-tick-btn:hover:not(:disabled)[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.2);
}

.market-tick-btn:disabled[b-hv57r59sfg] {
    opacity: 0.65;
    cursor: progress;
}

.status-item.balance[b-hv57r59sfg] {
    font-weight: 600;
    color: var(--status-accent-balance);
}

.location-btn[b-hv57r59sfg] {
    font-family: var(--font-parchment);
    font-size: 2rem;
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.location-btn:hover[b-hv57r59sfg] {
    text-decoration: underline;
}

.location-region[b-hv57r59sfg] {
    font-size: 1rem;
    opacity: 0.7;
}

.location-btn.docked[b-hv57r59sfg] {
    color: var(--status-accent-docked);
}

.trade-btn[b-hv57r59sfg] {
    background: var(--status-accent-flying);
    border: none;
    border-radius: 4px;
    color: var(--color-on-accent);
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
}

.trade-btn:hover[b-hv57r59sfg] {
    background: #219a52;
}

.contracts-btn[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 4px;
    color: var(--color-text);
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    font-size: 0.8rem;
    font-weight: 600;
}

.contracts-btn:hover[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.27);
}

.status-more-btn[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    color: var(--color-text);
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    font-size: 0.75rem;
}

.status-more-btn:hover[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.2);
}

.status-bar-expanded[b-hv57r59sfg] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--status-bg-end);
    padding: 1rem;
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    z-index: 100;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.expanded-section[b-hv57r59sfg] {
    min-width: 200px;
}

.expanded-section h4[b-hv57r59sfg] {
    margin: 0 0 0.5rem 0;
    font-size: 0.85rem;
    color: var(--status-muted);
    text-transform: uppercase;
}

.detail-row[b-hv57r59sfg] {
    display: flex;
    justify-content: space-between;
    padding: 0.25rem 0;
}

.detail-label[b-hv57r59sfg] {
    color: var(--status-muted);
}

.detail-value[b-hv57r59sfg] {
    color: var(--color-text);
    font-family: monospace;
}

.cargo-list[b-hv57r59sfg] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.cargo-item[b-hv57r59sfg] {
    background: rgba(255, 255, 255, 0.1);
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8rem;
}

@media (max-width: 1024px) {
    .status-bar[b-hv57r59sfg] {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .status-bar-center[b-hv57r59sfg] {
        order: 3;
        width: 100%;
        justify-content: center;
        margin-top: 0.25rem;
    }

    .status-item.market-timer[b-hv57r59sfg] {
        font-size: 0.68rem;
    }
}

@media (max-height: 600px) {
    .status-bar[b-hv57r59sfg] {
        padding: 0.35rem 0.75rem;
        font-size: 0.75rem;
    }
}
/* /Components/Home/TradingPanel.razor.rz.scp.css */
.trading-panel[b-codkv6tcle] {
    min-width: 300px;
}

.trading-header[b-codkv6tcle] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.trade-status-strip[b-codkv6tcle] {
    display: grid;
    grid-template-columns: repeat(2, minmax(90px, auto));
    gap: 0.45rem;
}

.trade-status-item[b-codkv6tcle] {
    background: var(--color-panel);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.trade-status-item .label[b-codkv6tcle] {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    font-weight: 600;
}

.trade-status-item .value[b-codkv6tcle] {
    font-family: var(--font-mono);
    font-size: 0.82rem;
    color: var(--color-text);
    font-weight: 700;
}

.trade-status-item .value.insufficient[b-codkv6tcle] {
    color: var(--color-danger);
}

.trade-status-item .value.sufficient[b-codkv6tcle] {
    color: var(--color-success);
}

.port-status[b-codkv6tcle] {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 500;
}

.port-status.open[b-codkv6tcle] {
    background: var(--bg-success-soft);
    color: var(--text-success-strong);
}

.port-status.closed[b-codkv6tcle] {
    background: var(--color-port-status-closed-bg);
    color: var(--color-port-status-closed-text);
}

.trading-comparison[b-codkv6tcle] {
    margin-bottom: 1rem;
}

.comparison-columns[b-codkv6tcle] {
    gap: 1rem;
}

.comparison-columns.three-columns[b-codkv6tcle] {
    grid-template-columns: 1fr 1fr 1fr;
}

.trade-col-current .trade-col-header[b-codkv6tcle] {
    background: var(--color-surface);
    color: var(--text-success-strong);
}

.trade-col-destination .trade-col-header[b-codkv6tcle] {
    background: var(--bg-warning-soft);
    color: var(--text-warning-strong);
}

.trade-col-hold .trade-col-header[b-codkv6tcle] {
    background: var(--color-surface);
    color: var(--color-text-subtle);
}

.price-with-profit[b-codkv6tcle] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.profit-indicator[b-codkv6tcle] {
    font-size: 0.7rem;
    font-weight: 700;
}

.profit-indicator.positive[b-codkv6tcle] {
    color: var(--color-success);
}

.profit-indicator.negative[b-codkv6tcle] {
    color: var(--color-danger);
}

.profit-indicator.neutral[b-codkv6tcle] {
    color: var(--color-text-muted);
}

.profit-delta[b-codkv6tcle] {
    font-size: 0.78rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.profit-delta.positive[b-codkv6tcle] {
    color: var(--color-success);
}

.profit-delta.negative[b-codkv6tcle] {
    color: var(--color-danger);
}

.profit-delta.neutral[b-codkv6tcle] {
    color: var(--color-text-muted);
}

.producer-badge[b-codkv6tcle] {
    color: var(--color-port);
    font-weight: 700;
    margin-right: 0.2rem;
    font-size: 0.85em;
}

.comparison-actions[b-codkv6tcle] {
    display: flex;
    gap: 0.75rem;
}

.comparison-actions button[b-codkv6tcle] {
    flex: 1;
}

.trading-table[b-codkv6tcle] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}

.trading-table th[b-codkv6tcle] {
    background: var(--bg-table-header);
    color: var(--color-table-header-text);
    padding: 0.75rem;
    text-align: left;
    font-weight: 600;
    font-size: 0.8rem;
}

.trading-table th.text-right[b-codkv6tcle] {
    text-align: right;
}

.trading-table td[b-codkv6tcle] {
    padding: 0.5rem 0.75rem;
    border-bottom: 1px solid var(--color-border-soft);
}

.trading-table td.cargo-name[b-codkv6tcle] {
    font-weight: 500;
    color: var(--color-text);
}

.trading-table td.price[b-codkv6tcle] {
    font-family: var(--font-mono);
    color: var(--color-text-subtle);
}

.trading-table td.arrow[b-codkv6tcle] {
    color: var(--color-text-muted);
    text-align: center;
}

.trading-table td.profit[b-codkv6tcle] {
    font-family: var(--font-mono);
    font-weight: 600;
}

.trading-table td.profit.positive[b-codkv6tcle] {
    color: var(--color-success);
}

.trading-table td.profit.negative[b-codkv6tcle] {
    color: var(--color-danger);
}

.trading-table td.text-right[b-codkv6tcle] {
    text-align: right;
}

.trading-actions-row[b-codkv6tcle] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--color-border-soft);
}

.btn-block[b-codkv6tcle] {
    width: 100%;
    display: block;
}

.trade-section[b-codkv6tcle] {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid var(--color-border);
}

.trade-columns[b-codkv6tcle] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.trade-col[b-codkv6tcle] {
    border: 1px solid var(--color-border);
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.trade-col-header[b-codkv6tcle] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.4rem 0.6rem;
    font-size: 0.8rem;
    font-weight: 600;
}

.trade-col-hold .trade-col-header[b-codkv6tcle] {
    background: var(--color-surface-alt);
    color: var(--color-text-subtle);
}

.trade-col-port .trade-col-header[b-codkv6tcle] {
    background: var(--bg-success-soft);
    color: var(--text-success-strong);
}

.trade-col-title[b-codkv6tcle] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.trade-col-count[b-codkv6tcle] {
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

.trade-col-count.hold-full[b-codkv6tcle] {
    color: var(--text-danger-strong);
    font-weight: 700;
}

.trade-col-items[b-codkv6tcle] {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.trade-col-row[b-codkv6tcle] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.35rem 0.6rem;
    cursor: pointer;
    transition: background 0.1s;
    font-size: 0.85rem;
    border-top: 1px solid var(--color-border-soft);
}

.trade-col-row:hover[b-codkv6tcle] {
    background: var(--bg-row-hover);
}

.trade-col-row.selected[b-codkv6tcle] {
    background: var(--bg-info-soft);
    font-weight: 600;
}

.trade-col-row.empty .cargo-count[b-codkv6tcle] {
    color: var(--color-input-border);
}

.trade-col-row .cargo-name[b-codkv6tcle] {
    color: var(--color-text-subtle);
}

.trade-col-row .cargo-count[b-codkv6tcle] {
    font-weight: 600;
    color: var(--color-text);
    min-width: 1.5rem;
    text-align: right;
}

.trade-col-row .cargo-price[b-codkv6tcle] {
    font-weight: 600;
    color: var(--color-text);
    font-size: 0.8rem;
}

.trade-col-row .cargo-name[b-codkv6tcle] {
    margin-right: auto;
}

.trade-col-row[b-codkv6tcle] {
    gap: 0.5rem;
}

.trade-col-row .cargo-avg-buy[b-codkv6tcle] {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    white-space: nowrap;
}

.trade-col-row .cargo-pnl[b-codkv6tcle] {
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.trade-col-row .cargo-pnl--gain[b-codkv6tcle] {
    color: var(--color-success);
}

.trade-col-row .cargo-pnl--loss[b-codkv6tcle] {
    color: var(--color-danger);
}

.trade-col-actions[b-codkv6tcle] {
    border-top: 1px solid var(--color-border-soft);
    padding: 0.5rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
    background: var(--color-surface);
}

.trade-option[b-codkv6tcle] {
    border: 1px solid var(--color-input-border);
    border-radius: 6px;
    background: var(--color-input-bg);
    color: var(--color-text);
    padding: 0.4rem 0.35rem;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
    align-items: center;
    cursor: pointer;
}

.trade-option .option-label[b-codkv6tcle] {
    font-size: 0.78rem;
    font-weight: 700;
}

.trade-option .option-value[b-codkv6tcle] {
    font-size: 0.72rem;
    font-family: var(--font-mono);
    color: var(--color-text-muted);
}

.trade-option.buy[b-codkv6tcle] {
    border-color: var(--border-success-soft);
}

.trade-option.sell[b-codkv6tcle] {
    border-color: var(--border-info-soft);
}

.trade-option:hover:enabled[b-codkv6tcle] {
    background: var(--color-surface);
}

.trade-option:disabled[b-codkv6tcle] {
    opacity: 0.55;
    cursor: not-allowed;
}

.trade-form[b-codkv6tcle] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 0.5rem;
}

.trade-field[b-codkv6tcle] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 180px;
}

.trade-field label[b-codkv6tcle] {
    font-weight: 600;
    color: var(--color-text-subtle);
    font-size: 0.9rem;
}

.trade-field input[b-codkv6tcle] {
    padding: 0.5rem;
    border: 1px solid var(--color-input-border);
    border-radius: 6px;
    background: var(--color-input-bg);
    color: var(--color-text);
}

.qty-shortcuts[b-codkv6tcle] {
    display: flex;
    gap: 0.35rem;
}

.qty-btn[b-codkv6tcle] {
    flex: 1;
    padding: 0.45rem 0.5rem;
    border: 1px solid var(--color-input-border);
    border-radius: 6px;
    background: var(--color-surface);
    color: var(--color-text-subtle);
    font-weight: 600;
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.qty-btn:hover[b-codkv6tcle] {
    background: var(--color-border-soft);
}

.qty-btn:active[b-codkv6tcle] {
    background: var(--color-border);
}

.trade-controls-inline[b-codkv6tcle] {
    margin-top: 0.5rem;
}

@media (max-width: 900px) {
    .trading-header[b-codkv6tcle] {
        flex-direction: column;
        align-items: flex-start;
    }

    .trade-status-strip[b-codkv6tcle] {
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .trade-col-actions[b-codkv6tcle] {
        grid-template-columns: 1fr;
    }
}

.trade-closed-note[b-codkv6tcle] {
    margin-top: 1rem;
    padding: 0.75rem;
    background: var(--color-border-soft);
    border-radius: 6px;
    color: var(--color-text-muted);
    font-size: 0.9rem;
}

.trade-validation-message[b-codkv6tcle] {
    margin-top: 0.35rem;
    background: var(--bg-warning-soft);
    color: var(--text-warning-strong);
    border-radius: 4px;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--border-warning-soft);
    font-size: 0.75rem;
    font-style: italic;
}

.trade-error[b-codkv6tcle] {
    margin-top: 0.75rem;
    background: var(--bg-danger-soft);
    color: var(--text-danger-strong);
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--border-danger-soft);
}

.price-grid[b-codkv6tcle] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.price-item[b-codkv6tcle] {
    background: var(--color-panel);
    border: 1px solid var(--color-border);
    border-radius: 4px;
    padding: 0.4rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.price-item .cargo-type[b-codkv6tcle] {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    font-weight: 500;
}

.price-item .price-value[b-codkv6tcle] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text);
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-al3kw1x7sa] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-al3kw1x7sa] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Pages/Privacy.razor.rz.scp.css */
/* html/body are overflow:hidden app-wide, so this page must scroll itself. */
.privacy-page[b-eybgx8f3jx] {
    height: 100vh;
    overflow-y: auto;
    background: var(--color-surface-alt);
    color: var(--color-text);
    padding: 0 1rem 4rem;
}

/* Sticks to the top of the page's own scrollport; full-width so content
   never peeks past it while scrolling. */
.privacy-topbar[b-eybgx8f3jx] {
    position: sticky;
    top: 0;
    z-index: 5;
    margin: 0 -1rem 1.5rem;
    padding: 0.75rem 1rem;
    background: var(--color-surface-alt);
    border-bottom: 1px solid var(--color-border);
}

.privacy-topbar-inner[b-eybgx8f3jx] {
    max-width: 720px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.privacy-back-link[b-eybgx8f3jx] {
    color: var(--color-port);
    text-decoration: none;
    font-weight: 600;
}

.privacy-back-link:hover[b-eybgx8f3jx] {
    text-decoration: underline;
}

.privacy-container[b-eybgx8f3jx] {
    max-width: 720px;
    margin: 0 auto;
    line-height: 1.6;
    background: var(--color-panel);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 2rem;
}

.privacy-container h1[b-eybgx8f3jx] {
    margin-top: 0;
    margin-bottom: 0.25rem;
}

.privacy-logo-wrap[b-eybgx8f3jx] {
    text-align: center;
}

.privacy-logo[b-eybgx8f3jx] {
    max-width: 250px;
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    object-fit: cover;
}

.privacy-theme-toggle[b-eybgx8f3jx] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.75rem;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    background: var(--color-surface);
    color: var(--color-text);
    font-size: 0.85rem;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.privacy-theme-toggle:hover[b-eybgx8f3jx] {
    border-color: var(--color-port);
}

.privacy-theme-icon[b-eybgx8f3jx] {
    font-size: 1rem;
    line-height: 1;
}

.privacy-updated[b-eybgx8f3jx] {
    color: var(--color-text-muted);
    font-size: 0.85rem;
    margin-top: 0;
}

.privacy-container h2[b-eybgx8f3jx] {
    margin-top: 2rem;
    font-size: 1.15rem;
}

.privacy-container a[b-eybgx8f3jx] {
    color: var(--color-port);
}
