/* =====================================================================
   Lunerya V4 — compact premium layer + global utility UI
   Loaded after lunerya-v2.css and lunerya-complete.css.
   ===================================================================== */

:root {
    --ly-v4-cyan: #69ecff;
    --ly-v4-violet: #9075ff;
    --ly-v4-deep: #050811;
    --ly-v4-panel: rgba(8, 16, 30, .88);
    --ly-v4-line: rgba(105, 236, 255, .12);
}

/* ---------- density pass: whole site ---------- */
@media (min-width: 1200px) {
    .container { max-width: 1160px; }
}

.main-page,
.content.main-page {
    padding-top: 1.55rem;
    padding-bottom: 2.6rem;
}

.card-header { padding: .78rem .95rem; }
.card-body { padding: .95rem; }
.card-footer { padding: .72rem .95rem; }

.form-control,
.form-select,
.input-group-text,
textarea.form-control { min-height: 40px; }

.btn { font-size: .82rem; }

.table > :not(caption) > * > * { padding: .67rem .72rem; }

.banner {
    min-height: 82px;
    margin-bottom: 1rem !important;
    padding: .92rem 1.1rem !important;
    border-radius: 14px !important;
}
.banner-title h1 { font-size: clamp(1.35rem, 2.4vw, 2rem) !important; }
.banner-title h2 { font-size: clamp(1.18rem, 2vw, 1.6rem) !important; }
.banner-icon img { max-height: 52px; }

/* ---------- global detail layer ---------- */
body.lunerya-body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: .20;
    background:
        linear-gradient(115deg, transparent 0 47%, rgba(105,236,255,.035) 48%, transparent 49% 100%),
        linear-gradient(65deg, transparent 0 49%, rgba(144,117,255,.03) 50%, transparent 51% 100%);
    background-size: 160px 160px, 220px 220px;
    mask-image: radial-gradient(circle at 50% 24%, #000 0 45%, transparent 82%);
}

.header .navbar.lunerya-navbar {
    min-height: 58px;
    background: rgba(4, 8, 16, .88) !important;
    backdrop-filter: blur(16px) saturate(120%);
}
.header .navbar-brand img { max-height: 42px; width: auto; }
.header .navbar-menu .nav-link,
.header .navbar-user .nav-link {
    font-size: .72rem;
    letter-spacing: .015em;
}

/* ---------- home: smaller, denser, richer ---------- */
.lunerya-home--v4 {
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 8%, rgba(66, 117, 255, .055), transparent 25rem),
        radial-gradient(circle at 82% 36%, rgba(144, 117, 255, .045), transparent 24rem),
        var(--lun-bg);
}

.lunerya-hero--compact {
    min-height: 540px;
    padding: 58px 0 70px;
}

.lunerya-hero--compact::before {
    background-size: 52px 52px;
    opacity: .25;
}

.lunerya-hero--compact::after {
    width: min(58vw, 720px);
    right: -14vw;
    top: -38%;
    opacity: .38;
}

.lunerya-brand-lockup--compact { gap: .9rem; margin-bottom: .85rem; }
.lunerya-brand-lockup--compact .lunerya-brand-lockup__icon { width: 58px; height: 58px; }
.lunerya-brand-lockup--compact h1 {
    font-size: clamp(2.75rem, 6vw, 4.8rem);
    line-height: .92;
}
.ly-hero-subtitle {
    display: block;
    margin-top: .32rem;
    color: #95a8c2;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .04em;
}

.lunerya-hero--compact .lunerya-eyebrow { margin-bottom: .9rem; font-size: .68rem; }
.lunerya-hero--compact .lunerya-hero__lead {
    max-width: 610px;
    margin-bottom: 1.25rem;
    font-size: .94rem;
    line-height: 1.65;
}
.lunerya-hero--compact .lunerya-hero__actions { margin-bottom: 1.2rem; }
.lunerya-hero--compact .lunerya-btn {
    min-height: 42px;
    padding: .62rem .92rem;
    font-size: .74rem;
    border-radius: 10px;
}

