/* AstroSky cockpit: shared hull, consoles, holographic surfaces and navigation.
   Structural SVG borders are authored here; no third-party artwork is embedded. */
:root {
    --cockpit-panel:#0a1721;
    --cockpit-line:#345a6c;
    --cockpit-light:#6ce5ed;
    --cockpit-warning:#f6a15a;
    --cockpit-frame:url('../imgs/cockpit/panel-frame.svg');
    --cockpit-door:url('../imgs/cockpit/door-frame.svg');
    --cockpit-cut:10px;
}

body:is(.astro-site,.astro-guide,.astro-patch,.astro-admin) {
    background-color:#07111b;
    background-image:linear-gradient(90deg,#20384955 1px,transparent 1px),linear-gradient(#20384933 1px,transparent 1px);
    background-size:80px 80px;
    background-attachment:fixed;
}

.astro-site .site-content,
.astro-site .main-page,
.astro-site .home-industrial {
    background:transparent;
}

.astro-site .site-content {
    position:relative;
    isolation:isolate;
}

.astro-site .site-content::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:linear-gradient(90deg,#314d5e88 0 3px,#0b1b28bb 3px 13px,transparent 13px calc(100% - 13px),#0b1b28bb calc(100% - 13px) calc(100% - 3px),#314d5e88 calc(100% - 3px));
}

.astro-site .site-nav {
    background:#081622f5;
    border-bottom:3px solid #344d5c;
    box-shadow:0 1px 0 #72ddea88,0 6px 18px #0009;
}

.astro-site .topbar::after {
    content:'';
    position:absolute;
    inset:auto 0 0;
    height:3px;
    background:linear-gradient(90deg,#68e4ed 0 12%,transparent 12% 75%,#f6a15a 75% 86%,transparent 86%);
    pointer-events:none;
}

.astro-site .subinfo {
    background:linear-gradient(90deg,#152b3a,#0b1b27 55%,#172c36);
    border-top:1px solid #2d4959;
    font-family:AstroMono,monospace;
}

.astro-site .brand .title {
    text-shadow:0 0 18px #65d8eb33;
}

.astro-site .nav-links>li>a:not(.login-btn) {
    position:relative;
    padding:10px 5px;
    transition:color .18s,text-shadow .18s;
}

.astro-site .nav-links>li>a:not(.login-btn)::after {
    content:'';
    position:absolute;
    left:5px;
    right:5px;
    bottom:3px;
    height:2px;
    background:var(--cockpit-light);
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .2s;
    box-shadow:0 0 8px #6ce5ed88;
}

.astro-site .nav-links>li>a:hover::after,
.astro-site .nav-links>li>a:focus-visible::after {
    transform:scaleX(1);
}

.astro-site .eyebrow {
    color:var(--cockpit-warning);
    letter-spacing:.15em;
}

.astro-site .eyebrow::before {
    height:5px;
    width:25px;
    background:linear-gradient(90deg,var(--cockpit-warning) 0 65%,transparent 65% 78%,var(--cockpit-warning) 78%);
    box-shadow:0 0 10px #f6a15a33;
}

/* Bevelled nine-slice frames keep the full content rectangle usable. */
.astro-site :is(.flight-dossier,.operation-visual,.wiki-article,.community-reward,.profil-header,.job,.island-info-container,.classement-container,.paiement-container,.reset-box,.legal-page,.privacy-policy,.cart-summary,.cart-total,.recruitment-form),
.astro-site .shop-wrapper .grid>.card,
.astro-site .stats-container :is(.col,.col-full),
.astro-guide .feature,
.astro-patch .document {
    position:relative;
    border:13px solid transparent;
    border-image:var(--cockpit-frame) 32 fill / 13px / 0 stretch;
    border-radius:0;
    background:var(--cockpit-panel);
    box-shadow:0 10px 24px #0004;
    transition:filter .2s,box-shadow .2s;
}

.astro-site :is(.wiki-article,.job,.island-info-container,.classement-container) {
    padding:21px;
}

.astro-site .shop-wrapper .grid>.card {
    padding:20px;
    overflow:visible;
}

.astro-site .operation-visual {
    padding:0;
}

.astro-site .flight-dossier {
    container-type:inline-size;
    padding:0;
    box-shadow:0 0 24px #60cbe51a,0 14px 26px #0007;
}

.astro-site .flight-dossier::before,
.astro-site .flight-dossier::after {
    display:none;
}

.astro-site .dossier-heading {
    background:linear-gradient(90deg,#142b38,#0c1d28);
    border-bottom:1px solid #476778;
    font-size:9px;
    letter-spacing:.1em;
}

.astro-site .dossier-emblem {
    background-image:linear-gradient(#61c7dc08 1px,transparent 1px),linear-gradient(90deg,#61c7dc08 1px,transparent 1px),radial-gradient(ellipse at center,#14415677,transparent 70%);
    background-color:#0b1b27;
    background-size:32px 32px,32px 32px,100% 100%;
}

.astro-site .dossier-footer {
    background:#102631;
    color:#9bc6cf;
    border-top-color:#315769;
}

.astro-site .operation-number,
.astro-site .wiki-article h3 {
    color:var(--cockpit-light);
    border-bottom:1px solid #366476;
    background:linear-gradient(90deg,#16445855,transparent);
}

.astro-site .operation-number {
    padding:9px 12px;
}

.astro-site .wiki-article h3 {
    padding:0 0 14px;
    background:none;
}

.astro-site .operation-visual img {
    transition:filter .25s,transform .4s;
}

.astro-site .operation-visual:hover img {
    filter:drop-shadow(0 0 10px #6ce5ed66);
    transform:scale(1.025);
}

.astro-site :is(.shop-wrapper .card,.job,.island-info-container,.wiki-article):hover {
    box-shadow:0 0 0 1px #6ce5ed22,0 0 22px #40bddb1a;
}

.astro-site .wiki-article:target {
    box-shadow:0 0 0 1px #f6a15a88,0 0 22px #f6a15a22;
}

/* An actual outer jamb surrounds the wiki; only the inner list scrolls. */
.astro-site .wiki-wrapper {
    grid-template-columns:286px minmax(0,1fr);
    gap:28px;
}

.astro-site .sticky-navigation {
    border:20px solid transparent;
    border-image:var(--cockpit-door) 40 fill / 20px / 0 stretch;
    border-radius:0;
    padding:0;
    max-height:none;
    overflow:visible;
    background:#0b1824;
    box-shadow:0 0 0 1px #06101c,0 14px 30px #0006;
}

.astro-site .wiki-door-inner {
    padding:12px 9px 9px;
    min-width:0;
}

.astro-site .wiki-door-label {
    display:flex;
    gap:9px;
    align-items:center;
    margin:0 0 18px;
    padding-bottom:12px;
    border-bottom:1px solid #325163;
    color:var(--cockpit-light);
    font:10px/1.7 AstroMono,monospace;
    letter-spacing:.1em;
}

.astro-site .wiki-door-label::before {
    content:'';
    width:5px;
    height:16px;
    flex-shrink:0;
    background:var(--cockpit-warning);
    box-shadow:0 0 8px #f6a15a66;
}

.astro-site .wiki-door-inner>label {
    display:block;
    font:10px/1.7 AstroMono,monospace;
    color:#a8c9d6;
    margin-bottom:7px;
}

.astro-site .sticky-navigation #wiki-search {
    border-radius:2px;
    background:#06121c;
    border-color:#385b6c;
    min-height:40px;
    font-size:11px;
}

.astro-site .sticky-navigation nav {
    max-height:calc(100dvh - 375px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#416b7d #0a1722;
    padding-right:4px;
}

.astro-site .sticky-navigation li,
.astro-site .sticky-navigation li.active {
    background:none;
    border:0;
    border-radius:0;
    padding:0;
    margin:3px 0;
}

.astro-site .sticky-navigation li a {
    position:relative;
    padding:9px 8px;
    gap:8px;
    border-radius:0;
    border:1px solid #274755;
    border-left:3px solid #2d5263;
    background:linear-gradient(90deg,#15304388,#0a192533);
    font-size:10px;
    color:#a8c1cf;
    min-height:40px;
    transition:background .18s,border-color .18s,color .18s,box-shadow .18s;
}

.astro-site .sticky-navigation li.active a {
    background:linear-gradient(90deg,#245667aa,#102b39);
    color:#d3f8ff;
    border-color:#5795a8;
    border-left-color:var(--cockpit-warning);
    box-shadow:inset 0 0 14px #62d7e51a;
}

.astro-site .sticky-navigation li a:hover,
.astro-site .sticky-navigation li a:focus-visible {
    color:white;
    background:#1b4254;
    border-color:#6ce5ed;
    box-shadow:inset 0 0 12px #6ce5ed22;
}

.astro-site .sticky-navigation .nav-icon {
    width:16px;
    height:16px;
    filter:brightness(1.2);
}

.astro-site .wiki-section-index {
    padding:12px;
    border:1px solid #38596a;
    border-top:3px solid #617c8b;
    border-bottom:3px solid #1a384a;
    background:linear-gradient(120deg,#183443cc,#0b1b28);
    box-shadow:inset 0 1px 0 #6ce5ed33;
}

.astro-site .wiki-section-index a {
    border-radius:1px;
    border-color:#41687a;
    background:#102a38;
    padding:8px 10px;
    transition:background .18s,box-shadow .18s;
}

.astro-site .wiki-section-index a:hover {
    background:#1c4c5e;
    box-shadow:0 0 12px #6ce5ed22;
}

/* Controls retain their existing actions and hit boxes. */
.astro-site :is(.astro-button,.login-btn,.btn-connect,.btn-register,#wiki-print,.live-shop-tabs button,#liveShopRefresh,.stats-console-nav a) {
    position:relative;
    overflow:hidden;
    border-radius:2px;
    border:1px solid #557b8d;
    border-left:3px solid var(--cockpit-light);
    background:linear-gradient(115deg,#1a3e50,#0d2535);
    color:#ccf1fa;
    box-shadow:inset 0 1px 0 #9ed9e51a;
    text-shadow:0 0 8px #59d9ed22;
    transition:background .2s,border-color .2s,box-shadow .2s,color .2s;
}

.astro-site :is(.astro-button,.login-btn,.btn-connect,.btn-register,#wiki-print,.live-shop-tabs button,#liveShopRefresh,.stats-console-nav a):hover {
    color:white;
    border-color:#8de5f3;
    background:linear-gradient(115deg,#245b70,#163a50);
    box-shadow:inset 0 0 16px #68e4ed22,0 0 16px #68e4ed22;
    transform:none;
}

.astro-site :is(.astro-button,.login-btn,.btn-connect,.btn-register,#wiki-print,.stats-console-nav a)::before {
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(110deg,transparent 30%,#a7efff2b 48%,transparent 66%);
    transform:translateX(-120%);
}

.astro-site :is(.astro-button,.login-btn,.btn-connect,.btn-register,#wiki-print,.stats-console-nav a):hover::before {
    animation:cockpit-control-sweep .65s ease-out 1;
}

@keyframes cockpit-control-sweep {
    to { transform:translateX(120%); }
}

.astro-site input:not([type=checkbox]):not([type=radio]):not([type=range]),
.astro-site select,
.astro-site textarea {
    border-radius:2px;
    background:#071b28;
    border-color:#3a6377;
    box-shadow:inset 0 2px 6px #0006;
    transition:border-color .18s,box-shadow .18s;
}

.astro-site input:focus,
.astro-site select:focus,
.astro-site textarea:focus {
    border-color:#78dcec;
    box-shadow:0 0 12px #68e4ed22,inset 0 0 8px #68e4ed11;
}

.astro-site .profil-infos li,
.astro-site .island-info-container,
.astro-site .cart-summary {
    background:#0a1c29;
}

.astro-site .progress-bar {
    border-radius:1px;
    background:repeating-linear-gradient(90deg,#091b29 0 9px,#1b3543 9px 10px);
    border-color:#487385;
}

.astro-site .progress-bar .progress-fill {
    border-radius:0;
    box-shadow:0 0 10px #6ce5ed55;
    opacity:.8;
}

.astro-site .modal-container,
.astro-site .cookie-dialog {
    border:14px solid transparent;
    border-image:var(--cockpit-frame) 32 fill / 14px / 0 stretch;
    border-radius:0;
    background:#0a1721;
    box-shadow:0 0 36px #68e4ed22;
}

.astro-site .cookie-banner {
    border:1px solid #658b9a;
    border-top:3px solid var(--cockpit-warning);
    border-radius:2px;
    background:linear-gradient(110deg,#142d3d,#0b1c29);
    box-shadow:0 0 24px #000b;
}

.astro-site .cookie-actions button {
    border-radius:2px;
    background:#1a394a;
    border-color:#668a9a;
}

.astro-site .footer {
    border-top:6px solid #2b4658;
    box-shadow:inset 0 1px 0 #6ce5ed88;
    background:linear-gradient(90deg,#1b344055,transparent 18% 82%,#1b344055),#091823;
}

.astro-site .end-footer {
    background:#061019;
    border-top:1px solid #5c9aac;
    box-shadow:0 -2px 0 #183747;
}

.astro-site .footer-section h3 {
    padding-left:12px;
    border-left:3px solid var(--cockpit-warning);
    color:#b6e9f0;
    text-align:left;
}

.astro-site .footer-section ul,
.astro-site .footer-brand p {
    text-align:left;
}

/* A telemetry console: native anchors keep the navigation simple and direct. */
.astro-site .stats-console-nav {
    position:sticky;
    top:128px;
    z-index:30;
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    padding:13px;
    margin:30px 0 35px;
    border-top:2px solid #668190;
    border-bottom:2px solid #213f50;
    background:linear-gradient(90deg,#1b3444,#102332);
}

.astro-site .stats-console-nav a {
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 17px;
    font-size:12px;
    text-decoration:none;
}

.astro-site .stats-console-nav span {
    color:var(--cockpit-warning);
    font:10px AstroMono,monospace;
}

.astro-site .stats-container:not(:has(section:target)) .stats-console-nav a:first-child,
.astro-site .stats-container:has(#stats-population:target) .stats-console-nav a[href="#stats-population"],
.astro-site .stats-container:has(#stats-sales:target) .stats-console-nav a[href="#stats-sales"],
.astro-site .stats-container:has(#stats-casino:target) .stats-console-nav a[href="#stats-casino"],
.astro-site .stats-container:has(#liveShop:target) .stats-console-nav a[href="#liveShop"] {
    border-left-color:var(--cockpit-warning);
    background:linear-gradient(115deg,#2c5869,#143444);
    color:white;
    box-shadow:inset 0 0 16px #68e4ed22;
}

.astro-site .live-shop-table table th.shop-sale {
    background:#174a50;
    color:#a9f2ef;
}

.astro-site .live-shop-table table th.shop-purchase {
    background:#463728;
    color:#f8c397;
}

.astro-site .live-shop-table table th.shop-global {
    background:#263b52;
    color:#c0ddf7;
}

.astro-site .stats-container>section {
    scroll-margin-top:150px;
    padding-top:18px;
    border-top:1px solid #3d677a;
}

.astro-site .stats-container>section:target>h2 {
    color:var(--cockpit-warning);
    text-shadow:0 0 18px #f6a15a33;
}

.astro-site .stats-container .col>p {
    margin:0 0 17px;
    padding-bottom:12px;
    border-bottom:1px solid #2e5c70;
    font:11px/1.8 AstroMono,monospace;
    color:var(--cockpit-warning);
}

.astro-site .chart-container {
    position:relative;
    border:1px solid #2f5d73;
    border-radius:0;
    padding:13px;
    background:linear-gradient(#56b9d20b 1px,transparent 1px),linear-gradient(90deg,#56b9d209 1px,transparent 1px),#071924;
    background-size:28px 28px;
    box-shadow:inset 0 0 26px #0006;
    overflow:hidden;
}

.astro-site .chart-container::after {
    content:'';
    pointer-events:none;
    position:absolute;
    top:-40px;
    left:0;
    right:0;
    height:35px;
    background:linear-gradient(transparent,#7bdff91c,transparent);
}

.astro-site .chart-container:hover::after {
    animation:cockpit-graph-scan .8s ease-out 1;
}

@keyframes cockpit-graph-scan {
    to { top:calc(100% + 40px); }
}

.astro-site .chart-container canvas {
    position:relative;
    filter:drop-shadow(0 0 2px #6ce5ed22);
}

.astro-site .filter-container {
    padding:18px;
    background:#102a3a;
    border-left:3px solid var(--cockpit-warning);
    border-top:1px solid #467082;
    border-bottom:1px solid #294e60;
}

.astro-site .item-option,
.astro-site .selected-tag {
    border-radius:1px;
    border:1px solid #3b6a7c;
    background:#102f3e;
    color:#b5e8ef;
}

.astro-site .custom-multiselect,
.astro-site .item-options,
.astro-site .selected-tags {
    border-radius:1px;
    border-color:#3c6679;
    background:#0b2030;
}

.astro-site table th {
    background:#15384a;
    color:#9ee8f1;
    border-bottom:1px solid #5f9cae;
    font-family:AstroMono,monospace;
    font-size:11px;
}

.astro-site table tbody tr:hover {
    background-color:#214c5b88;
}

.astro-site .lore-heading {
    padding:28px;
    border:13px solid transparent;
    border-image:var(--cockpit-frame) 32 fill / 13px / 0 stretch;
    background:#0a1721;
}

.astro-site .lore-index {
    padding:19px 14px;
    background:linear-gradient(90deg,#112d3e,#091a27);
    border-left:3px solid #65919f;
    border-right:1px solid #345d70;
}

.astro-site .lore-index a:hover {
    color:#9cf3ff;
    text-shadow:0 0 8px #68e4ed66;
}

.astro-site .lore-chapter {
    border-bottom:1px solid #38667b;
}

.astro-site .lore-chapter blockquote {
    border-left-color:var(--cockpit-light);
    background:linear-gradient(90deg,#16465b77,#0b1a27);
}

/* Standalone pages share the same hull; admin keeps its light/dark control. */
.astro-guide .sidebar,
.astro-patch .patch-site-nav {
    background:#0b1e2c;
    border-color:#507a8d;
    box-shadow:inset 0 -2px #6ce5ed44;
}

html[data-bs-theme] .astro-admin .card {
    border:12px solid transparent;
    border-image:var(--cockpit-frame) 32 fill / 12px / 0 stretch;
    border-radius:0;
}

html[data-bs-theme="dark"] body.astro-admin {
    background-color:#07111b;
}

.astro-admin .sidebar {
    background:#0a1c2a!important;
    border-right:5px solid #355367!important;
    box-shadow:inset -1px 0 #6ce5ed66;
}

.astro-admin .sidebar .nav-link {
    border:1px solid #365b70;
    border-left:3px solid #3e7185;
    border-radius:1px;
    color:#b9d4e0;
    background:#102c3c;
}

.astro-admin .sidebar .nav-link.active {
    background:#215064;
    border-left-color:var(--cockpit-warning);
    box-shadow:inset 0 0 16px #6ce5ed22;
    color:white;
}

html[data-bs-theme="light"] body.astro-admin {
    background-color:#e4edf2;
    background-image:linear-gradient(90deg,#4d778511 1px,transparent 1px),linear-gradient(#4d778511 1px,transparent 1px);
}

html[data-bs-theme="light"] .astro-admin .card {
    border-image:none;
    border:1px solid #6a95a6;
    border-top:4px solid #468da3;
    background:#f7fbfd;
}

@media(max-width:1000px) {
    .astro-site .wiki-wrapper {
        grid-template-columns:240px minmax(0,1fr);
        gap:20px;
    }

    .astro-site .sticky-navigation {
        border-width:15px;
        border-image-width:15px;
    }

    .astro-site .wiki-door-inner {
        padding:10px 3px;
    }
}

@media(max-width:680px) {
    .astro-site .site-content::before {
        background:linear-gradient(90deg,#28465777 0 2px,transparent 2px calc(100% - 2px),#28465777 calc(100% - 2px));
    }

    .astro-site .wiki-wrapper {
        display:block;
    }

    .astro-site .sticky-navigation {
        border-width:15px;
        border-image-width:15px;
        margin-bottom:28px;
    }

    .astro-site .wiki-door-inner {
        padding:8px 3px;
    }

    .astro-site .wiki-door-label {
        margin-bottom:10px;
        padding-bottom:9px;
    }

    .astro-site .sticky-navigation nav {
        max-height:220px;
        overflow-y:auto;
        overflow-x:hidden;
        padding:0 3px 0 0;
    }

    .astro-site .sticky-navigation nav ul {
        display:grid;
        grid-template-columns:1fr;
        overflow:visible;
        gap:3px;
        padding:0;
    }

    .astro-site .sticky-navigation li {
        margin:0;
    }

    .astro-site .sticky-navigation li a {
        font-size:11px;
        min-height:40px;
    }

    .astro-site :is(.wiki-article,.job,.island-info-container,.classement-container) {
        padding:15px;
        border-width:10px;
        border-image-width:10px;
    }

    .astro-site .shop-wrapper .grid>.card {
        padding:16px;
        border-width:10px;
        border-image-width:10px;
    }

    .astro-site .lore-heading {
        padding:14px;
        border-width:10px;
        border-image-width:10px;
    }

    .astro-site .stats-console-nav {
        top:124px;
        display:grid;
        grid-template-columns:1fr 1fr;
        padding:9px;
        gap:7px;
    }

    .astro-site .stats-console-nav a {
        padding:10px 8px;
        font-size:10px;
        gap:6px;
    }

    .astro-site .chart-container {
        padding:7px;
    }

    .astro-site .filter-container {
        padding:13px;
    }

    .astro-site .modal-container {
        border-width:8px;
        border-image-width:8px;
    }
}

@media(prefers-reduced-motion:reduce) {
    .astro-site *,
    .astro-site *::before,
    .astro-site *::after {
        animation:none!important;
        transition:none!important;
    }
}

@media print {
    body.astro-site,
    .astro-site .wiki-article {
        background:white!important;
    }

    .astro-site .wiki-article {
        border-image:none;
        border:1px solid #aaa;
    }

    .astro-site .wiki-article :is(h3,h4,a,code) {
        color:#173c4a!important;
        background:none!important;
        text-shadow:none!important;
    }

    .astro-site .site-content::before,
    .astro-site .stats-console-nav {
        display:none;
    }
}
