/*
 * Coalition Visual Hardening — VH-01/VH-03/VH-05 starter pass
 * Purpose: shared layout rhythm, panel grammar, and corrected sidebar active states.
 */
:root{
  --coalition-bg:#040a0c;
  --coalition-panel:rgba(4,10,12,.94);
  --coalition-panel-2:rgba(6,16,18,.92);
  --coalition-line:rgba(184,154,88,.28);
  --coalition-line-soft:rgba(184,154,88,.14);
  --coalition-gold:#d4af37;
  --coalition-gold-soft:#dac58d;
  --coalition-text:#d7d2c8;
  --coalition-muted:#928b7f;
  --coalition-green:#7dffbf;
  --coalition-card-radius:0;
  --coalition-gap:16px;
}

.page-shell{
  width:min(1536px, calc(100vw - 16px));
  padding:12px;
  border-color:rgba(184,154,88,.12) !important;
}

.site-header{
  grid-template-columns:minmax(170px, 220px) minmax(340px, 1fr) minmax(220px, 286px) !important;
  gap:16px;
  min-height:110px;
  height:auto !important;
  padding:12px 16px !important;
  border-color:var(--coalition-line-soft) !important;
}

.observatory,
.header-motto{
  max-width:100%;
  overflow-wrap:anywhere;
}

.header-right{
  min-width:0;
}

.header-motto{
  display:grid;
  gap:3px;
  line-height:1.35;
}

.layout{
  grid-template-columns:minmax(196px, 210px) minmax(0, 1fr) minmax(210px, 232px) !important;
  gap:var(--coalition-gap) !important;
  align-items:start;
}

.content,
.left-rail,
.right-rail{
  min-width:0;
}

.panel,
.card,
.forum-table,
.side-card,
.cipher-box,
.tm-panel,
.notification-panel,
.notification-card,
.preference-card{
  border-color:var(--coalition-line-soft) !important;
  background:linear-gradient(180deg, var(--coalition-panel-2), rgba(3,7,8,.94)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.018), 0 18px 34px rgba(0,0,0,.18) !important;
}

.card,
.side-card,
.cipher-box{
  padding:clamp(14px, 1.5vw, 22px);
}

.card + .card,
.panel + .panel,
.side-card + .side-card{
  margin-top:12px;
}

.card h1,
.card h2,
.side-card h3,
.cipher-box h3,
.forum-title{
  color:var(--coalition-gold-soft) !important;
  text-shadow:0 0 18px rgba(212,175,55,.08);
}

.left-rail nav,
.mobile-nav-menu{
  isolation:isolate;
}

