/* ============================================================
   SBZ-UI Framework v2.1 — Optimized Build
   © 2026 ShangBangZhuan.com — All Rights Reserved
   ============================================================ */

/* ─── Engine Patches ─── */
.sbz-gpu{backface-visibility:hidden;perspective:1000px;will-change:transform;transform:translateZ(0)}
.sbz-aa{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.sbz-cf::after{content:"";display:table;clear:both}
.sbz-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sbz-nosel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.sbz-trunc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbz-sb::-webkit-scrollbar{width:6px}
.sbz-sb::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:3px}

/* ─── Design Tokens ─── */
:root{
  --sbz-brand:#E8304A;
  --sbz-brand-d:#c4303e;
  --sbz-brand-l:#ff6b5e;
  --sbz-ink:#1a1d20;
  --sbz-ink-2:#3d4247;
  --sbz-muted:#6c757d;
  --sbz-line:#dee2e6;
  --sbz-bg:#ffffff;
  --sbz-bg-2:#f8f9fa;
  --sbz-radius:.25rem;
  --sbz-shadow:0 .5rem 1rem rgba(0,0,0,.15);
  --sbz-bp-xs:0;
  --sbz-bp-sm:576px;
  --sbz-bp-md:768px;
  --sbz-bp-lg:992px;
  --sbz-bp-xl:1200px;
  --sbz-ff:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --sbz-ff-mono:SFMono-Regular,Menlo,Monaco,Consolas,monospace;
}

/* ─── Reset ─── */
*,::after,::before{box-sizing:border-box}
html{font-family:var(--sbz-ff);line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}
body{margin:0;font-family:var(--sbz-ff);font-size:1rem;font-weight:400;line-height:1.5;color:var(--sbz-ink);text-align:left;background-color:var(--sbz-bg)}
[tabindex="-1"]:focus{outline:0!important}
hr{box-sizing:content-box;height:0;overflow:visible;margin:1rem 0;border:0;border-top:1px solid rgba(0,0,0,.1)}
h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}
h1,.h1{font-size:2.5rem}h2,.h2{font-size:2rem}h3,.h3{font-size:1.75rem}
h4,.h4{font-size:1.5rem}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}
p{margin-top:0;margin-bottom:1rem}
a{color:#0066dd;text-decoration:none;background-color:transparent}
a:hover{color:#0056b3;text-decoration:underline}
a:not([href]):not([tabindex]){color:inherit;text-decoration:none}
a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}
a:not([href]):not([tabindex]):focus{outline:0}
img{vertical-align:middle;border-style:none}
svg{overflow:hidden;vertical-align:middle}
table{border-collapse:collapse}
label{display:inline-block;margin-bottom:.5rem}
button{border-radius:0}
button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}
button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}
button,input{overflow:visible}
button,select{text-transform:none}
[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}
[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}
[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}
input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}
textarea{overflow:auto;resize:vertical}
fieldset{min-width:0;padding:0;margin:0;border:0}
legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}
[hidden]{display:none!important}
small,.small{font-size:80%;font-weight:400}
b,strong{font-weight:bolder}
code{font-size:87.5%;color:#d6307a;word-break:break-word;font-family:var(--sbz-ff-mono)}
pre{display:block;margin:1rem 0;font-size:87.5%;color:var(--sbz-ink);font-family:var(--sbz-ff-mono);overflow:auto}

/* ─── Layout ─── */
.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}
@media(min-width:576px){.container{max-width:540px}}
@media(min-width:768px){.container{max-width:720px}}
@media(min-width:992px){.container{max-width:960px}}
@media(min-width:1200px){.container{max-width:1140px}}
.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}
.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}
.no-gutters{margin-right:0;margin-left:0}
.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}