.ly-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}
.ly-hero-stats > div {
    min-width: 92px;
    padding: .55rem .72rem;
    background: rgba(8, 17, 31, .54);
    border: 1px solid rgba(105,236,255,.09);
    border-radius: 10px;
}
.ly-hero-stats strong,
.ly-hero-stats span { display: block; }
.ly-hero-stats strong { color: #fff; font-size: .85rem; line-height: 1.1; }
.ly-hero-stats span { margin-top: .16rem; color: #74869f; font-size: .61rem; text-transform: uppercase; letter-spacing: .07em; }

.lunerya-hero-card--compact {
    min-height: 360px;
    max-width: 430px;
    margin-left: auto;
    padding: .95rem;
    border-radius: 18px;
}
.lunerya-hero-card--compact .lunerya-hero-card__content {
    padding: .8rem .82rem .72rem;
    border-radius: 13px;
}
.lunerya-hero-card--compact .lunerya-hero-card__content h2 { font-size: 1.2rem; margin: .35rem 0 .45rem; }
.lunerya-hero-card--compact .lunerya-hero-card__content p { font-size: .77rem; line-height: 1.5; }

.ly-moon-scene {
    position: relative;
    width: 184px;
    height: 184px;
    margin: .55rem auto .35rem;
}
.ly-moon-scene__moon {
    position: absolute;
    width: 118px;
    height: 118px;
    left: 33px;
    top: 28px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 33% 28%, rgba(255,255,255,.98), rgba(206,241,255,.94) 18%, #91c8e8 55%, #497398 100%);
    box-shadow: 0 0 34px rgba(105,236,255,.21), inset -17px -14px 24px rgba(17,46,75,.25);
}
.ly-moon-scene__moon::before,
.ly-moon-scene__moon::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background: rgba(70, 112, 148, .16);
    box-shadow: inset 1px 1px 3px rgba(0,0,0,.18);
}
.ly-moon-scene__moon::before { width: 23px; height: 23px; left: 25px; top: 55px; }
.ly-moon-scene__moon::after { width: 14px; height: 14px; right: 24px; top: 31px; }
.ly-moon-scene__ring {
    position: absolute;
    inset: 13px;
    border: 1px solid rgba(105,236,255,.16);
    border-radius: 50%;
    transform: rotate(-18deg) scaleY(.38);
    box-shadow: 0 0 12px rgba(105,236,255,.08);
}
.ly-moon-scene__satellite {
    position: absolute;
    width: 7px;
    height: 7px;
    left: 17px;
    top: 89px;
    border-radius: 50%;
    background: #a897ff;
    box-shadow: 0 0 12px rgba(144,117,255,.75);
    animation: lyFloatSatellite 4.8s ease-in-out infinite;
}
@keyframes lyFloatSatellite { 50% { transform: translate(148px,-35px) scale(.8); opacity: .55; } }

.ly-orbit {
    position: absolute;
    z-index: -1;
    pointer-events: none;
    border: 1px solid rgba(105,236,255,.08);
    border-radius: 50%;
}
.ly-orbit--a { width: 360px; height: 360px; left: -190px; top: 110px; }
.ly-orbit--b { width: 470px; height: 180px; right: -210px; bottom: 80px; transform: rotate(-18deg); border-color: rgba(144,117,255,.07); }
.ly-rune { position: absolute; z-index: 0; color: rgba(105,236,255,.18); font-size: 2rem; pointer-events: none; filter: drop-shadow(0 0 10px rgba(105,236,255,.15)); }
.ly-rune--one { left: 5%; top: 34%; transform: rotate(21deg); }
.ly-rune--two { right: 7%; bottom: 18%; color: rgba(144,117,255,.18); }

/* command center */
.ly-command-center-section {
    position: relative;
    z-index: 4;
    margin-top: -32px;
    padding-bottom: 18px;
}
.ly-command-center {
    display: grid;
    grid-template-columns: 1fr 1.14fr 1.12fr;
    gap: .75rem;
}
.ly-dashboard-card {
    min-height: 155px;
    padding: .95rem;
    background:
        linear-gradient(145deg, rgba(12,23,42,.95), rgba(7,14,27,.96));
    border: 1px solid rgba(105,236,255,.11);
    border-radius: 14px;
    box-shadow: 0 14px 32px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.025);
}
.ly-dashboard-card--mission { background: radial-gradient(circle at 90% 0%, rgba(144,117,255,.11), transparent 14rem), linear-gradient(145deg, rgba(12,23,42,.95), rgba(7,14,27,.96)); }
.ly-dashboard-card__head { display: flex; gap: .7rem; align-items: center; margin-bottom: .72rem; }
.ly-dashboard-card__head small { display: block; margin-bottom: .08rem; color: #6f829b !important; font-size: .57rem; font-weight: 900; letter-spacing: .13em; }
.ly-dashboard-card__head h3 { margin: 0; font-size: .88rem; color: #f3f8ff; }
.ly-mini-icon { width: 34px; height: 34px; flex: 0 0 34px; display: inline-flex; align-items: center; justify-content: center; color: var(--ly-v4-cyan); background: rgba(105,236,255,.06); border: 1px solid rgba(105,236,255,.12); border-radius: 10px; }
.ly-server-line { display: flex; align-items: center; gap: .45rem; margin: .25rem 0 .7rem; color: #cfe1f3; font-size: .76rem; }
.ly-server-pulse { width: 7px; height: 7px; border-radius: 50%; background: #65778e; }
.ly-server-pulse.is-online { background: #55e6ad; box-shadow: 0 0 0 4px rgba(85,230,173,.07), 0 0 12px rgba(85,230,173,.45); }
.ly-inline-action { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .56rem .65rem; color: #aebed1; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.06); border-radius: 9px; font-size: .68rem; text-align: left; }
.ly-inline-action:hover { color: var(--ly-v4-cyan); border-color: rgba(105,236,255,.18); }
.ly-dashboard-card--mission > p { min-height: 38px; margin: 0 0 .58rem; color: #9aabc0 !important; font-size: .73rem; line-height: 1.5; }
.ly-mission-button { display: inline-flex; align-items: center; gap: .45rem; padding: .46rem .62rem; color: #c5d3e3; background: rgba(144,117,255,.06); border: 1px solid rgba(144,117,255,.15); border-radius: 9px; font-size: .65rem; font-weight: 750; }
.ly-mission-button.is-done { color: #8ff0c7; background: rgba(85,230,173,.07); border-color: rgba(85,230,173,.18); }
.ly-quick-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .42rem; }
.ly-quick-grid a { display: flex; align-items: center; gap: .45rem; padding: .53rem .58rem; color: #b9c8da !important; background: rgba(255,255,255,.025); border: 1px solid rgba(255,255,255,.055); border-radius: 9px; font-size: .66rem; font-weight: 750; }
.ly-quick-grid a:hover { color: var(--ly-v4-cyan) !important; background: rgba(105,236,255,.045); border-color: rgba(105,236,255,.14); transform: translateY(-1px); }
.ly-quick-grid i { color: var(--ly-v4-cyan); }

/* section compaction + decorative fills */
.lunerya-home--v4 .lunerya-section { padding: 48px 0; }
.lunerya-home--v4 .lunerya-section--intro { padding-top: 34px; }
.lunerya-home--v4 .lunerya-section--cta { padding-top: 20px; padding-bottom: 58px; }
.lunerya-section-heading--compact { gap: 1.7rem; margin-bottom: 1.25rem; }
.lunerya-section-heading--compact h2 { font-size: clamp(1.55rem, 2.5vw, 2.25rem); max-width: 560px; }
.lunerya-section-heading--compact > p { font-size: .82rem; line-height: 1.55; }
.ly-section-decorated::before,
.ly-section-decorated::after {
    content: '';
    position: absolute;
    pointer-events: none;
    border-radius: 50%;
    filter: blur(1px);
}
.ly-section-decorated::before { width: 230px; height: 230px; left: -140px; top: 20%; border: 1px solid rgba(105,236,255,.055); box-shadow: inset 0 0 50px rgba(105,236,255,.025); }
.ly-section-decorated::after { width: 130px; height: 130px; right: -60px; bottom: 10%; border: 1px dashed rgba(144,117,255,.07); }
.ly-section-decorated--violet::before { border-color: rgba(144,117,255,.07); }

.lunerya-home--v4 .lunerya-feature-card {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: .95rem;
    border-radius: 13px;
}
.lunerya-home--v4 .lunerya-feature-card__icon { width: 38px; height: 38px; flex: 0 0 38px; margin: 0; border-radius: 11px; font-size: .95rem; }
.lunerya-home--v4 .lunerya-feature-card h3 { margin: .06rem 0 .28rem; font-size: .88rem; }
.lunerya-home--v4 .lunerya-feature-card p { font-size: .72rem; line-height: 1.5; }

.lunerya-progression-grid--compact { gap: .5rem; }
.lunerya-rank-card--compact {
    min-height: 96px;
    display: grid;
    grid-template-columns: 34px 1fr;
    grid-template-rows: auto 1fr;
    column-gap: .55rem;
    align-items: center;
    padding: .72rem;
    border-radius: 12px;
}
.lunerya-rank-card--compact .lunerya-rank-card__number { position: absolute; top: .45rem; right: .55rem; font-size: .54rem; }
.lunerya-rank-card--compact .lunerya-rank-card__icon { grid-row: 1 / 3; width: 34px; height: 34px; margin: 0; border-radius: 10px; font-size: .9rem; }
.lunerya-rank-card--compact h3 { margin: 0; font-size: .82rem; }
.lunerya-rank-card--compact p { font-size: .62rem; }

.lunerya-steps--compact { gap: .65rem; }
.lunerya-steps--compact .lunerya-step { min-height: 102px; padding: .88rem .9rem .82rem 3.65rem; border-radius: 12px; }
.lunerya-steps--compact .lunerya-step__number { left: .82rem; top: .82rem; width: 34px; height: 34px; border-radius: 10px; font-size: .7rem; }
.lunerya-steps--compact .lunerya-step h3 { font-size: .84rem; margin-bottom: .25rem; }
.lunerya-steps--compact .lunerya-step p { font-size: .7rem; line-height: 1.45; }

.lunerya-home--v4 .lunerya-panel { padding: 1rem; border-radius: 16px; }
.lunerya-home--v4 .lunerya-panel__header { margin-bottom: .85rem; }
.lunerya-home--v4 .lunerya-panel__header h2,
.lunerya-home--v4 .lunerya-discord-card h2 { font-size: 1.22rem; }
.lunerya-home--v4 .lunerya-news-grid { gap: .6rem; }
.lunerya-home--v4 .lunerya-news-card { grid-template-columns: 116px minmax(0,1fr); border-radius: 12px; }
.lunerya-home--v4 .lunerya-news-card--featured { grid-template-columns: 1fr; grid-template-rows: 165px 1fr; }
.lunerya-home--v4 .lunerya-news-card__media { min-height: 110px; }
.lunerya-home--v4 .lunerya-news-card__body { padding: .75rem; }
.lunerya-home--v4 .lunerya-news-card h3 { font-size: .84rem; margin-bottom: .32rem; }
.lunerya-home--v4 .lunerya-news-card--featured h3 { font-size: 1.03rem; }
.lunerya-home--v4 .lunerya-news-card p { font-size: .68rem; line-height: 1.45; margin-bottom: .42rem; }
.lunerya-home--v4 .lunerya-news-card__meta { font-size: .59rem; margin-bottom: .36rem; }
.lunerya-home--v4 .lunerya-discord-card__icon { width: 44px; height: 44px; margin-bottom: .8rem; border-radius: 13px; font-size: 1.1rem; }
.lunerya-home--v4 .lunerya-discord-card > p { margin: .55rem 0 .85rem; font-size: .76rem; line-height: 1.55; }
.lunerya-home--v4 .lunerya-discord-card__stats { gap: .5rem; margin-bottom: .8rem; }
.lunerya-home--v4 .lunerya-discord-card__stats > div { padding: .65rem; border-radius: 9px; }

.lunerya-cta--compact { padding: 1.3rem 1.5rem; border-radius: 16px; }
.lunerya-cta--compact h2 { font-size: clamp(1.35rem,2.4vw,1.9rem); }
.lunerya-cta--compact p { font-size: .78rem; }

/* ---------- command palette / new site utility ---------- */
#ly-scroll-progress {
    position: fixed;
    left: 0;
    top: 0;
    z-index: 99999;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--ly-v4-cyan), #7ca7ff, var(--ly-v4-violet));
    box-shadow: 0 0 10px rgba(105,236,255,.35);
}

.ly-command-trigger {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 1085;
    display: inline-flex;
    align-items: center;
    gap: .48rem;
    padding: .52rem .62rem;
    color: #dce8f7;
    background: rgba(7,14,27,.88);
    border: 1px solid rgba(105,236,255,.14);
    border-radius: 11px;
    box-shadow: 0 12px 28px rgba(0,0,0,.28);
    backdrop-filter: blur(12px);
    font-size: .68rem;
    font-weight: 750;
}
.ly-command-trigger:hover { color: var(--ly-v4-cyan); border-color: rgba(105,236,255,.28); }
.ly-command-trigger kbd { padding: .14rem .3rem; color: #7f90a8; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.07); border-radius: 5px; font-size: .55rem; }

.ly-command-palette {
    position: fixed;
    inset: 0;
    z-index: 1095;
    display: none;
    align-items: flex-start;
    justify-content: center;
    padding: min(14vh, 110px) 16px 16px;
    background: rgba(1,4,10,.68);
    backdrop-filter: blur(11px);
}
.ly-command-palette.is-open { display: flex; }
.ly-command-box {
    width: min(640px, 100%);
    overflow: hidden;
    background: linear-gradient(160deg, rgba(12,23,42,.985), rgba(6,12,24,.99));
    border: 1px solid rgba(105,236,255,.16);
    border-radius: 16px;
    box-shadow: 0 30px 90px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.018) inset;
}
.ly-command-search { display: flex; align-items: center; gap: .7rem; padding: .82rem .9rem; border-bottom: 1px solid rgba(255,255,255,.055); }
.ly-command-search i { color: var(--ly-v4-cyan); }
.ly-command-search input { flex: 1; min-width: 0; color: #eef6ff; background: transparent; border: 0; outline: 0; font-size: .86rem; }
.ly-command-search input::placeholder { color: #64768f; }
.ly-command-search kbd { padding: .2rem .36rem; color: #7889a0; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.06); border-radius: 5px; font-size: .58rem; }
.ly-command-content { max-height: min(60vh, 470px); overflow-y: auto; padding: .55rem; }
.ly-command-section-title { padding: .4rem .45rem .3rem; color: #60738c; font-size: .56rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.ly-command-list { display: grid; gap: .22rem; }
.ly-command-item { display: flex; align-items: center; gap: .7rem; width: 100%; padding: .62rem .68rem; color: #c8d6e6 !important; background: transparent; border: 1px solid transparent; border-radius: 9px; text-align: left; text-decoration: none !important; font-size: .72rem; }
.ly-command-item:hover,
.ly-command-item.is-active { color: #fff !important; background: rgba(105,236,255,.05); border-color: rgba(105,236,255,.10); }
.ly-command-item i { width: 20px; text-align: center; color: var(--ly-v4-cyan); }
.ly-command-item small { margin-left: auto; color: #5f7188 !important; font-size: .56rem; }
.ly-command-empty { padding: 1.4rem; color: #71839b; text-align: center; font-size: .72rem; }
.ly-command-footer { display: flex; justify-content: space-between; gap: 1rem; padding: .55rem .8rem; border-top: 1px solid rgba(255,255,255,.05); color: #5f7187; font-size: .55rem; }

.ly-toast-stack { position: fixed; right: 14px; bottom: 14px; z-index: 1100; display: grid; gap: .5rem; pointer-events: none; }
.ly-toast { min-width: 220px; max-width: 340px; display: flex; align-items: center; gap: .55rem; padding: .68rem .78rem; color: #ddecfb; background: rgba(7,15,28,.94); border: 1px solid rgba(105,236,255,.14); border-radius: 11px; box-shadow: 0 16px 35px rgba(0,0,0,.34); backdrop-filter: blur(12px); transform: translateY(8px); opacity: 0; transition: .18s ease; font-size: .68rem; }
.ly-toast.is-visible { transform: none; opacity: 1; }
.ly-toast i { color: var(--ly-v4-cyan); }

/* ---------- compact staff / shop / forum / generic plugin pages ---------- */
#staff { row-gap: .65rem; margin-top: 1rem !important; }
#staff .card-body { padding: .75rem; }
#staff .card-title { font-size: .85rem !important; }
#staff .badge { font-size: .6rem; }

#shop .card,
.shop .card { border-radius: 13px !important; }

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .lunerya-hero--compact { min-height: auto; padding: 42px 0 58px; }
    .lunerya-hero-card--compact { max-width: none; margin-left: 0; min-height: 330px; }
    .ly-command-center { grid-template-columns: 1fr; }
    .ly-command-center-section { margin-top: -20px; }
    .lunerya-section-heading--compact { grid-template-columns: 1fr; gap: .55rem; }
    .lunerya-home--v4 .lunerya-section { padding: 38px 0; }
}

@media (max-width: 767.98px) {
    .lunerya-brand-lockup--compact .lunerya-brand-lockup__icon { width: 48px; height: 48px; }
    .lunerya-brand-lockup--compact h1 { font-size: 2.7rem; }
    .ly-hero-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lunerya-progression-grid--compact { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .lunerya-home--v4 .lunerya-news-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .lunerya-home--v4 .lunerya-news-card,
    .lunerya-home--v4 .lunerya-news-card--featured { grid-row: auto; grid-template-columns: 105px minmax(0,1fr); grid-template-rows: auto; }
    .lunerya-home--v4 .lunerya-news-card__media { min-height: 110px; }
    .lunerya-cta--compact { align-items: flex-start; }
    .ly-command-trigger span,
    .ly-command-trigger kbd { display: none; }
    .ly-command-trigger { width: 42px; height: 42px; justify-content: center; padding: 0; border-radius: 50%; }
}

@media (max-width: 480px) {
    .lunerya-progression-grid--compact { grid-template-columns: 1fr; }
    .ly-quick-grid { grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    .ly-moon-scene__satellite { animation: none; }
}
