/* ══════════════════════════════════════════════════════════════════════════
   shim.css — v9.63. What the rebuilt public pages still need from
   Bootstrap, and nothing else.

   The seven rebuilt pages (home, search and its entry points, the
   taxonomy index, the post page, the profile, the blog archive and
   article) no longer load bootstrap.min.css (≈230 KB) or
   bootstrap.bundle.min.js (≈80 KB). Their markup and the components they
   include were inventoried (52 utility classes, 4 dropdowns, 2 modals);
   this is that list, on the design system's tokens, in 6 KB. Every other
   page — the wizards, the dashboard, sign-in, the admin — still loads
   Bootstrap exactly as before.
   ══════════════════════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box}
img,svg{vertical-align:middle}
button,input,select,textarea{font:inherit;margin:0}
button{cursor:pointer}
a{color:var(--brand-ink)}
h1,h2,h3,h4,h5,h6{margin-top:0}
p{margin-top:0}
.container,.container-xl{width:100%;max-width:1240px;margin:0 auto;padding:0 var(--s6)}
@media (max-width:720px){.container,.container-xl{padding:0 var(--s4)}}
.row{display:flex;flex-wrap:wrap;margin:0 -8px}
.row>*{padding:0 8px;flex:0 0 auto;width:100%;min-width:0}
.row.g-2{margin:-4px}.row.g-2>*{padding:4px}
.row.g-3{margin:-8px}.row.g-3>*{padding:8px}
.row.g-4{margin:-12px}.row.g-4>*{padding:12px}
.col-12{width:100%}.col-6{width:50%}
@media (min-width:768px){.col-md-4{width:33.3333%}.col-md-6{width:50%}.d-md-flex{display:flex!important}.d-md-none{display:none!important}.d-md-block{display:block!important}.row.g-md-4{margin:-12px}.row.g-md-4>*{padding:12px}.py-md-5{padding-top:48px!important;padding-bottom:48px!important}}
@media (min-width:992px){.col-lg-2{width:16.6667%}.col-lg-3{width:25%}.col-lg-4{width:33.3333%}.col-lg-8{width:66.6667%}}
.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.d-grid{display:grid!important}.d-inline-block{display:inline-block!important}
@media (min-width:576px){.d-sm-inline{display:inline!important}}
@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-block{display:block!important}.d-lg-flex{display:flex!important}}
@media (max-width:991.98px){.d-lg-block:not(.d-block){display:none!important}}
.flex-wrap{flex-wrap:wrap!important}.flex-column{flex-direction:column!important}.flex-grow-1{flex-grow:1!important}.flex-fill{flex:1 1 auto!important}
.justify-content-between{justify-content:space-between!important}.justify-content-center{justify-content:center!important}
.align-items-center{align-items:center!important}.align-items-start{align-items:flex-start!important}.align-items-baseline{align-items:baseline!important}
.gap-1{gap:4px!important}.gap-2{gap:8px!important}.gap-3{gap:16px!important}
.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:16px!important}.mb-4{margin-bottom:24px!important}
.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:16px!important}.mt-4{margin-top:24px!important}.mt-5{margin-top:48px!important}
.my-1{margin-top:4px!important;margin-bottom:4px!important}.my-3{margin-top:16px!important;margin-bottom:16px!important}
.me-1{margin-right:4px!important}.me-2{margin-right:8px!important}.ms-auto{margin-left:auto!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}
.p-0{padding:0!important}.pt-2{padding-top:8px!important}.pt-3{padding-top:16px!important}.pb-4{padding-bottom:24px!important}
.py-1{padding-top:4px!important;padding-bottom:4px!important}.px-2{padding-left:8px!important;padding-right:8px!important}.pb-2{padding-bottom:8px!important}.pb-3{padding-bottom:16px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.py-3{padding-top:16px!important;padding-bottom:16px!important}.py-4{padding-top:24px!important;padding-bottom:24px!important}.py-5{padding-top:48px!important;padding-bottom:48px!important}
.px-3{padding-left:16px!important;padding-right:16px!important}.px-4{padding-left:24px!important;padding-right:24px!important}
.w-100{width:100%!important}
.text-center{text-align:center!important}.text-end{text-align:right!important}
.text-mute,.text-muted{color:var(--mute)!important}.text-danger{color:var(--no)!important}.text-warning{color:var(--amber)!important}
.small,small{font-size:.875em}
.border-0{border:0!important}.border-top{border-top:1px solid var(--line)!important}
.rounded{border-radius:6px!important}.rounded-2{border-radius:6px!important}
.shadow-lg{box-shadow:var(--sh-2)!important}
.bg-transparent{background:transparent!important}
.visually-hidden,.sr-only,.sr-only-live{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.form-label{display:block;font-size:12.5px;font-weight:600;color:var(--tx-2);margin-bottom:5px}
.form-control,.form-select{display:block;width:100%;height:42px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);padding:0 12px;font-size:14px;color:var(--tx);outline:0}
textarea.form-control{height:auto;padding:10px 12px;min-height:84px}
.form-control:focus,.form-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
.form-control-sm,.form-select-sm{height:36px;font-size:13px}
.form-select{appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%2393A19C' stroke-width='1.6' d='m4 6 4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}
.input-group{display:flex;width:100%}
.input-group>.form-control{flex:1;min-width:0}
.input-group-text{display:flex;align-items:center;padding:0 12px;border:1px solid var(--line-2);border-radius:10px 0 0 10px;background:var(--sub);color:var(--mute);font-size:14px}
.input-group>.input-group-text+.form-control{border-radius:0 10px 10px 0}
.btn-outline-primary,.btn-outline-secondary{background:var(--surface)}
.btn-link{border:0;background:transparent;color:var(--brand-ink);padding:0;height:auto;text-decoration:underline}
.btn-close{width:32px;height:32px;border:0;border-radius:8px;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%230F1A17' stroke-width='1.8' d='M3 3l10 10M13 3 3 13'/%3E%3C/svg%3E") center/14px no-repeat;opacity:.6;cursor:pointer}
.btn-close:hover{opacity:1;background-color:var(--sub)}
.spinner-border{display:inline-block;width:1.4rem;height:1.4rem;border:.2em solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .75s linear infinite}
.spinner-border-sm{width:1rem;height:1rem;border-width:.15em}
@keyframes spin{to{transform:rotate(360deg)}}
.ratio{position:relative;width:100%}.ratio::before{content:"";display:block;padding-top:var(--r-ratio,56.25%)}
.ratio>*{position:absolute;inset:0;width:100%;height:100%}.ratio-16x9{--r-ratio:56.25%}
.alert{padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--sub);margin-bottom:16px}
.alert-danger{background:var(--no-tint);color:var(--no);border-color:transparent}
.alert-success{background:var(--ok-tint);color:var(--ok);border-color:transparent}
.badge{display:inline-block;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:700}
/* dropdowns — the same class contract as Bootstrap, driven by shim.js */
.dropdown{position:relative}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1050;display:none;min-width:200px;margin-top:6px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--sh-2);list-style:none;font-size:14px;color:var(--tx)}
.dropdown-menu.show{display:block}
.dropdown-menu-end{left:auto;right:0}
.dropdown-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;color:var(--tx);text-decoration:none;border-radius:8px;text-align:left;white-space:nowrap}
.dropdown-item:hover{background:var(--sub);color:var(--tx)}
.dropdown-divider{height:1px;margin:6px 0;background:var(--line);border:0}
/* modals — the same class contract as Bootstrap, driven by shim.js */
.modal{position:fixed;inset:0;z-index:1300;display:none;overflow-y:auto;padding:24px 12px}
.modal.show{display:block}
.modal-backdrop{position:fixed;inset:0;z-index:1290;background:rgba(8,18,15,.55)}
.modal-dialog{position:relative;width:auto;max-width:560px;margin:0 auto}
.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100vh - 48px)}
.modal-content{position:relative;width:100%;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh-2)}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line)}
.modal-title{margin:0;font-size:17px;font-weight:600}
.modal-body{padding:20px}
.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line)}
body.modal-open{overflow:hidden}
.fade{transition:opacity .15s}
.nav-link{text-decoration:none}
