/*
  main.css (restored)
  This file is referenced by multiple pages. It went missing in a previous packaging,
  causing 404s (and breaking layout/scroll behavior).

  We compose the existing modular CSS using @import.
*/

@import url("./core/tokens.css");
@import url("./core/base.css");
@import url("./core/nav.css");
@import url("./core/context-panel.css");

/* Components */
@import url("./components/buttons.css");
@import url("./components/cards.css");

/* Page-specific styles (only those that exist in this package) */
@import url("../../features/pledges/css/pledges.css");
/* === Phase 28 UI Polish === */

/* Unified button highlight */
button:hover,
.btn:hover,
.button:hover {
    background-color: #ff7a18 !important;
    border-color: #ff7a18 !important;
}

/* Tactical card spacing */
.fc-tactical-card {
    padding: 10px;
    margin: 6px;
}

/* Title overflow safety */
.fc-tactical-title {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Consistent hover state */
*:hover {
    transition: all 0.15s ease-in-out;
}


/* === Phase 29 UI Polish === */

/* Context panel spacing/alignment */
.context-panel,
.rsx-context-panel,
#contextPanel {
    gap: 10px;
}

.context-panel .section-title,
.rsx-context-panel .section-title,
#contextPanel .section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Safer card body spacing */
.fc-tactical-card .card-body,
.fc-tactical-card .fc-card-body,
.fc-tactical-card .component-card-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Tactical headers stay visually centered and clear surrounding UI */
.fc-tactical-head,
.fc-tactical-v2-head {
    text-align: center;
}

.fc-tactical-sub,
.fc-tactical-v2-head .fc-tactical-sub {
    justify-content: center;
    text-align: center;
}

/* Better badge / pill wrapping in tighter layouts */
.badge,
.pill,
.tag,
.fc-pill {
    max-width: 100%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Consistent control spacing */
button,
.btn,
.button,
select,
input[type="text"],
input[type="search"] {
    min-height: 34px;
}


/* === Phase 30 UI Polish === */

/* Fleet canvas readability */
.fc-node-label,
.fc-ship-label,
.fleet-node-label {
    line-height: 1.15;
    letter-spacing: 0.02em;
    padding-inline: 4px;
}

/* Badge and icon balance */
.fc-badge,
.fc-pill,
.badge,
.pill,
.tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-inline: 8px;
}

/* Tactical layout edge padding and spacing */
.fc-tactical,
.fc-tactical-v2,
.fc-tactical-shell,
.fc-tactical-stage {
    padding: 12px;
    box-sizing: border-box;
}

.fc-tactical-card,
.fc-slot-card,
.component-card {
    border-radius: 12px;
}

.fc-tactical-card-header,
.fc-tactical-card .card-header,
.fc-slot-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

/* Header hierarchy cleanup */
.fc-tactical-title,
.fc-tactical-v2-head .fc-tactical-title,
.fc-tactical-head h3 {
    font-weight: 700;
}

.fc-tactical-sub,
.fc-tactical-v2-head .fc-tactical-sub,
.fc-tactical-head .subtext {
    opacity: 0.92;
    line-height: 1.2;
}

/* Consistent active/hover polish */
button:active,
.btn:active,
.button:active {
    transform: translateY(1px);
}

button:focus-visible,
.btn:focus-visible,
.button:focus-visible,
select:focus-visible,
input:focus-visible {
    outline: 2px solid rgba(255,122,24,.45);
    outline-offset: 2px;
}


/* === Phase 46 Final Stability / Polish === */

/* Slightly cleaner control text rhythm */
button,
.btn,
.button,
.fc-pill,
.badge,
.tag {
    letter-spacing: 0.015em;
}

/* Safer text rendering for compact tactical/meta labels */
.fc-tactical-v2-item-name,
.fc-tactical-v2-item-meta,
.fc-item .name,
.fc-item .meta {
    text-rendering: optimizeLegibility;
}

/* Keep interactive controls visually consistent */
button,
.btn,
.button {
    transition: background-color .15s ease-in-out, border-color .15s ease-in-out, transform .08s ease-in-out;
}




/* === Soft concept theme overrides === */
:root{
  --body-bg:#08111d;
  --bg-panel:#0d1828;
  --panel-bg:rgba(13,24,40,.80);
  --panel-stroke:rgba(138,198,255,.10);
  --text-primary:#e7f3ff;
  --text-secondary:rgba(189,214,240,.72);
  --accent-light:#72d6ff;
  --accent-dark:#15253a;
  --btn-border:rgba(167,215,255,.10);
  --btn-radius:12px;
  --rsx-soft-shadow:0 14px 30px rgba(0,0,0,.24);
  --rsx-soft-shadow-strong:0 22px 42px rgba(0,0,0,.28);
  --rsx-shadow-soft:0 14px 30px rgba(0,0,0,.24);
  --rsx-shadow-glow:none;
  --rsx-shadow:0 14px 32px rgba(0,0,0,.24);
  --rsx-text-glow:none;
}