/* ─── Column System ─── */
.col,.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,
.col-auto,.col-sm,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-auto,
.col-md,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-md-auto,
.col-lg,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-auto,
.col-xl,.col-xl-1,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-auto{
  position:relative;width:100%;padding-right:15px;padding-left:15px;
}
.col{flex-basis:0;flex-grow:1;max-width:100%}
.col-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-1{flex:0 0 8.333333%;max-width:8.333333%}
.col-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-3{flex:0 0 25%;max-width:25%}
.col-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-5{flex:0 0 41.666667%;max-width:41.666667%}
.col-6{flex:0 0 50%;max-width:50%}
.col-7{flex:0 0 58.333333%;max-width:58.333333%}
.col-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-9{flex:0 0 75%;max-width:75%}
.col-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-11{flex:0 0 91.666667%;max-width:91.666667%}
.col-12{flex:0 0 100%;max-width:100%}

/* offsets */
.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}
.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}
.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}
.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}

/* sm */
@media(min-width:576px){
.col-sm{flex-basis:0;flex-grow:1;max-width:100%}
.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{flex:0 0 50%;max-width:50%}
.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-sm-9{flex:0 0 75%;max-width:75%}.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{flex:0 0 100%;max-width:100%}
}

/* md */
@media(min-width:768px){
.col-md{flex-basis:0;flex-grow:1;max-width:100%}
.col-md-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-md-1{flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-md-3{flex:0 0 25%;max-width:25%}.col-md-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-md-5{flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{flex:0 0 50%;max-width:50%}
.col-md-7{flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-md-9{flex:0 0 75%;max-width:75%}.col-md-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-md-11{flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{flex:0 0 100%;max-width:100%}
}

/* lg */
@media(min-width:992px){
.col-lg{flex-basis:0;flex-grow:1;max-width:100%}
.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{flex:0 0 50%;max-width:50%}
.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{flex:0 0 100%;max-width:100%}
}

/* xl */
@media(min-width:1200px){
.col-xl{flex-basis:0;flex-grow:1;max-width:100%}
.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}
.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%}
.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%}
.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{flex:0 0 50%;max-width:50%}
.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%}
.col-xl-9{flex:0 0 75%;max-width:75%}.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%}
.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{flex:0 0 100%;max-width:100%}
}

/* ─── Flex Utilities ─── */
.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}
.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}
.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}
.align-items-center{align-items:center!important}
.align-items-start{align-items:flex-start!important}
.align-items-end{align-items:flex-end!important}
.justify-content-center{justify-content:center!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-end{justify-content:flex-end!important}
.justify-content-start{justify-content:flex-start!important}
.text-center{text-align:center!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}

/* ─── Buttons ─── */
.btn{display:inline-block;font-weight:400;text-align:center;vertical-align:middle;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:var(--sbz-radius);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}
.btn:hover{color:var(--sbz-ink);text-decoration:none}
.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(232,48,74,.25)}
.btn.disabled,.btn:disabled{opacity:.65}
.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}
.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}
.btn-block{display:block;width:100%}

/* brand button */
.btn-primary{color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-primary:hover{color:#fff;background-color:#d4283f;border-color:#c4303e}
.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(232,48,74,.5)}
.btn-primary:disabled{color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}

/* outline */
.btn-outline-primary{color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-outline-primary:hover{color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(232,48,74,.5)}

/* light */
.btn-light{color:var(--sbz-ink);background-color:#f8f9fa;border-color:#f8f9fa}
.btn-light:hover{color:var(--sbz-ink);background-color:#e2e6ea;border-color:#dae0e5}
.btn-outline-light{color:#fff;border-color:#fff}
.btn-outline-light:hover{color:var(--sbz-ink);background-color:#fff;border-color:#fff}

/* ─── Cards ─── */
.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:var(--sbz-radius)}
.card-body{flex:1 1 auto;padding:1.25rem}
.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}
.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}
.card-title{margin-bottom:.75rem}
.card-subtitle{margin-top:-.375rem;margin-bottom:0}

/* ─── Blockquote ─── */
.blockquote{margin-bottom:1rem;font-size:1.05rem;line-height:1.6}
.blockquote-footer{display:block;font-size:80%;color:var(--sbz-muted)}
.blockquote-footer::before{content:"\2014\00A0"}

/* ─── Badge ─── */
.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--sbz-radius)}
.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}
.badge-primary{color:#fff;background-color:var(--sbz-brand)}

/* ─── Nav ─── */
nav{display:block}
.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}
.nav-link{display:block;padding:.5rem 1rem}
.nav-link:hover{text-decoration:none}
.nav-link.disabled{color:var(--sbz-muted);pointer-events:none}

