/*
 * bootstrap-micro.css
 * Subset of Bootstrap 5.3 utilities used by EasyCloud.
 * Covers: reset, grid (12-col), flexbox helpers, display,
 * spacing (m/p 0-5), text-align, visibility, navbar toggle.
 * ~18 KB unminified — 100% offline, no CDN needed.
 */

/* ── Reset ─────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}
body{margin:0;font-family:system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}
img,svg{vertical-align:middle;max-width:100%}
button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;line-height:1.2}
p{margin-top:0;margin-bottom:1rem}
ul,ol{padding-left:2rem}
hr{margin:1rem 0;border:0;border-top:1px solid rgba(0,0,0,.15)}

/* ── Container ─────────────────────────────────────── */
.container{width:100%;padding-right:16px;padding-left:16px;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}}
@media(min-width:1400px){.container{max-width:1320px}}
.container-fluid{width:100%;padding-right:16px;padding-left:16px;margin-right:auto;margin-left:auto}

/* ── Row / Col ─────────────────────────────────────── */
.row{display:flex;flex-wrap:wrap;margin-right:-12px;margin-left:-12px}
.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:12px;padding-left:12px}

/* gap utilities on row */
.g-0{--bs-gutter:0}.g-1{--bs-gutter:.25rem}.g-2{--bs-gutter:.5rem}
.g-3{--bs-gutter:1rem}.g-4{--bs-gutter:1.5rem}.g-5{--bs-gutter:3rem}
.g-0,.g-1,.g-2,.g-3,.g-4,.g-5{margin-right:calc(var(--bs-gutter)*-.5);margin-left:calc(var(--bs-gutter)*-.5)}
.g-0>*,.g-1>*,.g-2>*,.g-3>*,.g-4>*,.g-5>*{padding-right:calc(var(--bs-gutter)*.5);padding-left:calc(var(--bs-gutter)*.5)}

/* col auto */
.col{flex:1 0 0%;min-width:0}
.col-auto{flex:0 0 auto;width:auto}

/* col-{1..12} */
.col-1{flex:0 0 auto;width:8.3333%}.col-2{flex:0 0 auto;width:16.6667%}
.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.3333%}
.col-5{flex:0 0 auto;width:41.6667%}.col-6{flex:0 0 auto;width:50%}
.col-7{flex:0 0 auto;width:58.3333%}.col-8{flex:0 0 auto;width:66.6667%}
.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.3333%}
.col-11{flex:0 0 auto;width:91.6667%}.col-12{flex:0 0 auto;width:100%}

/* col-md-{1..12} */
@media(min-width:768px){
  .col-md-1{flex:0 0 auto;width:8.3333%}.col-md-2{flex:0 0 auto;width:16.6667%}
  .col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.3333%}
  .col-md-5{flex:0 0 auto;width:41.6667%}.col-md-6{flex:0 0 auto;width:50%}
  .col-md-7{flex:0 0 auto;width:58.3333%}.col-md-8{flex:0 0 auto;width:66.6667%}
  .col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.3333%}
  .col-md-11{flex:0 0 auto;width:91.6667%}.col-md-12{flex:0 0 auto;width:100%}
  .g-md-4{--bs-gutter:1.5rem;margin-right:calc(var(--bs-gutter)*-.5);margin-left:calc(var(--bs-gutter)*-.5)}
  .g-md-4>*{padding-right:calc(var(--bs-gutter)*.5);padding-left:calc(var(--bs-gutter)*.5)}
}

/* col-lg-{1..12} */
@media(min-width:992px){
  .col-lg-1{flex:0 0 auto;width:8.3333%}.col-lg-2{flex:0 0 auto;width:16.6667%}
  .col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.3333%}
  .col-lg-5{flex:0 0 auto;width:41.6667%}.col-lg-6{flex:0 0 auto;width:50%}
  .col-lg-7{flex:0 0 auto;width:58.3333%}.col-lg-8{flex:0 0 auto;width:66.6667%}
  .col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.3333%}
  .col-lg-11{flex:0 0 auto;width:91.6667%}.col-lg-12{flex:0 0 auto;width:100%}
}