html,body{background:
  radial-gradient(circle at 18% 12%, rgba(91,159,255,.13), transparent 22%),
  radial-gradient(circle at 82% 10%, rgba(105,255,215,.08), transparent 18%),
  linear-gradient(180deg, #09121f 0%, #070e18 100%);
}
body{text-shadow:none !important;}
.bg-video{background:
  radial-gradient(circle at 18% 12%, rgba(91,159,255,.13), transparent 22%),
  radial-gradient(circle at 82% 10%, rgba(105,255,215,.08), transparent 18%),
  linear-gradient(180deg, #09121f 0%, #070e18 100%) !important;
}
.bg-video::after{background:rgba(3,7,14,.18) !important;}

/* Global surfaces */
.panel,.hologram-box,.left-panel,.card,.rsx-panel,.status-pill,.rsx-switch,.toolbar-btn,.btn-icon,.holo-btn{
  background:linear-gradient(180deg, rgba(13,24,40,.82), rgba(9,17,29,.86)) !important;
  border:1px solid rgba(167,215,255,.09) !important;
  box-shadow:0 18px 38px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.02) !important;
  backdrop-filter:blur(12px);
}
.hologram-box:hover,.panel:hover{box-shadow:0 18px 38px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.03) !important;border-color:rgba(167,215,255,.14) !important;}

/* Header */
#rsx-system-banner.rsx-system-banner{
  padding:10px 16px 8px;
  background:linear-gradient(180deg, rgba(10,20,33,.92), rgba(9,17,29,.86));
  border-bottom:1px solid rgba(167,215,255,.08);
  backdrop-filter:blur(18px);
}
.rsx-system-banner__inner.rsx-top-header{
  display:grid;
  grid-template-columns:auto minmax(360px, 560px) auto;
  gap:18px;
  align-items:center;
}
.rsx-brand-block{min-width:240px;gap:5px;}
.rsx-brand-title{
  font-size:15px;
  letter-spacing:3.2px;
  color:#eef7ff;
}
.rsx-brand-title__text{ text-shadow:none; }
.rsx-brand-subtitle{
  font-size:9px;
  letter-spacing:2px;
  color:rgba(190,214,238,.60);
}
.rsx-brand-o7{display:none;}

/* Version cluster */
.rsx-game-version{
  position:static !important;
  transform:none !important;
  justify-self:center;
  width:min(100%,560px);
  min-height:58px;
  padding:12px 14px;
  border-radius:18px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:linear-gradient(180deg, rgba(16,27,43,.90), rgba(10,18,31,.88)) !important;
  box-shadow:0 16px 36px rgba(0,0,0,.22) !important;
  gap:12px;
}
.rsx-game-version__label{font-size:10px;letter-spacing:.18em;color:rgba(190,214,238,.55);}
.rsx-game-version__value{font-size:12px;letter-spacing:.08em;color:#dcecff;}
.rsx-game-version__status{min-width:0;flex:1 1 auto;}
.rsx-game-version__status-line{font-size:11px;color:#e7f4ff;}
.rsx-game-version__status-meta{font-size:10px;color:rgba(190,214,238,.56);}
.rsx-game-version__progress{height:6px;border:none;background:rgba(255,255,255,.06);}
.rsx-game-version__progress-fill{box-shadow:none;}
.rsx-game-version__btn{
  width:34px;height:34px;border-radius:10px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:rgba(255,255,255,.04) !important;
  color:#dcecff;
}
.rsx-game-version__btn:hover{background:rgba(114,214,255,.12) !important;border-color:rgba(114,214,255,.18) !important;color:#fff;}

.rsx-header-actions{display:flex;align-items:center;gap:12px;justify-self:end;}
.rsx-qb,.rsx-profile-btn,.rsx-retrieve-btn,
button,.btn,.nav-btn,[role="button"],input[type="button"],input[type="submit"],.holo-button,.rsx-btn{
  border-radius:12px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)) !important;
  color:#ddeefe !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02), 0 10px 20px rgba(0,0,0,.16) !important;
  transform:none !important;
}
.rsx-qb:hover,.rsx-profile-btn:hover,.rsx-retrieve-btn:hover,
button:hover,.btn:hover,.nav-btn:hover,[role="button"]:hover,input[type="button"]:hover,input[type="submit"]:hover,.holo-button:hover,.rsx-btn:hover{
  background:linear-gradient(180deg, rgba(114,214,255,.16), rgba(114,214,255,.08)) !important;
  border-color:rgba(114,214,255,.20) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03), 0 12px 22px rgba(0,0,0,.18) !important;
}