/* ─── Fixed / Sticky ─── */
.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}
.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}

/* ─── Text Colors ─── */
.text-white{color:#fff!important}
.text-muted{color:var(--sbz-muted)!important}
.text-primary{color:var(--sbz-brand)!important}
.text-danger{color:var(--sbz-brand)!important}
.text-reset{color:inherit!important}

/* ─── Backgrounds ─── */
.bg-white{background-color:#fff!important}
.bg-light{background-color:var(--sbz-bg-2)!important}
.bg-dark{background-color:#1a1d20!important}
.bg-danger{background-color:var(--sbz-brand)!important}
.bg-primary{background-color:var(--sbz-brand)!important}

/* ─── Borders & Radius ─── */
.border{border:1px solid var(--sbz-line)!important}
.border-0{border:0!important}
.rounded{border-radius:var(--sbz-radius)!important}
.rounded-pill{border-radius:50rem!important}
.rounded-circle{border-radius:50%!important}

/* ─── Shadows ─── */
.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}
.shadow{box-shadow:var(--sbz-shadow)!important}
.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}

/* ─── Spacing ─── */
.m-0{margin:0!important}.mt-0{margin-top:0!important}.mb-0{margin-bottom:0!important}
.m-1{margin:.25rem!important}.mt-1{margin-top:.25rem!important}.mb-1{margin-bottom:.25rem!important}
.m-2{margin:.5rem!important}.mt-2{margin-top:.5rem!important}.mb-2{margin-bottom:.5rem!important}
.m-3{margin:1rem!important}.mt-3{margin-top:1rem!important}.mb-3{margin-bottom:1rem!important}
.m-4{margin:1.5rem!important}.mt-4{margin-top:1.5rem!important}.mb-4{margin-bottom:1.5rem!important}
.m-5{margin:3rem!important}.mt-5{margin-top:3rem!important}.mb-5{margin-bottom:3rem!important}
.p-0{padding:0!important}.pt-0{padding-top:0!important}.pb-0{padding-bottom:0!important}
.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}
.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}
.py-3{padding-top:1rem!important;padding-bottom:1rem!important}
.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}
.py-5{padding-top:3rem!important;padding-bottom:3rem!important}
.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}
.px-5{padding-left:3rem!important;padding-right:3rem!important}
.ml-3{margin-left:1rem!important}
.mr-2{margin-right:.5rem!important}
.mr-3{margin-right:1rem!important}
.mb-2{margin-bottom:.5rem!important}

/* ─── Display ─── */
.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.75rem}
.h4{font-size:1.5rem}.h5{font-size:1.25rem}.h6{font-size:1rem}

/* ─── Lead ─── */
.lead{font-size:1.25rem;font-weight:300}

/* ─── Images ─── */
.img-fluid{max-width:100%;height:auto}
.figure{display:inline-block}
.figure-img{margin-bottom:.5rem;line-height:1}

/* ─── Forms ─── */
.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--sbz-ink-2);background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:var(--sbz-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}
.form-control:focus{color:var(--sbz-ink-2);background-color:#fff;border-color:#ff8a99;outline:0;box-shadow:0 0 0 .2rem rgba(232,48,74,.25)}
.form-control::placeholder{color:var(--sbz-muted);opacity:1}
.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}
.form-group{margin-bottom:1rem}

/* ─── Pagination ─── */
.pagination{display:flex;padding-left:0;list-style:none;border-radius:var(--sbz-radius)}
.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:var(--sbz-brand);background-color:#fff;border:1px solid var(--sbz-line)}
.page-link:hover{z-index:2;color:#c4303e;text-decoration:none;background-color:#e9ecef;border-color:var(--sbz-line)}
.page-item.active .page-link{z-index:1;color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}

/* ─── Alerts ─── */
.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:var(--sbz-radius)}
.alert-primary{color:#7a0020;background-color:#ffe0e6;border-color:#ffccd6}
.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}
.alert-danger{color:#7a0020;background-color:#ffe0e6;border-color:#ffccd6}

/* ─── Progress ─── */
.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:var(--sbz-radius)}
.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;background-color:var(--sbz-brand);transition:width .6s ease}

