/* ============================================================
   ok-ui.css  —  Openkoda vanilla CSS contract (Phase 2)
   ------------------------------------------------------------
   Hand-owned reimplementation of the Bootstrap 4.5.2 + SB-Admin-2
   class subset used across the templates. Replaces the bundled
   sb-admin-2.min.css. Structural metrics match BS4 1:1; brand
   colors/radius/shadow come from tokens.css. GENERATED — edit
   gen_okui.py, not this file.
   ============================================================ */
@import "tokens.css";

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{font-family:var(--ok-font-sans);line-height:1.15;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--ok-font-sans);font-size:1rem;font-weight:400;line-height:1.5;color:var(--ok-text);text-align:left;background-color:var(--ok-bg);}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{margin-top:0;margin-bottom:.5rem;font-weight:600;line-height:1.2;color:inherit;}
.h1{font-size:2rem;}.h2{font-size:1.6rem;}.h3{font-size:1.35rem;}.h4{font-size:1.15rem;}.h5{font-size:1rem;}.h6{font-size:.85rem;}
p{margin-top:0;margin-bottom:1rem;}
a{color:var(--primary);text-decoration:none;background-color:transparent;}
a:hover{color:var(--primary-dark);text-decoration:underline;}
img{vertical-align:middle;border-style:none;}
hr{box-sizing:content-box;height:0;overflow:visible;border:0;border-top:1px solid var(--ok-border);margin:1rem 0;}
ul,ol{margin-top:0;margin-bottom:1rem;}
small,.small{font-size:80%;font-weight:400;}
.lead{font-size:1.25rem;font-weight:300;}
b,strong{font-weight:600;}
button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;}
button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;cursor:pointer;}
button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color;}
label{display:inline-block;margin-bottom:.5rem;}

