html, body
{
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    margin: 0;
    background: #ffffff;
}

/* ---- Boot screen (before Blazor mounts) ---- */

.boot-shell
{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.5rem;
    width: 100vw;
    height: 100vh;
    margin: 0;
    background: #ffffff;
    color: #3a3a3a;
}

.boot-shell-logo
{
    display: block;
    width: min(22rem, calc(100vw - 3rem));
    height: auto;
}

.boot-shell-status
{
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: #5a5a5a;
}

/* ---- Pocket run-cycle loader (sci_run_1..4 @ ~100ms) ---- */

.pocket-loader
{
    position: relative;
    width: 5.5rem;
    height: 5.75rem;
}

.pocket-loader-sm
{
    width: 4.25rem;
    height: 4.5rem;
    margin: 0 auto 0.85rem;
}

.pocket-loader img
{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    animation: pocket-run-frame 0.4s steps(1, end) infinite;
}

.pocket-loader img:nth-child(1) { animation-delay: 0s; }
.pocket-loader img:nth-child(2) { animation-delay: -0.3s; }
.pocket-loader img:nth-child(3) { animation-delay: -0.2s; }
.pocket-loader img:nth-child(4) { animation-delay: -0.1s; }

@keyframes pocket-run-frame
{
    0%,
    24.99% { opacity: 1; }
    25%,
    100% { opacity: 0; }
}

#blazor-error-ui
{
    background: #f5f0c8;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss
    {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }

#theCanvas
{
    position: fixed;
    inset: 0;
    -webkit-user-select: none;
}

/* PocketDev_DefaultSkin - 9-slice panels (corner 8, center 32).
   Border widths are scaled up so the 8px corners read as chunky pixel art. */
:root
{
    --pocket-skin-border: 32px;
    --pocket-skin-border-sm: 20px;
    /* PocketStyles.IndentedColor - window chrome tint only */
    --pocket-indented: #39414b;
    --pocket-text: rgba(242, 240, 234, 0.78);
    --pocket-text-strong: #f2f0ea;
    --pocket-text-on-button: #f2f0ea;
    --pocket-fill: #4a5462;
}

.player-shell
{
    position: fixed;
    inset: 0;
    z-index: 20;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(8, 10, 14, 0.55);
    pointer-events: auto;
}

.player-shell-card
{
    width: min(22rem, calc(100vw - 2.5rem));
    padding: 1.35rem 1.15rem 1.1rem;
    color: var(--pocket-text-strong);
    text-align: center;
    background: transparent;
    border: var(--pocket-skin-border) solid transparent;
    /* WhiteDropShadow × IndentedColor (matches BackgroundSkinColor tint) */
    border-image-source: url("../brand/skin/panel-window.png");
    border-image-slice: 8 fill;
    border-image-width: var(--pocket-skin-border);
    border-image-repeat: stretch;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.player-shell-logo
{
    display: block;
    width: min(16rem, 100%);
    height: auto;
    margin: 0 auto 0.85rem;
}

.player-shell-credit
{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    margin: 0 auto 0.9rem;
    color: var(--pocket-text);
    font-size: 0.95rem;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.player-shell-credit-paused
{
    margin-bottom: 1.1rem;
}

.player-shell-credit-icon
{
    width: 1.75rem;
    height: 1.75rem;
    object-fit: contain;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
    background: #e8eaed;
}

.player-shell-brand
{
    font-family: "Segoe UI", "Helvetica Neue", sans-serif;
    font-size: 1.65rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--pocket-text-strong);
    margin-bottom: 0.85rem;
}

.player-shell-status
{
    font-size: 0.95rem;
    line-height: 1.4;
    color: var(--pocket-text);
    min-height: 1.4em;
    margin-bottom: 1rem;
    word-break: break-word;
}

.player-shell-bar
{
    height: 0.85rem;
    overflow: hidden;
    background: transparent;
    border: var(--pocket-skin-border-sm) solid transparent;
    border-image-source: url("../brand/skin/panel-inset.png");
    border-image-slice: 8 fill;
    border-image-width: var(--pocket-skin-border-sm);
    border-image-repeat: stretch;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.player-shell-bar-fill
{
    height: 100%;
    background: var(--pocket-fill);
    transition: width 160ms ease-out;
}

.player-shell-actions
{
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
    margin-top: 0.35rem;
}

.player-shell-btn
{
    appearance: none;
    cursor: pointer;
    padding: 0.45rem 0.85rem;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--pocket-text-on-button);
    background: transparent;
    border: var(--pocket-skin-border) solid transparent;
    border-image-source: url("../brand/skin/panel-rounded.png");
    border-image-slice: 8 fill;
    border-image-width: var(--pocket-skin-border);
    border-image-repeat: stretch;
    image-rendering: pixelated;
    image-rendering: crisp-edges;
}

.player-shell-btn:hover,
.player-shell-btn:focus-visible
{
    border-image-source: url("../brand/skin/panel-white.png");
    outline: none;
}

.player-shell-btn:active
{
    border-image-source: url("../brand/skin/panel-grayTrans.png");
}

.player-shell-btn-secondary
{
    color: var(--pocket-text-on-button);
    border-image-source: url("../brand/skin/panel-white.png");
}

.player-shell-btn-secondary:hover,
.player-shell-btn-secondary:focus-visible
{
    border-image-source: url("../brand/skin/panel-rounded.png");
}

.player-shell-btn-secondary:active
{
    border-image-source: url("../brand/skin/panel-grayTrans.png");
}

.player-shell-hint
{
    margin-top: 1rem;
    font-size: 0.75rem;
    color: var(--pocket-text);
}