.left-rail nav a,
.mobile-nav-menu a{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border-top-color:var(--coalition-line-soft) !important;
  transition:background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.left-rail nav a:first-child,
.mobile-nav-menu a:first-child{
  background:transparent !important;
  color:#c6bba8 !important;
}

.left-rail nav a:hover,
.mobile-nav-menu a:hover{
  background:linear-gradient(90deg, rgba(212,175,55,.16), rgba(212,175,55,.035)) !important;
  color:#fff !important;
}

.left-rail nav a.is-active,
.mobile-nav-menu a.is-active,
.left-rail nav a[aria-current="page"],
.mobile-nav-menu a[aria-current="page"]{
  background:linear-gradient(90deg, rgba(212,175,55,.31), rgba(212,175,55,.055)) !important;
  color:#fff !important;
  border-top-color:rgba(212,175,55,.34) !important;
}

.left-rail nav a.is-active::before,
.mobile-nav-menu a.is-active::before,
.left-rail nav a[aria-current="page"]::before,
.mobile-nav-menu a[aria-current="page"]::before{
  content:"";
  position:absolute;
  left:0;
  top:8px;
  bottom:8px;
  width:2px;
  background:var(--coalition-gold);
  box-shadow:0 0 14px rgba(212,175,55,.42);
}

.right-rail{
  gap:12px !important;
}

.right-rail .panel,
.side-card{
  overflow:hidden;
}

.btn,
.button,
button,
input[type="submit"]{
  max-width:100%;
}

.forum-row,
.table-head{
  min-width:0;
}

.forum-row > *,
.table-head > *{
  min-width:0;
}

@media(max-width:1180px){
  .site-header{
    grid-template-columns:1fr !important;
    text-align:center;
  }
  .header-right,
  .observatory{
    justify-self:center;
  }
  .layout{
    grid-template-columns:minmax(180px, 210px) minmax(0, 1fr) !important;
  }
  .right-rail{
    grid-column:1 / -1;
    display:grid !important;
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}

@media(max-width:900px){
  .page-shell{
    width:100%;
    padding:10px;
  }
  .layout{
    grid-template-columns:1fr !important;
  }
  .right-rail{
    grid-template-columns:1fr;
  }
  .desktop-rail{
    display:none;
  }
}

@media(max-width:560px){
  .site-header{
    padding:12px !important;
  }
  .card,
  .side-card,
  .cipher-box{
    padding:14px;
  }
}

/*
 * Coalition Visual Hardening — VH-03 Sidebar Refinement
 * Canonical baseline: visual_hardening_phase_01_patch.zip
 * Intent: tighten sidebar navigation without glow, bloom, scaling, or layout shift.
 */
:root{
  --coalition-sidebar-width:210px;
  --coalition-sidebar-item-height:42px;
  --coalition-sidebar-icon-width:24px;
  --coalition-sidebar-active-bg:rgba(212,175,55,.075);
  --coalition-sidebar-hover-bg:rgba(255,255,255,.026);
  --coalition-sidebar-text:#c6bba8;
  --coalition-sidebar-text-active:#f1eadc;
}

.left-rail{
  width:100%;
  max-width:var(--coalition-sidebar-width);
  overflow:hidden;
}

.left-rail nav{
  margin:18px -16px 18px;
}

.left-rail nav a,
.mobile-nav-menu a{
  min-height:var(--coalition-sidebar-item-height);
  padding:10px 16px 10px 18px !important;
  line-height:1.35;
  border-top:1px solid var(--coalition-line-soft) !important;
  background:transparent !important;
  color:var(--coalition-sidebar-text) !important;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:12px;
  transform:none !important;
  box-shadow:none !important;
  text-shadow:none !important;
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}

.left-rail nav a:first-child,
.mobile-nav-menu a:first-child{
  background:transparent !important;
  color:var(--coalition-sidebar-text) !important;
}

.left-rail nav a:hover,
.left-rail nav a:focus,
.mobile-nav-menu a:hover,
.mobile-nav-menu a:focus{
  background:var(--coalition-sidebar-hover-bg) !important;
  color:#fff !important;
  outline:0;
}

.left-rail nav a.is-active,
.left-rail nav a[aria-current="page"],
.mobile-nav-menu a.is-active,
.mobile-nav-menu a[aria-current="page"]{
  background:var(--coalition-sidebar-active-bg) !important;
  color:var(--coalition-sidebar-text-active) !important;
  border-top-color:rgba(212,175,55,.22) !important;
  font-weight:600;
}

.left-rail nav a.is-active::before,
.left-rail nav a[aria-current="page"]::before,
.mobile-nav-menu a.is-active::before,
.mobile-nav-menu a[aria-current="page"]::before{
  content:"";
  position:absolute;
  left:0;
  top:9px;
  bottom:9px;
  width:3px;
  background:var(--coalition-gold);
  box-shadow:none !important;
}

.left-rail nav a::after,
.mobile-nav-menu a::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:1px;
  background:rgba(255,255,255,.012);
  pointer-events:none;
}

.left-nav-messages{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

.left-nav-messages span{
  min-width:0;
}

.left-nav-badge,
.coalition-nav-badge{
  min-width:24px;
  height:20px;
  padding:0 6px;
  display:inline-grid;
  place-items:center;
  border:1px solid rgba(212,175,55,.24);
  background:rgba(212,175,55,.07);
  color:var(--coalition-gold-soft);
  font-size:10px;
  line-height:1;
  letter-spacing:.06em;
  font-weight:700;
  box-shadow:none !important;
}

.left-rail .cipher-box,
.left-rail .overtruth-rail-card{
  margin-top:14px;
}

.left-rail::-webkit-scrollbar,
.mobile-nav-menu::-webkit-scrollbar{
  width:6px;
}

.left-rail::-webkit-scrollbar-track,
.mobile-nav-menu::-webkit-scrollbar-track{
  background:rgba(255,255,255,.02);
}

.left-rail::-webkit-scrollbar-thumb,
.mobile-nav-menu::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,.18);
}

@media(max-width:900px){
  .left-rail{
    max-width:none;
  }
}

/*
 * Coalition Visual Hardening — VH-06B Typography Pass, No-Glow Revision
 * Baseline: VH-05D nav flow wiring fix.
 * Policy: typography only. No glow, bloom, shadow, transform, or layout expansion.
 */
:root{
  --coalition-font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --coalition-type-small:.875rem;
  --coalition-type-label:.75rem;
  --coalition-type-body:1rem;
  --coalition-type-h3:1.18rem;
  --coalition-type-h2:1.45rem;
  --coalition-type-h1:2rem;
  --coalition-line-body:1.5;
  --coalition-line-heading:1.18;
  --coalition-letter-label:.14em;
}

body,
input,
textarea,
select,
button{
  font-family:var(--coalition-font-ui);
}

.content,
.panel,
.card,
.side-card,
.cipher-box,
.profile-card,
.notification-panel,
.notification-card,
.preference-card{
  line-height:var(--coalition-line-body);
}

h1,h2,h3,h4,h5,h6,
.page-title,
.forum-title,
.card-title,
.panel-title,
.profile-name,
.profile-card h3{
  line-height:var(--coalition-line-heading);
  margin-top:0;
  text-shadow:none !important;
}

h1,
.page-title{
  font-size:var(--coalition-type-h1);
  font-weight:800;
  letter-spacing:-.01em;
}

h2{
  font-size:var(--coalition-type-h2);
  font-weight:750;
}

h3,
.card h3,
.side-card h3,
.cipher-box h3,
.panel-title,
.profile-card h3{
  font-size:var(--coalition-type-h3);
  font-weight:750;
}

small,
.muted,
.meta,
.breadcrumb,
.profile-meta,
.profile-stat small{
  font-size:var(--coalition-type-small);
  line-height:1.4;
}

.left-rail nav a,
.mobile-nav-menu a,
.btn,
.button,
button,
input[type="submit"],
.profile-tabs a,
.profile-sub{
  letter-spacing:var(--coalition-letter-label);
}

.left-rail nav a,
.mobile-nav-menu a{
  font-size:12px;
  line-height:1.28;
  font-weight:600;
}

.btn,
.button,
button,
input[type="submit"]{
  font-size:var(--coalition-type-label);
  line-height:1.2;
  font-weight:700;
  text-transform:uppercase;
}

.profile-stat b,
.notification-count,
.badge,
.online-count,
.stat-value{
  font-variant-numeric:tabular-nums;
}

.content a:not(.button):not(.btn){
  text-underline-offset:.18em;
}
