/* Shared component layer for future Swish cards, buttons, tables, badges, forms, and notices. */

/* Swish HQ authentication: normalize the miniOrange Discord action to the form width. */
.swish-auth__discord {
    width: 100%;
}

.swish-auth__discord > *,
.swish-auth__discord > * > * {
    width: 100%;
    max-width: none;
}

.swish-auth__discord :is(
    a,
    button,
    input[type="button"],
    input[type="submit"],
    [role="button"]
) {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: none !important;
    min-height: 48px;
    margin: 0 !important;
    padding: .75rem .9rem !important;
    box-sizing: border-box;
    border-radius: 10px !important;
    line-height: 1.2;
    text-align: center;
}

.swish-auth__discord :is(a, button, [role="button"]) img {
    flex: 0 0 auto;
}


/* v0.9.16: Branded 404 state using the established Swish interior hero image and panel surface hierarchy. */
.swish-404-page{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 180px);padding-top:40px;padding-bottom:60px;overflow:hidden;background:var(--swish-panel,#0d1527)}
.swish-404-page::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--swish-404-image,none);background-size:cover;background-position:var(--swish-404-image-position,50% 50%);opacity:var(--swish-404-image-opacity,0);pointer-events:none}
.swish-404-page::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,21,39,.34),rgba(18,26,45,.78));pointer-events:none}
.swish-404-panel{position:relative;z-index:1;width:min(100% - 40px,860px);padding:72px 48px;text-align:center;border:1px solid var(--swish-border);border-radius:16px;background:var(--swish-panel);box-shadow:var(--swish-shadow)}
.swish-404-eyebrow{margin:0 0 10px;color:var(--swish-accent);font-size:.78rem;font-weight:900;letter-spacing:.18em;line-height:1.2;text-transform:uppercase}
.swish-404-title{margin:0;font-size:clamp(3.4rem,8vw,6.5rem);font-weight:900;letter-spacing:-.055em;line-height:.95}
.swish-404-message{max-width:560px;margin:22px auto 30px;color:var(--swish-muted);font-size:1.05rem}
.swish-404-action{margin:0}
.swish-404-action .wp-element-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border-radius:10px;background:var(--swish-accent);color:#090b10;font-weight:800;text-decoration:none;transition:transform .16s ease,filter .16s ease}
.swish-404-action .wp-element-button:hover{transform:translateY(-1px);filter:brightness(1.04)}
.swish-404-action .wp-element-button:focus-visible{outline:2px solid var(--swish-accent);outline-offset:3px}
:root:not([data-theme]) .swish-404-page,:root[data-theme="dark"] .swish-404-page{background:#0d1527}
:root:not([data-theme]) .swish-404-panel,:root[data-theme="dark"] .swish-404-panel{background:#121a2d;border-color:#26324b}
:root[data-theme="light"] .swish-404-page{background:var(--swish-panel)}
:root[data-theme="light"] .swish-404-page::after{background:linear-gradient(180deg,rgba(255,255,255,.48),rgba(255,255,255,.82))}
:root[data-theme="light"] .swish-404-panel{background:rgba(255,255,255,.94);border-color:var(--swish-border);box-shadow:var(--swish-shadow)}
@media (max-width:600px){.swish-404-page{min-height:calc(100vh - 140px);padding:24px 0 44px}.swish-404-panel{width:min(100% - 28px,860px);padding:52px 22px;border-radius:14px}.swish-404-title{font-size:clamp(3rem,17vw,5rem)}.swish-404-message{margin-top:18px;font-size:.98rem}}

/* v0.9.19: Leaderboard entity switcher reuses the established Statistics tab treatment. */
.swish-frontend .swish-leaderboard-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;padding-top:18px;border-top:1px solid var(--swish-line)}
.swish-frontend .swish-leaderboard-tabs .swish-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 16px;border:1px solid var(--swish-line);border-radius:999px;background:transparent;color:var(--swish-text);font:inherit;font-weight:800;text-decoration:none;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.swish-frontend .swish-leaderboard-tabs .swish-button:hover,.swish-frontend .swish-leaderboard-tabs .swish-button:focus-visible{border-color:var(--swish-accent);color:var(--swish-accent)}
.swish-frontend .swish-leaderboard-tabs .swish-button.is-active{border-color:var(--swish-accent);background:var(--swish-accent);color:#07101f}
@media(max-width:600px){.swish-frontend .swish-leaderboard-tabs{display:grid;grid-template-columns:1fr 1fr}.swish-frontend .swish-leaderboard-tabs .swish-button{width:100%}}


/* v0.9.21: Restore the larger-screen jump-to-top control. */
.swish-scroll-top{
    position:fixed;
    right:28px;
    bottom:28px;
    z-index:950;
    width:60px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:1px solid var(--swish-line);
    border-radius:999px;
    background:var(--swish-panel);
    color:var(--swish-text);
    box-shadow:0 10px 28px rgba(0,0,0,.22);
    font:inherit;
    font-size:1.35rem;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transform:translateY(8px);
    transition:opacity .18s ease,visibility .18s ease,transform .18s ease,border-color .15s ease,background-color .15s ease,color .15s ease;
}
.swish-scroll-top.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.swish-scroll-top:hover,
.swish-scroll-top:focus-visible{
    border-color:var(--swish-accent);
    background:var(--swish-accent);
    color:#07101f;
}
.swish-scroll-top:focus-visible{
    outline:2px solid var(--swish-accent);
    outline-offset:3px;
}
@media(max-width:1024px){
    .swish-scroll-top{display:none!important}
}
@media(prefers-reduced-motion:reduce){
    .swish-scroll-top{transition:none}
}
