/* Bootstrap 5.3 — MoviePicker minimal build (offcanvas, forms, spinner, utils) */

/* ── box-sizing reset ─────────────────────────────────── */
*,::after,::before{box-sizing:border-box}

/* ── Dark theme ────────────────────────────────────────── */
[data-bs-theme=dark]{
  color-scheme:dark;
  --bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  --bs-btn-close-white-filter:invert(1) grayscale(100%) brightness(200%);
}

/* ── Offcanvas ─────────────────────────────────────────── */
.offcanvas{
  --bs-offcanvas-zindex:1045;
  --bs-offcanvas-width:400px;
  --bs-offcanvas-padding-x:1rem;
  --bs-offcanvas-padding-y:1rem;
  --bs-offcanvas-bg:#fff;
  --bs-offcanvas-border-width:1px;
  --bs-offcanvas-border-color:rgba(0,0,0,.175);
  --bs-offcanvas-transition:transform .3s ease-in-out;
  --bs-offcanvas-title-line-height:1.5;
  position:fixed;
  bottom:0;
  z-index:var(--bs-offcanvas-zindex);
  display:flex;
  flex-direction:column;
  max-width:100%;
  visibility:hidden;
  background-color:var(--bs-offcanvas-bg);
  background-clip:padding-box;
  outline:0;
  transition:var(--bs-offcanvas-transition);
}
@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}
.offcanvas.showing,.offcanvas.show:not(.hiding),.offcanvas.hiding{visibility:visible}
.offcanvas-end{
  top:0;right:0;
  width:var(--bs-offcanvas-width);
  border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);
  transform:translateX(100%);
}
.offcanvas-end.showing,.offcanvas-end.show:not(.hiding){transform:none}
.offcanvas-header{
  display:flex;align-items:center;
  padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
}
.offcanvas-header .btn-close{
  margin-top:calc(-.5*var(--bs-offcanvas-padding-y));
  margin-right:calc(-.5*var(--bs-offcanvas-padding-x));
  margin-bottom:calc(-.5*var(--bs-offcanvas-padding-y));
}
.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}
.offcanvas-body{
  flex-grow:1;
  padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);
  overflow-y:auto;
}
.offcanvas-backdrop{
  position:fixed;top:0;left:0;
  z-index:1040;width:100vw;height:100vh;
  background-color:#000;
}
.offcanvas-backdrop.fade{opacity:0}
.offcanvas-backdrop.show{opacity:.5}

/* ── btn-close ─────────────────────────────────────────── */
.btn-close{
  --bs-btn-close-color:#000;
  --bs-btn-close-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
  --bs-btn-close-opacity:.5;
  --bs-btn-close-hover-opacity:.75;
  box-sizing:content-box;width:1em;height:1em;
  padding:.25em;
  color:var(--bs-btn-close-color);
  background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;
  border:0;border-radius:.375rem;
  opacity:var(--bs-btn-close-opacity);
  cursor:pointer;
}
.btn-close:hover{opacity:var(--bs-btn-close-hover-opacity)}
.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}
[data-bs-theme=dark] .btn-close{filter:var(--bs-btn-close-white-filter,invert(1) grayscale(100%) brightness(200%))}

/* ── form-select ─────────────────────────────────────── */
.form-select{
  --bs-form-select-bg-img:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
  display:block;width:100%;
  padding:.375rem 2.25rem .375rem .75rem;
  font-size:1rem;font-weight:400;line-height:1.5;
  color:#212529;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-color:#fff;
  background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon,none);
  background-repeat:no-repeat;
  background-position:right .75rem center;
  background-size:16px 12px;
  border:1px solid #dee2e6;border-radius:.375rem;
  transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}

/* ── form-check / form-switch ────────────────────────── */
.form-check{
  display:block;
  min-height:1.5rem;
  padding-left:1.5em;
  margin-bottom:.125rem;
}
.form-check .form-check-input{float:left;margin-left:-1.5em}
.form-check-input{
  --bs-form-check-bg:#fff;
  flex-shrink:0;width:1em;height:1em;
  margin-top:.25em;
  vertical-align:top;
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  background-color:var(--bs-form-check-bg);
  background-image:var(--bs-form-check-bg-image);
  background-repeat:no-repeat;background-position:center;background-size:contain;
  border:1px solid rgba(0,0,0,.25);
  print-color-adjust:exact;
}
.form-check-input[type=checkbox]{border-radius:.25em}
.form-check-input[type=radio]{border-radius:50%}
.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}
.form-check-input[type=checkbox]:checked{
  --bs-form-check-bg-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e");
}
.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}
.form-switch{padding-left:2.5em}
.form-switch .form-check-input{
  --bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280,0,0,.25%29'/%3e%3c/svg%3e");
  width:2em;margin-left:-2.5em;
  background-image:var(--bs-form-switch-bg);
  background-position:left center;
  border-radius:2em;
  transition:background-position .15s ease-in-out;
}
@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}
.form-switch .form-check-input:focus{
  --bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e");
}
.form-switch .form-check-input:checked{
  background-position:right center;
  --bs-form-switch-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

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

/* ── Utility classes ─────────────────────────────────── */
.d-flex{display:flex!important}
.flex-column{flex-direction:column!important}
.align-items-center{align-items:center!important}
.justify-content-between{justify-content:space-between!important}
.justify-content-center{justify-content:center!important}
.gap-2{gap:.5rem!important}
.gap-4{gap:1.5rem!important}
.ms-3{margin-left:1rem!important}
.mb-1{margin-bottom:.25rem!important}
.fw-semibold{font-weight:600!important}