/* ---------- Layout: containers ---------- */
.container,.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto;}
.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;}}
.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px;}
.no-gutters{margin-right:0;margin-left:0;}
.no-gutters>[class*='col-'],.no-gutters>.col{padding-right:0;padding-left:0;}
/* ---------- Grid columns ---------- */
.col{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-auto{flex:0 0 auto;width:auto;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-1{flex:0 0 8.333333%;max-width:8.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-2{flex:0 0 16.666667%;max-width:16.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-3{flex:0 0 25.0%;max-width:25.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-4{flex:0 0 33.333333%;max-width:33.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-5{flex:0 0 41.666667%;max-width:41.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-6{flex:0 0 50.0%;max-width:50.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-7{flex:0 0 58.333333%;max-width:58.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-8{flex:0 0 66.666667%;max-width:66.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-9{flex:0 0 75.0%;max-width:75.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-10{flex:0 0 83.333333%;max-width:83.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-11{flex:0 0 91.666667%;max-width:91.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-12{flex:0 0 100.0%;max-width:100.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
@media(min-width:576px){
.col-sm{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-auto{flex:0 0 auto;width:auto;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-1{flex:0 0 8.333333%;max-width:8.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-2{flex:0 0 16.666667%;max-width:16.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-3{flex:0 0 25.0%;max-width:25.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-4{flex:0 0 33.333333%;max-width:33.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-5{flex:0 0 41.666667%;max-width:41.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-6{flex:0 0 50.0%;max-width:50.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-7{flex:0 0 58.333333%;max-width:58.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-8{flex:0 0 66.666667%;max-width:66.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-9{flex:0 0 75.0%;max-width:75.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-10{flex:0 0 83.333333%;max-width:83.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-11{flex:0 0 91.666667%;max-width:91.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-sm-12{flex:0 0 100.0%;max-width:100.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
}
@media(min-width:768px){
.col-md{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-auto{flex:0 0 auto;width:auto;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-1{flex:0 0 8.333333%;max-width:8.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-2{flex:0 0 16.666667%;max-width:16.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-3{flex:0 0 25.0%;max-width:25.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-4{flex:0 0 33.333333%;max-width:33.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-5{flex:0 0 41.666667%;max-width:41.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-6{flex:0 0 50.0%;max-width:50.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-7{flex:0 0 58.333333%;max-width:58.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-8{flex:0 0 66.666667%;max-width:66.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-9{flex:0 0 75.0%;max-width:75.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-10{flex:0 0 83.333333%;max-width:83.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-11{flex:0 0 91.666667%;max-width:91.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-md-12{flex:0 0 100.0%;max-width:100.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
}
@media(min-width:992px){
.col-lg{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-auto{flex:0 0 auto;width:auto;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-1{flex:0 0 8.333333%;max-width:8.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-2{flex:0 0 16.666667%;max-width:16.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-3{flex:0 0 25.0%;max-width:25.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-4{flex:0 0 33.333333%;max-width:33.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-5{flex:0 0 41.666667%;max-width:41.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-6{flex:0 0 50.0%;max-width:50.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-7{flex:0 0 58.333333%;max-width:58.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-8{flex:0 0 66.666667%;max-width:66.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-9{flex:0 0 75.0%;max-width:75.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-10{flex:0 0 83.333333%;max-width:83.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-11{flex:0 0 91.666667%;max-width:91.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-lg-12{flex:0 0 100.0%;max-width:100.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
}
@media(min-width:1200px){
.col-xl{flex-basis:0;flex-grow:1;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-auto{flex:0 0 auto;width:auto;max-width:100%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-1{flex:0 0 8.333333%;max-width:8.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-2{flex:0 0 16.666667%;max-width:16.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-3{flex:0 0 25.0%;max-width:25.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-4{flex:0 0 33.333333%;max-width:33.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-5{flex:0 0 41.666667%;max-width:41.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-6{flex:0 0 50.0%;max-width:50.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-7{flex:0 0 58.333333%;max-width:58.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-8{flex:0 0 66.666667%;max-width:66.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-9{flex:0 0 75.0%;max-width:75.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-10{flex:0 0 83.333333%;max-width:83.333333%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-11{flex:0 0 91.666667%;max-width:91.666667%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
.col-xl-12{flex:0 0 100.0%;max-width:100.0%;position:relative;width:100%;padding-right:15px;padding-left:15px;}
}
/* ---------- Display ---------- */
.d-none{display:none!important;}
.d-inline{display:inline!important;}
.d-inline-block{display:inline-block!important;}
.d-block{display:block!important;}
.d-table{display:table!important;}
.d-table-cell{display:table-cell!important;}
.d-flex{display:flex!important;}
.d-inline-flex{display:inline-flex!important;}
@media(min-width:576px){
.d-sm-none{display:none!important;}
.d-sm-inline{display:inline!important;}
.d-sm-inline-block{display:inline-block!important;}
.d-sm-block{display:block!important;}
.d-sm-table{display:table!important;}
.d-sm-table-cell{display:table-cell!important;}
.d-sm-flex{display:flex!important;}
.d-sm-inline-flex{display:inline-flex!important;}
}
@media(min-width:768px){
.d-md-none{display:none!important;}
.d-md-inline{display:inline!important;}
.d-md-inline-block{display:inline-block!important;}
.d-md-block{display:block!important;}
.d-md-table{display:table!important;}
.d-md-table-cell{display:table-cell!important;}
.d-md-flex{display:flex!important;}
.d-md-inline-flex{display:inline-flex!important;}
}
@media(min-width:992px){
.d-lg-none{display:none!important;}
.d-lg-inline{display:inline!important;}
.d-lg-inline-block{display:inline-block!important;}
.d-lg-block{display:block!important;}
.d-lg-table{display:table!important;}
.d-lg-table-cell{display:table-cell!important;}
.d-lg-flex{display:flex!important;}
.d-lg-inline-flex{display:inline-flex!important;}
}
@media(min-width:1200px){
.d-xl-none{display:none!important;}
.d-xl-inline{display:inline!important;}
.d-xl-inline-block{display:inline-block!important;}
.d-xl-block{display:block!important;}
.d-xl-table{display:table!important;}
.d-xl-table-cell{display:table-cell!important;}
.d-xl-flex{display:flex!important;}
.d-xl-inline-flex{display:inline-flex!important;}
}
/* ---------- Flex ---------- */
.flex-row{flex-direction:row!important;}.flex-column{flex-direction:column!important;}
.flex-wrap{flex-wrap:wrap!important;}.flex-nowrap{flex-wrap:nowrap!important;}
.flex-fill{flex:1 1 auto!important;}.flex-grow-1{flex-grow:1!important;}
.justify-content-start{justify-content:flex-start!important;}
.justify-content-end{justify-content:flex-end!important;}
.justify-content-center{justify-content:center!important;}
.justify-content-between{justify-content:space-between!important;}
.justify-content-around{justify-content:space-around!important;}
.align-items-start{align-items:flex-start!important;}
.align-items-end{align-items:flex-end!important;}
.align-items-center{align-items:center!important;}
.align-items-baseline{align-items:baseline!important;}
.align-items-stretch{align-items:stretch!important;}
.align-self-start{align-self:flex-start!important;}
.align-self-end{align-self:flex-end!important;}
.align-self-center{align-self:center!important;}
.align-self-stretch{align-self:stretch!important;}
/* ---------- Spacing (margin/padding) ---------- */
.mt-0{margin-top:0!important;}
.mt-1{margin-top:.25rem!important;}
.mt-2{margin-top:.5rem!important;}
.mt-3{margin-top:1rem!important;}
.mt-4{margin-top:1.5rem!important;}
.mt-5{margin-top:3rem!important;}
.mt-auto{margin-top:auto!important;}
.mb-0{margin-bottom:0!important;}
.mb-1{margin-bottom:.25rem!important;}
.mb-2{margin-bottom:.5rem!important;}
.mb-3{margin-bottom:1rem!important;}
.mb-4{margin-bottom:1.5rem!important;}
.mb-5{margin-bottom:3rem!important;}
.mb-auto{margin-bottom:auto!important;}
.ml-0{margin-left:0!important;}
.ml-1{margin-left:.25rem!important;}
.ml-2{margin-left:.5rem!important;}
.ml-3{margin-left:1rem!important;}
.ml-4{margin-left:1.5rem!important;}
.ml-5{margin-left:3rem!important;}
.ml-auto{margin-left:auto!important;}
.mr-0{margin-right:0!important;}
.mr-1{margin-right:.25rem!important;}
.mr-2{margin-right:.5rem!important;}
.mr-3{margin-right:1rem!important;}
.mr-4{margin-right:1.5rem!important;}
.mr-5{margin-right:3rem!important;}
.mr-auto{margin-right:auto!important;}
.mx-0{margin-left:0!important;margin-right:0!important;}
.mx-1{margin-left:.25rem!important;margin-right:.25rem!important;}
.mx-2{margin-left:.5rem!important;margin-right:.5rem!important;}
.mx-3{margin-left:1rem!important;margin-right:1rem!important;}
.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important;}
.mx-5{margin-left:3rem!important;margin-right:3rem!important;}
.mx-auto{margin-left:auto!important;margin-right:auto!important;}
.my-0{margin-top:0!important;margin-bottom:0!important;}
.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important;}
.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important;}
.my-3{margin-top:1rem!important;margin-bottom:1rem!important;}
.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important;}
.my-5{margin-top:3rem!important;margin-bottom:3rem!important;}
.my-auto{margin-top:auto!important;margin-bottom:auto!important;}
.m-0{margin:0!important;}
.m-1{margin:.25rem!important;}
.m-2{margin:.5rem!important;}
.m-3{margin:1rem!important;}
.m-4{margin:1.5rem!important;}
.m-5{margin:3rem!important;}
.m-auto{margin:auto!important;}
.pt-0{padding-top:0!important;}
.pt-1{padding-top:.25rem!important;}
.pt-2{padding-top:.5rem!important;}
.pt-3{padding-top:1rem!important;}
.pt-4{padding-top:1.5rem!important;}
.pt-5{padding-top:3rem!important;}
.pb-0{padding-bottom:0!important;}
.pb-1{padding-bottom:.25rem!important;}
.pb-2{padding-bottom:.5rem!important;}
.pb-3{padding-bottom:1rem!important;}
.pb-4{padding-bottom:1.5rem!important;}
.pb-5{padding-bottom:3rem!important;}
.pl-0{padding-left:0!important;}
.pl-1{padding-left:.25rem!important;}
.pl-2{padding-left:.5rem!important;}
.pl-3{padding-left:1rem!important;}
.pl-4{padding-left:1.5rem!important;}
.pl-5{padding-left:3rem!important;}
.pr-0{padding-right:0!important;}
.pr-1{padding-right:.25rem!important;}
.pr-2{padding-right:.5rem!important;}
.pr-3{padding-right:1rem!important;}
.pr-4{padding-right:1.5rem!important;}
.pr-5{padding-right:3rem!important;}
.px-0{padding-left:0!important;padding-right:0!important;}
.px-1{padding-left:.25rem!important;padding-right:.25rem!important;}
.px-2{padding-left:.5rem!important;padding-right:.5rem!important;}
.px-3{padding-left:1rem!important;padding-right:1rem!important;}
.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important;}
.px-5{padding-left:3rem!important;padding-right:3rem!important;}
.py-0{padding-top:0!important;padding-bottom:0!important;}
.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important;}
.py-2{padding-top:.5rem!important;padding-bottom:.5rem!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;}
.p-0{padding: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;}
@media(min-width:576px){.mb-sm-0{margin-bottom:0!important;}}
@media(min-width:768px){.my-md-0{margin-top:0!important;margin-bottom:0!important;}}
/* ---------- Sizing ---------- */
.w-25{width:25%!important;}.w-50{width:50%!important;}.w-75{width:75%!important;}.w-100{width:100%!important;}.w-auto{width:auto!important;}
.h-25{height:25%!important;}.h-50{height:50%!important;}.h-75{height:75%!important;}.h-100{height:100%!important;}.h-auto{height:auto!important;}
.mw-100{max-width:100%!important;}.mh-100{max-height:100%!important;}
.min-vh-100{min-height:100vh!important;}.vh-100{height:100vh!important;}.vw-100{width:100vw!important;}
/* ---------- Text ---------- */
.text-left{text-align:left!important;}.text-right{text-align:right!important;}.text-center{text-align:center!important;}
.text-nowrap{white-space:nowrap!important;}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.text-break{word-break:break-word!important;overflow-wrap:break-word!important;}
.text-lowercase{text-transform:lowercase!important;}.text-uppercase{text-transform:uppercase!important;}.text-capitalize{text-transform:capitalize!important;}
.font-weight-normal{font-weight:400!important;}.font-weight-bold{font-weight:600!important;}.font-weight-bolder{font-weight:700!important;}
.font-italic{font-style:italic!important;}
.text-pre-wrap{white-space:pre-wrap!important;}
.text-decoration-none{text-decoration:none!important;}
.text-sm{font-size:.85rem!important;}.text-xs{font-size:.7rem!important;}
.text-primary{color:var(--primary)!important;}
.text-secondary{color:var(--ok-text-muted)!important;}
.text-success{color:#1c7a4a!important;}
.text-danger{color:#d63939!important;}
.text-warning{color:#d99000!important;}
.text-info{color:#1098ad!important;}
.text-light{color:#f8f9fc!important;}
.text-dark{color:#1f2933!important;}
.text-muted{color:var(--ok-text-muted)!important;}
.text-white{color:#fff!important;}
.text-body{color:var(--ok-text)!important;}
a.text-primary:hover{color:var(--primary-dark)!important;}
.text-white-50{color:rgba(255,255,255,.5)!important;}
.text-primary-light{color:var(--primary-light)!important;}
.text-error{color:#d63939!important;}
.text-gray-100{color:#f8f9fc!important;}
.text-gray-200{color:#eaecf4!important;}
.text-gray-300{color:#dddfeb!important;}
.text-gray-400{color:#d1d3e2!important;}
.text-gray-500{color:#b7b9cc!important;}
.text-gray-600{color:#858796!important;}
.text-gray-700{color:#6e707e!important;}
.text-gray-800{color:#5a5c69!important;}
.text-gray-900{color:#3a3b45!important;}
/* ---------- Backgrounds ---------- */
.bg-transparent{background-color:transparent!important;}
.bg-white{background-color:#fff!important;}
.bg-secondary{background-color:var(--ok-text-muted)!important;}
.bg-gray-200{background-color:#eaecf4!important;}.bg-gray-500{background-color:#b7b9cc!important;}
.bg-gradient-primary{background-color:var(--primary);background-image:linear-gradient(180deg,var(--primary) 10%,var(--primary-dark) 100%);background-size:cover;}
.bg-gradient-white{background-color:#fff;background-image:linear-gradient(180deg,#fff 10%,#f1f3f7 100%);background-size:cover;}
/* ---------- Borders ---------- */
.border{border:1px solid var(--ok-border)!important;}.border-0{border:0!important;}
.border-top{border-top:1px solid var(--ok-border)!important;}.border-bottom{border-bottom:1px solid var(--ok-border)!important;}
.border-400{border-color:#d1d3e2!important;}
.border-left-primary{border-left:.25rem solid var(--primary)!important;}
.rounded{border-radius:var(--ok-radius-sm)!important;}.rounded-circle{border-radius:50%!important;}.rounded-pill{border-radius:var(--ok-radius-pill)!important;}.rounded-0{border-radius:0!important;}
/* ---------- Misc utilities ---------- */
.float-left{float:left!important;}.float-right{float:right!important;}.pull-right{float:right!important;}.float-none{float:none!important;}
.position-relative{position:relative!important;}.position-absolute{position:absolute!important;}.position-static{position:static!important;}.position-fixed{position:fixed!important;}
.shadow-sm{box-shadow:var(--ok-shadow-sm)!important;}.shadow{box-shadow:var(--ok-shadow)!important;}.shadow-lg{box-shadow:var(--ok-shadow-lg)!important;}.shadow-none{box-shadow:none!important;}
.overflow-hidden,.o-hidden{overflow:hidden!important;}.overflow-auto{overflow:auto!important;}
.invisible{visibility:hidden!important;}.visible{visibility:visible!important;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.align-middle{vertical-align:middle!important;}.align-top{vertical-align:top!important;}.align-text-top{vertical-align:text-top!important;}.align-bottom{vertical-align:bottom!important;}
@keyframes growIn{0%{transform:scale(.9);opacity:0;}100%{transform:scale(1);opacity:1;}}
@keyframes fadeIn{0%{opacity:0;}100%{opacity:1;}}
.animated--grow-in{animation:growIn .2s cubic-bezier(.18,1.25,.4,1);}
.animated--fade-in{animation:fadeIn .15s ease-in-out;animation-fill-mode:both;}

/* ============================================================
   COMPONENTS
   ============================================================ */

/* ---------- Shell structure (cosmetics live in shell.css) ---------- */
#wrapper{display:flex;}
#wrapper #content-wrapper{background-color:var(--ok-bg);width:100%;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column;}
#wrapper #content-wrapper #content{flex:1 0 auto;}
.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none;}
.sidebar{width:6.5rem;min-height:100vh;display:flex;flex-direction:column;flex-shrink:0;}
.sidebar .nav-item{position:relative;}
.sidebar .nav-item:last-child{margin-bottom:1rem;}
.sidebar .nav-item .nav-link{display:block;text-decoration:none;}
.sidebar .nav-item .nav-link span{display:block;}
.sidebar .sidebar-brand{display:flex;align-items:center;justify-content:center;height:var(--ok-topbar-h);text-decoration:none;font-weight:700;z-index:1;}
.sidebar #sidebarToggle{cursor:pointer;border:0;}
.sidebar #sidebarToggle::after{font-weight:900;content:'\f104';font-family:'Font Awesome 5 Free';}
.sidebar.toggled #sidebarToggle::after{content:'\f105';}
.sidebar.toggled .nav-item .nav-link span{font-size:.65rem;}

/* ---------- Navbar / topbar ---------- */
.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem;}
.navbar-expand{flex-flow:row nowrap;justify-content:flex-start;}
.navbar .navbar-nav{flex-direction:row;}
.topbar{height:var(--ok-topbar-h);}
.topbar .nav-item .nav-link{display:flex;align-items:center;height:var(--ok-topbar-h);padding:0 .75rem;position:relative;}
.topbar .topbar-divider{width:0;border-right:1px solid var(--ok-border);height:calc(var(--ok-topbar-h) - 1.25rem);margin:auto 1rem;}
.topbar .navbar-search{width:25rem;max-width:100%;}
.topbar .navbar-search input{font-size:.85rem;}
.topbar .dropdown{position:static;}
.topbar .dropdown .dropdown-menu{width:calc(100% - 1.5rem);right:.75rem;}
@media(min-width:576px){.topbar .dropdown{position:relative;}.topbar .dropdown .dropdown-menu{width:auto;right:0;left:auto;}.topbar .dropdown-list{width:20rem!important;}}
.navbar-search .input-group{display:flex;flex-wrap:nowrap;}

/* ---------- Buttons ---------- */
.btn{display:inline-block;font-weight:500;color:var(--ok-text);text-align:center;vertical-align:middle;cursor:pointer;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .9rem;font-size:.9rem;line-height:1.5;border-radius:var(--ok-radius-sm);transition:color var(--ok-speed) var(--ok-ease),background-color var(--ok-speed) var(--ok-ease),border-color var(--ok-speed) var(--ok-ease),box-shadow var(--ok-speed) var(--ok-ease);text-decoration:none;}
.btn:hover{text-decoration:none;}
.btn:focus,.btn.focus{outline:0;box-shadow:0 0 0 .2rem var(--primary-with-alpha);}
.btn.disabled,.btn:disabled{opacity:.55;cursor:default;pointer-events:none;}
.btn-sm{padding:.25rem .6rem;font-size:.78rem;line-height:1.5;border-radius:var(--ok-radius-sm);}
.btn-block{display:block;width:100%;}
.btn-block+.btn-block{margin-top:.5rem;}
.btn-group{position:relative;display:inline-flex;vertical-align:middle;}
.btn-group>.btn{position:relative;flex:1 1 auto;}
.btn-group>.btn:not(:first-child){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0;}
.btn-group>.btn:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;}
.btn-group-sm>.btn{padding:.25rem .6rem;font-size:.78rem;}
.btn-primary{color:#fff;background-color:var(--primary);border-color:var(--primary);}
.btn-primary:hover{color:#fff;background-color:var(--primary-dark);border-color:var(--primary-dark);}
.btn-primary:focus{box-shadow:0 0 0 .2rem var(--primary-with-alpha);}
.btn-primary.disabled,.btn-primary:disabled{background-color:var(--primary-light);border-color:var(--primary-light);}
.btn-secondary{color:#fff;background-color:#858796;border-color:#858796;}
.btn-secondary:hover{background-color:#717384;border-color:#6b6d7d;}
.btn-danger{color:#fff;background-color:#e0383e;border-color:#e0383e;}
.btn-danger:hover{background-color:#c72d33;border-color:#bb2a30;}
.btn-success{color:#fff;background-color:#1c9b5e;border-color:#1c9b5e;}
.btn-success:hover{background-color:#178050;border-color:#15784a;}
.btn-info{color:#fff;background-color:#16a0b2;border-color:#16a0b2;}
.btn-info:hover{background-color:#128495;border-color:#117b8b;}
.btn-light{color:#1f2933;background-color:#f8f9fc;border-color:#f8f9fc;}
.btn-light:hover{background-color:#e2e6f3;border-color:#dadfef;}
.btn-link{font-weight:400;color:var(--primary);background-color:transparent;border:0;}
.btn-link:hover{color:var(--primary-dark);text-decoration:underline;}
.btn-outline-secondary{color:#858796;border-color:#d1d6e0;background-color:#fff;}
.btn-outline-secondary:hover{color:#1f2933;background-color:#f8f9fc;}
/* App custom button skins */
.btn-white{color:var(--ok-text);background-color:#fff;border-color:var(--ok-border-strong);}
.btn-white:hover{background-color:var(--ok-surface-2);border-color:var(--ok-border-strong);}
.btn-white.active,.btn-white:active{color:#fff;background-color:var(--primary);border-color:var(--primary);}
.btn-simple{background:transparent;border:0;color:var(--ok-text-muted);}
.btn-simple:hover{color:var(--primary);}
/* Icon-split (SB-Admin) */
.btn-icon-split{padding:0;overflow:hidden;display:inline-flex;align-items:stretch;}
.btn-icon-split .icon{background:rgba(0,0,0,.12);display:flex;align-items:center;padding:.375rem .65rem;}
.btn-icon-split .text{display:flex;align-items:center;padding:.375rem .75rem;}
.btn-icon-split.btn-sm .icon{padding:.25rem .5rem;}
.btn-icon-split.btn-sm .text{padding:.25rem .6rem;}
/* Social buttons (bootstrap-social subset) */
.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,.2);}
.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,.2);}
.btn-user{font-size:.85rem;border-radius:var(--ok-radius-pill);padding:.55rem 1rem;}

/* ---------- Forms ---------- */
.form-group{margin-bottom:1rem;}
.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:.9rem;font-weight:400;line-height:1.5;color:var(--ok-text);background-color:#fff;background-clip:padding-box;border:1px solid var(--ok-border-strong);border-radius:var(--ok-radius-sm);transition:border-color var(--ok-speed) var(--ok-ease),box-shadow var(--ok-speed) var(--ok-ease);}
.form-control:focus{color:var(--ok-text);background-color:#fff;border-color:var(--primary-light);outline:0;box-shadow:0 0 0 .2rem var(--primary-with-alpha);}
.form-control::placeholder{color:#c0c7c7;opacity:1;}
.form-control:disabled,.form-control[readonly]{background-color:#eaecf4;opacity:1;}
.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.78rem;border-radius:var(--ok-radius-sm);}
textarea.form-control{height:auto;}
select.form-control[multiple],select.form-control[size]{height:auto;}
.form-control-user{border-radius:var(--ok-radius-pill);padding:1.2rem 1rem;font-size:.85rem;}
.form-label,.form-text{display:inline-block;}
.form-inline{display:flex;flex-flow:row wrap;align-items:center;}
.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle;}
.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5;}

/* ---------- Input groups ---------- */
.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%;}
.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0;}
.input-group-append,.input-group-prepend{display:flex;}
.input-group-append{margin-left:-1px;}
.input-group-prepend{margin-right:-1px;}
.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:.9rem;font-weight:400;line-height:1.5;color:var(--ok-text-muted);text-align:center;white-space:nowrap;background-color:#eef0f5;border:1px solid var(--ok-border-strong);border-radius:var(--ok-radius-sm);}
.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0;}
.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0;}
.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;}
.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0;}

/* ---------- Custom controls / switch ---------- */
.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem;}
.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0;}
.custom-control-label{position:relative;margin-bottom:0;vertical-align:top;cursor:pointer;}
.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background-color:#fff;border:1px solid var(--ok-border-strong);}
.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat;}
.custom-checkbox .custom-control-label::before{border-radius:.25rem;}
.custom-control-input:checked~.custom-control-label::before{border-color:var(--primary);background-color:var(--primary);}
.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");}
.custom-switch{padding-left:2.75rem;}
.custom-switch .custom-control-label::before{left:-2.75rem;width:2rem;border-radius:.6rem;}
.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.75rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:var(--ok-border-strong);border-radius:.6rem;transition:transform var(--ok-speed) var(--ok-ease),background-color var(--ok-speed) var(--ok-ease);}
.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;transform:translateX(1rem);}

/* ---------- Cards ---------- */
.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:var(--ok-surface);background-clip:border-box;border:0;border-radius:var(--ok-radius);box-shadow:var(--ok-shadow-sm);}
.card>hr{margin-right:0;margin-left:0;}
.card-body{flex:1 1 auto;min-height:1px;padding:1.25rem;}
.card-header{padding:.85rem 1.25rem;margin-bottom:0;background-color:#fff;border-bottom:1px solid #eef0f5;border-top-left-radius:var(--ok-radius);border-top-right-radius:var(--ok-radius);}
.card-header:first-child{border-radius:var(--ok-radius) var(--ok-radius) 0 0;}
.card-footer{padding:.85rem 1.25rem;background-color:#fff;border-top:1px solid #eef0f5;}
.card-title{margin-bottom:.75rem;}
.card-subtitle{margin-top:-.375rem;margin-bottom:0;color:var(--ok-text-muted);}
.card-text:last-child{margin-bottom:0;}
.card-header-buttons{margin-left:auto;display:flex;align-items:center;gap:.35rem;}

/* ---------- Tables ---------- */
.table{width:100%;margin-bottom:1rem;color:var(--ok-text);border-collapse:collapse;font-size:var(--ok-text-sm);}
.table th,.table td{padding:.4rem .6rem;vertical-align:middle;border-top:1px solid var(--ok-border);line-height:1.35;}
.table thead th{padding-top:.45rem;padding-bottom:.45rem;vertical-align:middle;border-top:0;border-bottom:1px solid var(--ok-border);text-align:left;font-weight:600;color:var(--ok-text-muted);text-transform:uppercase;font-size:var(--ok-text-xs);letter-spacing:.03em;white-space:nowrap;}
.table-sm th,.table-sm td{padding:.25rem .4rem;}
.table tbody+tbody{border-top:2px solid var(--ok-border);}
.table-hover tbody tr:hover{background-color:var(--ok-surface-2);}
.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.table-no-ellipsis td{white-space:normal;}

/* ---------- Nav / tabs ---------- */
.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none;}
.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;}
.nav-link:hover{text-decoration:none;}
.nav-tabs{border-bottom:1px solid var(--ok-border);}
.nav-tabs .nav-item{margin-bottom:-1px;}
.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:var(--ok-radius-sm);border-top-right-radius:var(--ok-radius-sm);color:var(--ok-text-muted);}
.nav-tabs .nav-link:hover{border-color:#eef0f5 #eef0f5 var(--ok-border);}
.nav-tabs .nav-link.active{color:var(--primary);background-color:#fff;border-color:var(--ok-border) var(--ok-border) #fff;}

/* ---------- Dropdowns ---------- */
.dropdown,.dropup{position:relative;}
.dropdown-toggle{white-space:nowrap;}
.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent;}
.dropdown-toggle.no-arrow::after,.no-arrow .dropdown-toggle::after{display:none;}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.4rem;margin:.125rem 0 0;font-size:.9rem;color:var(--ok-text);text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid var(--ok-border);border-radius:var(--ok-radius);box-shadow:var(--ok-shadow);}
.dropdown-menu.show{display:block;}
.dropdown-menu-right{right:0;left:auto;}
@media(min-width:768px){.dropdown-menu-md-right{right:0;left:auto;}}
.dropdown-item{display:block;width:100%;padding:.5rem .75rem;clear:both;font-weight:400;color:var(--ok-text);text-align:inherit;white-space:normal;background-color:transparent;border:0;border-radius:var(--ok-radius-sm);cursor:pointer;text-decoration:none;}
.dropdown-item:hover,.dropdown-item:focus{color:var(--ok-text);background-color:var(--ok-surface-2);text-decoration:none;}
.dropdown-item.active,.dropdown-item:active{color:var(--ok-text);background-color:#e8f5f7;}
.dropdown-item.disabled,.dropdown-item:disabled{color:var(--ok-text-subtle);pointer-events:none;}
.dropdown-divider{height:0;margin:.4rem .25rem;overflow:hidden;border-top:1px solid var(--ok-border);}
.dropdown-header{display:block;padding:.5rem .75rem;margin-bottom:0;font-size:.78rem;color:var(--ok-text-muted);white-space:nowrap;}
.dropdown-lg{min-width:20rem;}.dropdown-sm{min-width:8rem;}

/* ---------- Modal ---------- */
.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0;}
.modal.show{display:block;}
.modal-open{overflow:hidden;}
.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000;}
.modal-backdrop.fade{opacity:0;}.modal-backdrop.show{opacity:.5;}
.modal-dialog{position:relative;width:auto;margin:1.75rem auto;max-width:500px;pointer-events:none;}
.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translateY(-30px);}
.modal.show .modal-dialog{transform:none;}
.modal-lg{max-width:800px;}
.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:0;border-radius:var(--ok-radius);box-shadow:var(--ok-shadow-lg);outline:0;}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--ok-border);border-top-left-radius:var(--ok-radius);border-top-right-radius:var(--ok-radius);}
.modal-title{margin-bottom:0;line-height:1.5;font-size:1.1rem;font-weight:600;}
.modal-body{position:relative;flex:1 1 auto;padding:1.25rem;}
.modal-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:.75rem 1.25rem;gap:.5rem;border-top:1px solid var(--ok-border);}
.fade{transition:opacity .15s linear;}
.fade:not(.show){opacity:0;}

/* ---------- Alerts ---------- */
.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:var(--ok-radius-sm);}
.alert-dismissible{padding-right:3rem;}
.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit;}
.alert-danger{color:#842029;background-color:#fbe3e4;border-color:#f7c9cc;}
.alert-success{color:#0f5132;background-color:#e3f3ea;border-color:#cbe8d7;}
.alert-warning{color:#7a5b00;background-color:#fef3d6;border-color:#fce7ad;}
.alert-info{color:#055160;background-color:#dcf2f6;border-color:#c2e9ef;}

/* ---------- Badges ---------- */
.badge{display:inline-block;padding:.3em .55em;font-size:75%;font-weight:600;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--ok-radius-sm);}
.badge-counter{position:absolute;transform:scale(.8);transform-origin:top right;right:.15rem;margin-top:-.4rem;border-radius:var(--ok-radius-pill);}
.badge-danger{color:#fff;background-color:#e0383e;}
.badge-light{color:#3a3b45;background-color:#eaecf4;}
.badge-primary{color:#fff;background-color:var(--primary);}

/* ---------- List group ---------- */
.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--ok-radius);}
.list-group-item{position:relative;display:block;padding:.6rem 1rem;background-color:#fff;border:1px solid var(--ok-border);}
.list-group-item+.list-group-item{border-top-width:0;}
.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit;}
.list-group-item:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;}
.list-group-flush{border-radius:0;}
.list-group-flush>.list-group-item{border-width:0 0 1px;}
.list-group-flush>.list-group-item:last-child{border-bottom-width:0;}

/* ---------- Media object ---------- */
.media{display:flex;align-items:flex-start;}
.media-body{flex:1;}

/* ---------- Pagination ---------- */
.pagination{display:flex;padding-left:0;list-style:none;border-radius:var(--ok-radius-sm);}
.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:var(--primary);background-color:#fff;border:1px solid var(--ok-border);text-decoration:none;}
.page-link:hover{z-index:2;color:var(--primary-dark);background-color:#eef0f5;border-color:var(--ok-border);}
.page-item:first-child .page-link{margin-left:0;border-top-left-radius:var(--ok-radius-sm);border-bottom-left-radius:var(--ok-radius-sm);}
.page-item:last-child .page-link{border-top-right-radius:var(--ok-radius-sm);border-bottom-right-radius:var(--ok-radius-sm);}
.page-item.active .page-link{z-index:3;color:#fff;background-color:var(--primary);border-color:var(--primary);}
.page-item.disabled .page-link{color:var(--ok-text-subtle);pointer-events:none;background-color:#fff;border-color:var(--ok-border);}

/* ---------- Close button ---------- */
.close{float:right;font-size:1.4rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5;background:transparent;border:0;padding:0;cursor:pointer;}
.close:hover{color:#000;opacity:.75;}

/* ---------- Spinner ---------- */
@keyframes spinner-border{to{transform:rotate(360deg);}}
.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:spinner-border .75s linear infinite;}
.spinner-border-sm{width:1rem;height:1rem;border-width:.2em;}

/* ---------- Jumbotron ---------- */
.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#eef0f5;border-radius:var(--ok-radius-lg);}

/* ---------- Collapse (toggled by bootstrap.js / ok-behaviors.js) ---------- */
.collapse:not(.show){display:none;}
.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease;}

/* ---------- Tooltip (styled by ok-behaviors.js in Phase 3) ---------- */
.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-size:.78rem;opacity:0;}
.tooltip.show{opacity:.95;}
.tooltip .tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#1f2933;border-radius:var(--ok-radius-sm);}

