:root{
  /* Brand */
  --brand-ink:#0B1220;
  --brand-ink-2:#1A2742;
  --brand-accent:#2D6CDF;
  --brand-accent-2:#34C3A6;

  /* Surfaces */
  --bg:#0B1220;
  --surface:#0F1A33;
  --surface-2:#101F3D;
  --card:#0F1A33;

  /* Text */
  --text:#EAF0FF;
  --muted:#B7C4E3;
  --border:rgba(234,240,255,.12);

  /* Radii / shadows */
  --r-xl:18px;
  --r-lg:14px;
  --r-md:12px;
  --shadow: 0 14px 38px rgba(0,0,0,.35);
  --shadow-soft: 0 10px 24px rgba(0,0,0,.22);

  /* Layout */
  --maxw:1180px;
}

/* Base */
html,body{height:100%;}
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background-color: var(--bg);
  background-image:
    radial-gradient(1200px 600px at 15% -10%, rgba(45,108,223,.30), transparent 60%),
    radial-gradient(900px 500px at 95% 0%, rgba(52,195,166,.20), transparent 55%),
    radial-gradient(900px 700px at 55% 105%, rgba(45,108,223,.18), transparent 60%);
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: 140% 140%, 140% 140%, 140% 140%;
  background-position: 15% -10%, 95% 0%, 55% 105%;
  color:var(--text);
  line-height:1.6;
}

a{color: rgba(234,240,255,.92); text-decoration:none;}
a:hover{color:#fff; text-decoration:none;}
.text-muted{color:var(--muted)!important;}
.tiny{font-size: .9rem; color: rgba(234,240,255,.66);}

.container-max{max-width: var(--maxw);}

/* Navbar */
.nav-glass{
  background: rgba(15,26,51,.72);
  border-bottom: 1px solid var(--border);
  backdrop-filter: blur(12px);
}
.navbar .nav-link{
  color: rgba(234,240,255,.82);
  font-weight: 500;
}
.navbar .nav-link:hover,
.navbar .nav-link.active{
  color:#fff;
}
.brand-mark{
  width:46px; height:34px;
  border-radius: 10px;
  background-color: rgba(45,108,223,.95);
  background-image: url("../img/logo.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: 1px solid var(--border);
  box-shadow: 0 10px 20px rgba(0,0,0,.22);
}
.brand-name{
  letter-spacing: .2px;
  font-weight: 650;
  color: #fff;
}

/* Buttons */
.btn-brand{
  --bs-btn-bg: var(--brand-accent);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: #2a63cf;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-color:#fff;
  border-radius: 999px;
  padding: .55rem 1rem;
  box-shadow: 0 12px 22px rgba(45,108,223,.22);
}
.btn-ghost{
  border: 1px solid var(--border);
  color: rgba(234,240,255,.9);
  border-radius: 999px;
  padding: .55rem 1rem;
  background: rgba(255,255,255,.02);
}
.btn-ghost:hover{
  background: rgba(255,255,255,.06);
  color:#fff;
}

/* Hero */
.hero{padding: 3.75rem 0 1.75rem;}
.hero h1{
  font-size: clamp(2rem, 4vw, 3.1rem);
  line-height: 1.12;
  letter-spacing: -.6px;
  margin-bottom: .85rem;
}
.hero .lead{
  color: rgba(234,240,255,.82);
  font-size: 1.12rem;
  max-width: 80ch;
}
.pill{
  display:inline-flex;
  gap:.5rem;
  align-items:center;
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  color: rgba(234,240,255,.86);
  font-size:.9rem;
}
.pill .dot{
  width:8px; height:8px;
  border-radius: 99px;
  background: var(--brand-accent-2);
  box-shadow: 0 0 0 6px rgba(52,195,166,.10);
}

/* Layout blocks */
.section{padding: 2.25rem 0;}
.section-title{
  font-size: 1.35rem;
  margin-bottom: .75rem;
  letter-spacing: -.2px;
}
.divider{
  height:1px;
  background: var(--border);
  margin: 1.25rem 0;
}
.badge-soft{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.03);
  color: rgba(234,240,255,.86);
  font-weight: 500;
}

/* Cards */
.cardx{
  background: rgba(15,26,51,.72);
  border: 1px solid var(--border);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-soft);
}
.cardx .card-body{padding: 1.25rem;}
.objective-card{
  background: linear-gradient(135deg, rgba(45,108,223,.14), rgba(52,195,166,.08));
  border: 1px solid rgba(45,108,223,.35);
  padding: 1.5rem;
}
.objective-card .objective-title{
  font-size: 1.3rem;
  font-weight: 750;
  letter-spacing: -.2px;
}
.objective-card .objective-text{
  font-size: 1.05rem;
  color: rgba(234,240,255,.9);
}
.kpi{
  border-radius: var(--r-lg);
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  padding: .95rem;
  height: 100%;
}
.kpi .label{color: rgba(234,240,255,.72); font-size: .9rem;}
.kpi .value{font-size: 1.05rem; font-weight: 650; margin-top: .2rem;}

