.b-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.b-modal__backdrop{position:absolute;inset:0;background:var(--modal-overlay-bg)}.b-modal__dialog{position:relative;width:100%;max-width:var(--modal-width-md);max-height:var(--modal-max-height);margin:var(--space-4);background:var(--white);border-radius:var(--modal-radius);box-shadow:var(--modal-shadow);overflow:auto}.b-modal__dialog--narrow{max-width:var(--width-dialog-narrow)}.b-modal__dialog--wide{max-width:var(--modal-width-lg)}.b-modal__dialog--xl{max-width:var(--modal-width-xl)}.b-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:var(--border-subtle)}.b-modal__header-actions{display:flex;align-items:center;gap:var(--space-2)}.b-modal__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-semibold);color:var(--gray-800);margin:0}.b-modal__subtitle{display:block;font-family:var(--font-body);font-size:var(--text-sm);color:var(--gray-500);margin-top:var(--space-1)}.b-modal__subtitle--link{color:var(--primary-500);font-weight:var(--weight-medium);font-style:italic;background:none;border:none;padding:0;cursor:pointer;text-align:left}.b-modal__subtitle--link:hover{color:var(--primary-600)}.b-modal__close{display:flex;align-items:center;justify-content:center;width:var(--icon-xl);height:var(--icon-xl);padding:0;border:none;background:transparent;color:var(--gray-500);font-size:var(--text-2xl);cursor:pointer;border-radius:var(--radius-md)}.b-modal__close:hover{background:var(--gray-75);color:var(--gray-800)}.b-modal__body{padding:var(--space-5) var(--space-6)}.b-modal__footer{display:flex;justify-content:flex-end;gap:var(--gap-inline);padding:var(--space-4) var(--space-6);border-top:var(--border-subtle)}.b-modal__handle{display:none}@media(max-width:767px){.b-modal{align-items:flex-end}.b-modal__dialog{max-width:100%;max-height:100vh;margin:0;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:b-modal-slide-up var(--transition-normal) ease-out}.b-modal__dialog--fullscreen{height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column;overflow:hidden}.b-modal__dialog--fullscreen .b-modal__header{position:sticky;top:0;z-index:var(--z-raised);background:var(--white);flex-shrink:0;padding:var(--space-3) var(--space-4);gap:var(--space-2)}.b-modal__dialog--fullscreen .b-modal__header-actions{gap:var(--space-1);flex-shrink:0}.b-modal__dialog--fullscreen .b-modal__close{width:var(--space-8);height:var(--space-8)}.b-modal__dialog--fullscreen .b-modal__body{flex:1;overflow-y:auto}.b-modal__handle{display:block;width:var(--space-8);height:var(--space-1);background:var(--gray-300);border-radius:var(--radius-full);margin:var(--space-2) auto 0}.b-modal__body{padding:var(--space-4);padding-bottom:calc(var(--space-4) + var(--mobile-safe-bottom))}.b-modal__footer{padding-bottom:calc(var(--space-4) + var(--mobile-safe-bottom))}}@keyframes b-modal-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.b-modal__dialog{animation:none}}