/* ── Display ───────────────────────────────────────── */
.d-none{display:none!important}.d-block{display:block!important}
.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}
.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}
@media(min-width:992px){
  .d-lg-none{display:none!important}.d-lg-block{display:block!important}
  .d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}
}

/* ── Flexbox helpers ───────────────────────────────── */
.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}
.flex-column{flex-direction:column!important}.flex-row{flex-direction:row!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-center{align-items:center!important}
.align-items-end{align-items:flex-end!important}
.align-self-center{align-self:center!important}
.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}
.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}
@media(min-width:992px){
  .gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}
  .gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}
  .flex-lg-row{flex-direction:row!important}
}

/* ── Spacing m/p 0–5 ──────────────────────────────── */
.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}
.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}
.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}
.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}
.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}
.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}
.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}
.mx-auto{margin-left:auto!important;margin-right:auto!important}
.ms-auto{margin-left:auto!important}.me-auto{margin-right:auto!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}
.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}
.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}
.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}
.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}
.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}
.px-0{padding-left:0!important;padding-right:0!important}
.py-0{padding-top:0!important;padding-bottom:0!important}

/* ── Text helpers ──────────────────────────────────── */
.text-center{text-align:center!important}.text-start{text-align:left!important}
.text-end{text-align:right!important}
.text-uppercase{text-transform:uppercase!important}
.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}
.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}
.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}
.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}
.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}
.small{font-size:.875em!important}

/* ── Width / height ────────────────────────────────── */
.w-100{width:100%!important}.h-100{height:100%!important}
.min-vh-100{min-height:100vh!important}
.overflow-hidden{overflow:hidden!important}

/* ── Position ──────────────────────────────────────── */
.position-relative{position:relative!important}
.position-absolute{position:absolute!important}
.position-fixed{position:fixed!important}
.top-0{top:0!important}.bottom-0{bottom:0!important}
.start-0{left:0!important}.end-0{right:0!important}

/* ── Border radius ─────────────────────────────────── */
.rounded{border-radius:.375rem!important}
.rounded-pill{border-radius:50rem!important}
.rounded-0{border-radius:0!important}

/* ── Misc ──────────────────────────────────────────── */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}
.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}
.border-0{border:0!important}
.btn{display:inline-block;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;user-select:none;border:1px solid transparent;border-radius:.375rem;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-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.25rem}
.btn-lg{padding:.5rem 1rem;font-size:1.125rem;border-radius:.5rem}

/* ── Navbar ────────────────────────────────────────── */
.navbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:.5rem 1rem;position:relative}
.navbar-brand{display:inline-flex;align-items:center;padding:.3125rem 0;margin-right:1rem;text-decoration:none;white-space:nowrap}
.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}
@media(min-width:992px){
  .navbar-expand-lg .navbar-nav{flex-direction:row}
  .navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}
  .navbar-expand-lg .navbar-toggler{display:none}
}
.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background:transparent;border:1px solid transparent;border-radius:.375rem}
.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}
.collapse:not(.show){display:none}
@media(min-width:992px){.collapse{display:block!important}}
.nav-item{list-style:none}
.nav-link{display:block;padding:.5rem 1rem;text-decoration:none;transition:color .15s ease-in-out}

/* ── Responsive text ───────────────────────────────── */
@media(max-width:575.98px){
  .text-sm-center{text-align:center!important}
  .d-sm-block{display:block!important}
}
@media(min-width:768px){
  .mt-md-0{margin-top:0!important}
  .flex-md-row{flex-direction:row!important}
  .justify-content-md-start{justify-content:flex-start!important}
  .text-md-start{text-align:left!important}
  .col-md-auto{flex:0 0 auto;width:auto}
  .ms-md-auto{margin-left:auto!important}
}
@media(min-width:992px){
  .mt-lg-0{margin-top:0!important}
  .ms-lg-3{margin-left:1rem!important}
  .mt-lg-2{margin-top:.5rem!important}
  .mt-2{margin-top:.5rem}
}