/* Lists / navigation */
.toc a{
  display:block;
  padding:.4rem .55rem;
  border-radius: 10px;
  border: 1px solid transparent;
  color: rgba(234,240,255,.82);
}
.toc a:hover{
  background: rgba(255,255,255,.04);
  border-color: var(--border);
  color:#fff;
}
.callout{
  border-left: 3px solid rgba(52,195,166,.9);
  background: rgba(52,195,166,.06);
  border-radius: 14px;
  padding: .95rem 1rem;
  border: 1px solid rgba(52,195,166,.18);
}
.callout .title{font-weight: 650;}
.nav-pills .nav-link{
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
  color: rgba(234,240,255,.82);
  border-radius: 999px;
  padding: .45rem .85rem;
}
.nav-pills .nav-link.active{
  background: rgba(45,108,223,.22);
  border-color: rgba(45,108,223,.55);
  color:#fff;
}

/* Accordion tweaks */
.accordion-button{
  background: rgba(255,255,255,.02);
  color: rgba(234,240,255,.92);
  border: 1px solid var(--border);
  border-radius: 14px !important;
  box-shadow: none;
  padding: .65rem .85rem;
}
.accordion-button:focus{
  box-shadow: none;
  border-color: rgba(45,108,223,.55);
}
.accordion-button:not(.collapsed){
  background: rgba(255,255,255,.04);
  color:#fff;
}
.accordion-item{background: transparent; border: none;}
.accordion-body{
  background: rgba(255,255,255,.02);
  border: 1px solid var(--border);
  border-top: none;
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
  margin-top: -10px;
  padding-top: 1rem;
  color: rgba(234,240,255,.78);
}
code.inline{
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border);
  padding: .1rem .35rem;
  border-radius: 8px;
  color: rgba(234,240,255,.92);
}

/* Utility cards */
.step{
  display:flex;
  gap:.9rem;
  align-items:flex-start;
  padding: 1rem;
  border-radius: 16px;
  background: rgba(255,255,255,.02);
  border: 1px solid var(--border);
  height: 100%;
}
.step .num{
  width:36px; height:36px;
  border-radius: 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 800;
  background: rgba(52,195,166,.10);
  border: 1px solid rgba(52,195,166,.22);
  color: rgba(234,240,255,.95);
  flex: 0 0 auto;
}
.step .t{font-weight:650;}
.step .d{color: rgba(234,240,255,.74);}

.chip{
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
  color: rgba(234,240,255,.82);
  font-size: .85rem;
  margin-right: .4rem;
  margin-bottom: .4rem;
}

.usecard{
  padding: 1rem;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
  height: 100%;
}
.usecard .h{
  font-weight: 750;
  letter-spacing: -.2px;
  margin-bottom: .35rem;
}
.usecard .desc{
  color: rgba(234,240,255,.78);
  margin-bottom: .75rem;
}
.usecard .mini{color: rgba(234,240,255,.68); font-size: .92rem;}

.resource-item{
  padding: .85rem;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
  height: 100%;
}
.resource-item .title{font-weight: 650; margin-bottom: .15rem;}
.resource-item .meta{
  color: rgba(234,240,255,.65);
  font-size: .9rem;
  margin-bottom: .45rem;
}
.glossary-term{
  padding: .9rem;
  border-radius: 16px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
}
.glossary-term .t{font-weight: 750; letter-spacing: -.2px;}
.glossary-term .d{color: rgba(234,240,255,.78); margin-top: .35rem;}

/* Directory */
.company-card{
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(255,255,255,.02);
  height: 100%;
  overflow: hidden;
}
.company-card .top{
  display:flex;
  gap:.9rem;
  align-items:flex-start;
}
.logo{
  width:108px; height:108px;
  border-radius: 14px;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  flex: 0 0 auto;
  overflow: hidden;
}
.logo img{
  width:100%;
  height:100%;
  object-fit: contain;
  padding: 8px;
  background: rgba(255,255,255,.02);
}
.logo .fallback{
  font-weight: 800;
  letter-spacing: -.5px;
  color: rgba(234,240,255,.92);
}
.company-name{
  font-weight: 750;
  letter-spacing: -.2px;
  line-height: 1.2;
  margin-bottom: .2rem;
}
.company-name a{color: rgba(234,240,255,.95);}
.company-name a:hover{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.company-desc{color: rgba(234,240,255,.78); margin-top: .25rem;}
.meta-row{
  display:flex;
  flex-wrap: wrap;
  gap: .45rem .45rem;
  margin-top: .65rem;
}

.filters{
  display:flex;
  flex-wrap: wrap;
  gap: .65rem;
  align-items:center;
}
.form-control, .form-select{
  background-color: rgba(255,255,255,.03);
  border: 1px solid var(--border);
  color: rgba(234,240,255,.92);
}
.form-control::placeholder{color: rgba(234,240,255,.55);}
.form-control:focus, .form-select:focus{
  background-color: rgba(255,255,255,.04);
  border-color: rgba(45,108,223,.55);
  box-shadow: none;
  color: rgba(234,240,255,.95);
}
.form-select option{color:#0B1220;}

/* Footer */
footer{
  border-top: 1px solid var(--border);
  background: rgba(8,14,28,.55);
  padding: 2rem 0;
  margin-top: 2rem;
}
.footer-link{color: rgba(234,240,255,.72);}
.footer-link:hover{color:#fff;}