.rsx-profile-btn{font-size:11px !important;letter-spacing:.14em !important;padding:8px 12px !important;}
.rsx-retrieve-btn{padding:11px 16px !important;}
.rsx-retrieve-btn__beam{display:none !important;}
.rsx-extension-status{
  border-radius:14px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:linear-gradient(180deg, rgba(16,27,43,.88), rgba(10,18,31,.84)) !important;
  box-shadow:0 12px 24px rgba(0,0,0,.16) !important;
  padding:10px 12px;
}
.rsx-extension-status::before{display:none !important;}
.rsx-extension-status__dot{box-shadow:none;}
.rsx-system-banner__toggle{
  width:28px;height:28px;padding:0 !important;display:inline-flex;align-items:center;justify-content:center;
}

/* Main nav */
.top-menu{
  justify-content:flex-start !important;
  gap:12px;
  padding:10px 16px !important;
  background:linear-gradient(180deg, rgba(9,17,29,.82), rgba(9,17,29,.72)) !important;
  border-bottom:1px solid rgba(167,215,255,.08) !important;
  box-shadow:none !important;
  overflow-x:auto;
}
.top-menu .nav-btn,
.left-panel .nav-bottom .nav-btn,
.left-panel .nav-bottom .rsx-side-privacy-btn,
.left-panel .nav-bottom .rsx-btn-soft-panel{
  margin:0 !important;
  padding:10px 18px !important;
  border-radius:12px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015)) !important;
  color:rgba(224,238,252,.88) !important;
  font-size:.73rem !important;
  letter-spacing:.11em !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.015), 0 10px 20px rgba(0,0,0,.14) !important;
}
.top-menu .nav-btn.active,
.left-panel .nav-bottom .nav-btn.active,
.left-panel .nav-bottom .rsx-side-privacy-btn.active,
.left-panel .nav-bottom .rsx-btn-soft-panel.active{
  background:linear-gradient(180deg, rgba(114,214,255,.18), rgba(114,214,255,.09)) !important;
  border-color:rgba(114,214,255,.20) !important;
  color:#f4fbff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03), 0 14px 24px rgba(0,0,0,.18) !important;
}
.nav-btn.icon-pill{
  min-width:38px !important;
  width:38px;height:38px;
  border-radius:10px !important;
  padding:0 !important;
}

/* Layout gutters */
.main-content{gap:14px;padding:12px 14px 14px;box-sizing:border-box;}
.left-panel.hologram-box.context-panel{
  flex:0 0 330px !important; max-width:330px !important; width:330px !important;
  border-radius:20px !important; padding:14px !important;
  background:linear-gradient(180deg, rgba(10,18,31,.94), rgba(9,17,29,.90)) !important;
}
.iframe-container{
  border-radius:22px;
  overflow:hidden;
  background:linear-gradient(180deg, rgba(9,17,29,.76), rgba(9,17,29,.86));
  box-shadow:0 22px 48px rgba(0,0,0,.24);
}

.left-panel.hologram-box.context-panel{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
.left-panel.hologram-box.context-panel::before{
  content:"";
  position:absolute;
  inset:18px 12px 18px 12px;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.06), transparent 18%),
    radial-gradient(circle at 50% 52%, rgba(0,0,0,.22), transparent 40%),
    url("../img/rsx-logo-concave.png") center 42% / min(88%, 300px) auto no-repeat;
  opacity:.18;
  filter:grayscale(1) contrast(1.18) brightness(.78) saturate(0);
  mix-blend-mode:soft-light;
}
.left-panel.hologram-box.context-panel::after{
  content:"";
  position:absolute;
  inset:18px 12px 18px 12px;
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(circle at 50% 41%, rgba(255,255,255,.045), transparent 20%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,0) 18%, rgba(0,0,0,.08) 62%, rgba(0,0,0,.18));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    inset 0 -1px 0 rgba(0,0,0,.22),
    inset 0 18px 40px rgba(255,255,255,.015),
    inset 0 -28px 46px rgba(0,0,0,.14);
  opacity:.9;
}
.left-panel.hologram-box.context-panel > *{
  position:relative;
  z-index:1;
}