/* ─── Tables ─── */
.table{width:100%;margin-bottom:1rem;color:var(--sbz-ink)}
.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid var(--sbz-line)}
.table thead th{vertical-align:bottom;border-bottom:2px solid var(--sbz-line)}
.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}
.table-hover tbody tr:hover{color:var(--sbz-ink);background-color:rgba(0,0,0,.075)}

/* ─── List Group ─── */
.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}
.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}
.list-group-item:first-child{border-top-left-radius:var(--sbz-radius);border-top-right-radius:var(--sbz-radius)}
.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:var(--sbz-radius);border-bottom-left-radius:var(--sbz-radius)}

/* ─── Modal ─── */
.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}
.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}
.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}

/* ─── Tooltip / Popover ─── */
.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-size:.875rem;word-wrap:break-word;opacity:0}
.tooltip.show{opacity:.9}
.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:var(--sbz-radius)}

/* ─── Carousel ─── */
.carousel{position:relative}
.carousel-inner{position:relative;width:100%;overflow:hidden}
.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%}
.carousel-item.active{display:block}
.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;color:#fff;opacity:.5;transition:opacity .15s ease}
.carousel-control-prev:hover,.carousel-control-next:hover{color:#fff;opacity:.9}

/* ─── Spinner ─── */
.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;animation:sbz-spin .75s linear infinite}
@keyframes sbz-spin{to{transform:rotate(360deg)}}

/* ─── Collapse ─── */
.collapse:not(.show){display:none}
.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}

/* ─── Fade ─── */
.fade{transition:opacity .15s linear}
.fade:not(.show){opacity:0}

/* ─── Responsive Display ─── */
@media(min-width:576px){
.d-sm-none{display:none!important}.d-sm-block{display:block!important}.d-sm-flex{display:flex!important}
}
@media(min-width:768px){
.d-md-none{display:none!important}.d-md-block{display:block!important}.d-md-flex{display:flex!important}
}
@media(min-width:992px){
.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}
}
@media(min-width:1200px){
.d-xl-none{display:none!important}.d-xl-block{display:block!important}.d-xl-flex{display:flex!important}
}

/* ─── Print ─── */
@media print{
.d-print-none{display:none!important}
.d-print-block{display:block!important}
}

/* ─── Footer ─── */
footer{display:block}

/* ─── Friend Links ─── */
.friend_links a{color:#666;font-size:12px;margin-right:10px;float:left}

/* ─── Rich Content Tables ─── */
.rich-content table{width:100%;margin:1rem 0;color:#212529;border:1px solid #dee2e6;border-collapse:collapse}
.rich-content table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}
.rich-content table td,.rich-content table th{border:1px solid #dee2e6;padding:.75rem;vertical-align:top}

/* ─── Section Spacing Helpers ─── */
section{display:block}
section.py-5{padding-top:3rem;padding-bottom:3rem}

/* ─── Missing Utilities (patched) ─── */
.btn-outline-danger{color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-outline-danger:hover{color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(232,48,74,.5)}
.text-danger{color:var(--sbz-brand)!important}
.pt-5{padding-top:3rem!important}
.pt-lg-0{padding-top:0!important}
.py-lg-0{padding-top:0!important;padding-bottom:0!important}
.text-lg-left{text-align:left!important}
.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}
.links{font-size:12px;color:#666}
.links a{color:#666;margin-right:10px}

/* ─── Brand-specific Overrides ─── */
.text-brand{color:var(--sbz-brand)!important}
.bg-brand{background-color:var(--sbz-brand)!important}
.btn-brand{color:#fff;background-color:var(--sbz-brand);border-color:var(--sbz-brand)}
.btn-brand:hover{color:#fff;background-color:#d4283f;border-color:#c4303e}

/* JS tracker hooks (no-op) */
.btn-a{}
.hc-font-s12{font-size:12px}

/* ═══════════════════════════════════════════════════════════
   END OF SBZ-UI FRAMEWORK
   ═══════════════════════════════════════════════════════════ */
