:root{
  --bs3-sidebar-width:264px;
  --bs3-sidebar:#0b1220;
  --bs3-sidebar-text:#c8d4e3;
  --bs3-sidebar-muted:#7f90a5;
  --bs3-border:var(--bs-border-color);
  --bs3-shadow:0 .65rem 1.8rem rgba(15,23,42,.07);
  --bs3-radius:.9rem;
}
html[data-bs-theme="dark"]{
  --bs3-shadow:0 .65rem 1.8rem rgba(0,0,0,.22);
}
.bs3-body{
  margin:0;
  background:var(--bs-tertiary-bg);
  color:var(--bs-body-color);
  font-family:var(--bs-font-sans-serif);
}
.bs3-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:var(--bs3-sidebar-width) minmax(0,1fr);
}
.bs3-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  background:var(--bs3-sidebar);
  color:var(--bs3-sidebar-text);
  border-right:1px solid rgba(255,255,255,.08);
  padding:18px 14px;
}
.bs3-brand{
  display:flex;
  align-items:center;
  gap:11px;
  padding:2px 6px 18px;
  color:#fff;
  text-decoration:none;
  font-weight:800;
}
.bs3-brand-mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:linear-gradient(135deg,#0d6efd,#6f42c1);
  color:#fff;
  box-shadow:0 .5rem 1.4rem rgba(13,110,253,.3);
}
.bs3-brand small{
  display:block;
  color:var(--bs3-sidebar-muted);
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-top:2px;
}
.bs3-nav-label{
  color:var(--bs3-sidebar-muted);
  font-size:.66rem;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin:14px 10px 7px;
}
.bs3-nav{
  display:grid;
  gap:5px;
}
.bs3-nav a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:.65rem;
  color:var(--bs3-sidebar-text);
  text-decoration:none;
  font-size:.88rem;
  font-weight:650;
}
.bs3-nav a:hover{
  color:#fff;
  background:rgba(255,255,255,.07);
}
.bs3-nav a.bs3-current{
  color:#fff;
  background:var(--bs-primary);
  box-shadow:0 .45rem 1rem rgba(13,110,253,.25);
}
.bs3-nav-index{
  width:25px;
  height:25px;
  border-radius:7px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.08);
  font-size:.68rem;
  font-weight:800;
}
.bs3-sidebar-foot{
  margin-top:auto;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.08);
}
.bs3-user{
  padding:0 8px 12px;
  color:#fff;
}
.bs3-user small{
  display:block;
  color:var(--bs3-sidebar-muted);
  margin-top:2px;
}
.bs3-main{min-width:0}
.bs3-topbar{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 24px;
  position:sticky;
  top:0;
  z-index:20;
  background:color-mix(in srgb,var(--bs-body-bg) 94%,transparent);
  border-bottom:1px solid var(--bs-border-color);
  backdrop-filter:blur(12px);
}
.bs3-topbar h1{
  font-size:1.25rem;
  margin:2px 0 0;
  font-weight:780;
  letter-spacing:-.025em;
}
.bs3-eyebrow{
  color:var(--bs-secondary-color);
  font-size:.66rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.bs3-top-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.bs3-content{
  width:min(1450px,calc(100% - 36px));
  margin:0 auto;
  padding:24px 0 50px;
}
.bs3-content>.flash{
  margin:0 0 18px;
}
.bs3-body .theme-toggle{
  min-height:38px;
  border-radius:.5rem;
  border:1px solid var(--bs-border-color);
  background:var(--bs-body-bg);
  color:var(--bs-body-color);
  box-shadow:none;
}
.bs3-body .theme-toggle:hover{
  border-color:var(--bs-primary);
  background:var(--bs-primary-bg-subtle);
}
.bs3-body .pagehead{
  padding:12px 0 20px;
}
.bs3-body .pagehead h1{
  font-size:clamp(2rem,4vw,3.5rem);
  margin:8px 0 6px;
}
.bs3-body .hero{
  padding:70px 0;
}
/* BS11 — native Bootstrap components.
   Coderio-specific component duplication was removed here. */
@media(max-width:920px){
  .bs3-shell{grid-template-columns:1fr}
  .bs3-sidebar{
    position:static;
    height:auto;
  }
  .bs3-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .bs3-sidebar-foot{
    margin-top:14px;
  }
}
@media(max-width:620px){
  .bs3-content{width:min(100% - 22px,1450px)}
  .bs3-topbar{padding:10px 12px}
  .bs3-top-actions{flex-wrap:wrap;justify-content:flex-end}
  .bs3-nav{grid-template-columns:1fr}
}

/* Subscription geometry is shared with legacy in app.css. */
.bs3-body .subscription-card-status{
  align-self:flex-start;
}


/* BS11.1 — central user visual polish */
.bs3-body .formcard{
  width:min(100%,560px);
  margin:42px auto;
}
.bs3-body .formcard h1{
  margin-bottom:1.25rem;
}
.bs3-body .form-control,
.bs3-body .form-select{
  min-height:42px;
}
.bs3-body textarea.form-control{
  min-height:96px;
}
.bs3-body .btn:not(.theme-toggle){
  min-height:38px;
}
.bs3-body .form-grid{
  align-items:start;
}
.bs3-body .form-grid>label{
  min-width:0;
}
.bs3-body .billing-tax-lookup .btn{
  min-height:42px;
}
.bs3-body .module{
  border-color:var(--bs-border-color);
}
.bs3-body .module small{
  color:var(--bs-secondary-color);
}
.bs3-body .details dt{
  color:var(--bs-secondary-color);
}
.bs3-body .pagehead>.actions{
  margin-top:0;
}
@media(max-width:820px){
  .bs3-body .form-grid{
    grid-template-columns:1fr!important;
  }
  .bs3-body .form-grid>.span2{
    grid-column:auto!important;
  }
}
@media(max-width:620px){
  .bs3-body .formcard{
    margin:18px auto;
  }
  .bs3-body .billing-tax-lookup{
    grid-template-columns:1fr;
  }
  .bs3-body .billing-tax-lookup input{
    width:100%;
  }
  .bs3-body .billing-tax-lookup .btn{
    width:100%;
  }
}

/* BS11.2 — coherent button system in Bootstrap user shell */
.bs3-body .btn:not(.theme-toggle){
  min-height:40px;
  padding:.56rem .92rem;
  border-radius:.62rem;
  font-weight:700;
  line-height:1.15;
  text-decoration:none;
  box-shadow:none;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease;
}
.bs3-body .btn:not(.theme-toggle):active:not(:disabled):not(.disabled){
  transform:translateY(1px);
}
.bs3-body .btn-primary{
  color:#fff!important;
  background:var(--bs-primary)!important;
  border-color:var(--bs-primary)!important;
}
.bs3-body .btn-primary:hover,
.bs3-body .btn-primary:focus-visible{
  color:#fff!important;
  background:var(--bs-primary-text-emphasis)!important;
  border-color:var(--bs-primary-text-emphasis)!important;
}
.bs3-body .btn-outline-secondary{
  color:var(--bs-body-color)!important;
  background:var(--bs-body-bg)!important;
  border-color:var(--bs-border-color)!important;
}
.bs3-body .btn-outline-secondary:hover,
.bs3-body .btn-outline-secondary:focus-visible{
  color:var(--bs-emphasis-color)!important;
  background:var(--bs-tertiary-bg)!important;
  border-color:var(--bs-secondary-color)!important;
}
.bs3-body .btn-danger{
  color:#fff!important;
}
.bs3-body .btn-outline-danger{
  color:var(--bs-danger)!important;
  background:transparent!important;
  border-color:var(--bs-danger)!important;
}
.bs3-body .btn-outline-danger:hover,
.bs3-body .btn-outline-danger:focus-visible{
  color:#fff!important;
  background:var(--bs-danger)!important;
}
.bs3-body .btn:focus-visible{
  outline:0;
  box-shadow:0 0 0 .22rem rgba(var(--bs-primary-rgb),.18)!important;
}
.bs3-body .btn:disabled,
.bs3-body .btn.disabled{
  opacity:.52;
  pointer-events:none;
  box-shadow:none!important;
}
.bs3-body .btn-sm{
  min-height:34px!important;
  padding:.42rem .72rem!important;
  border-radius:.52rem!important;
  font-size:.78rem;
}
.bs3-body .pagehead>.actions{
  gap:9px;
  align-items:center;
}
.bs3-body .card>.d-flex>.actions{
  margin-top:0;
  align-self:flex-start;
  gap:8px;
}
.bs3-body .module .btn{
  flex:0 0 auto;
  white-space:nowrap;
}
@media(max-width:620px){
  .bs3-body .pagehead>.actions{
    width:100%;
    margin-top:14px;
  }
  .bs3-body .pagehead>.actions .btn{
    flex:1 1 auto;
  }
  .bs3-body .card>.d-flex>.actions{
    width:100%;
  }
}