/* Context panel */
.context-panel .ctx-shell-header{padding:6px 4px 4px;align-items:flex-start;}
.context-panel #ctxTitle{
  font-size:1.1rem;
  letter-spacing:.12em;
  color:#e8f4ff;
}
.context-panel .ctx-subtitle{font-size:.78rem;color:rgba(190,214,238,.58);margin-top:6px;}
.context-panel .ctx-shell-divider{background:rgba(167,215,255,.08);}
.context-panel .ctx-body{gap:14px;padding-right:4px;}
.context-panel .ctx-block,
.context-panel .fc-item,
.context-panel .rsx-crafting-ctx-list-row,
.context-panel .rsx-crafting-ctx-slide,
.context-panel .fc-chip,
.context-panel .fc-list{
  border-radius:18px !important;
}
.context-panel .ctx-block{
  padding:16px 16px !important;
  background:linear-gradient(180deg, rgba(255,255,255,.030), rgba(255,255,255,.014)) !important;
  border:1px solid rgba(167,215,255,.08) !important;
  box-shadow:0 14px 28px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.02) !important;
}
.context-panel .ctx-block:hover{border-color:rgba(167,215,255,.12) !important;box-shadow:0 14px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.03) !important;}
.context-panel .ctx-block h3{font-size:.75rem;letter-spacing:.16em;color:rgba(198,222,245,.74);margin-bottom:12px;}
.context-panel .ctx-list li,
.context-panel .fc-item,
.context-panel .rsx-crafting-ctx-list-row{
  background:rgba(255,255,255,.025) !important;
  border:1px solid rgba(167,215,255,.06) !important;
  box-shadow:none !important;
}
.context-panel .ctx-list li:hover,
.context-panel .fc-item:hover,
.context-panel .rsx-crafting-ctx-list-row:hover{background:rgba(114,214,255,.07) !important;border-color:rgba(114,214,255,.14) !important;}
.context-panel .pill,.context-panel .fc-pill,.badge,.pill,.tag,.rsx-pill,.chip,.status-pill{
  border-radius:10px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:rgba(255,255,255,.05) !important;
  box-shadow:none !important;
}
.context-panel .ctx-actions .ctx-view-rsi,
.context-panel .ctx-block :is(.nav-btn,.btn,.rsx-btn,.ctx-chip,.rsx-chip):not(.ctx-collapse-btn):not(.icon-pill):not(.danger){
  border-radius:12px !important;
}
.context-panel .ctx-collapse-btn{margin-top:2px;}
.left-panel.hologram-box.context-panel .nav-bottom{
  border-top:1px solid rgba(167,215,255,.08) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.01), rgba(255,255,255,.015)) !important;
}
.left-panel .nav-bottom .legal,
.left-panel .nav-bottom .legal p{color:rgba(190,214,238,.52) !important;line-height:1.38 !important;}

/* Inputs */
input,select,textarea,.rsx-search,.rsx-select{
  border-radius:14px !important;
  border:1px solid rgba(167,215,255,.10) !important;
  background:rgba(255,255,255,.03) !important;
  color:#e7f4ff !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.02) !important;
}
input::placeholder,textarea::placeholder{color:rgba(190,214,238,.46) !important;}

/* Home page + common content panels */
.rsx-home-page{padding:14px !important;}
.rsx-home-head{
  padding:14px 16px !important;
  border-radius:22px !important;
  background:linear-gradient(180deg, rgba(13,24,40,.84), rgba(10,18,31,.86)) !important;
  border:1px solid rgba(167,215,255,.08) !important;
  box-shadow:0 18px 38px rgba(0,0,0,.20) !important;
}
.rsx-home-title,.rsx-panel-title,.holo-title{
  letter-spacing:.10em !important;
  color:#ebf6ff !important;
  text-shadow:none !important;
}
.rsx-home-sub,.rsx-panel-meta,.rsx-status,.rsx-toolbarMeta{color:rgba(190,214,238,.60) !important;}
.rsx-panel,
.rsx-comm-card,
.rsx-comm-scroll,
.rsx-comm-stage,
.rsx-home-head,
.rsx-toolbar,
.rsx-panel-head{
  border-radius:24px !important;
  border-color:rgba(167,215,255,.08) !important;
}
.rsx-toolbar,
.rsx-panel-head{
  background:linear-gradient(180deg, rgba(255,255,255,.024), rgba(255,255,255,.010)) !important;
}
.rsx-search,.rsx-select{border-radius:14px !important;}
.rsx-month-chip,.rsx-pill,.rsx-comm-card .nav-btn{border-radius:10px !important;}

/* Remove excess neon from specific old styles */
.top-menu .nav-btn,
.left-panel .nav-bottom .nav-btn,
.rsx-brand-title__text,
.panel h2,.panel h3{
  text-shadow:none !important;
}
.panel h2,.panel h3{border-bottom-color:rgba(167,215,255,.08) !important;}

/* Responsive */
@media (max-width: 1100px){
  .rsx-system-banner__inner.rsx-top-header{grid-template-columns:1fr;}
  .rsx-game-version{width:100%;}
  .rsx-header-actions{justify-self:start;flex-wrap:wrap;}
}
