/* Blood Manager consent interface — brand-aligned, accessible and responsive. */
.bm-consent-lock{overflow:hidden!important}
.bm-consent-banner,.bm-consent-modal,.bm-external-placeholder,.bm-consent-footer-links{font-family:'EB Garamond',Georgia,serif}
.bm-consent-banner{position:fixed;z-index:99990;left:50%;bottom:18px;transform:translateX(-50%);width:min(1040px,calc(100% - 32px));display:grid;grid-template-columns:1fr auto;gap:26px;align-items:center;padding:21px 23px;background:#FBF8F3;color:#2A171B;border:1px solid rgba(202,159,81,.72);border-radius:18px;box-shadow:0 24px 70px rgba(39,10,17,.28);transition:opacity .2s ease,transform .2s ease}
.bm-consent-banner.bm-consent-hidden{opacity:0;transform:translate(-50%,14px);pointer-events:none}
.bm-consent-copy h2{margin:0 0 5px;color:#6F0B22;font-size:1.52rem;line-height:1.1;font-weight:600;letter-spacing:.01em}
.bm-consent-copy p{margin:0;max-width:650px;color:#594A4D;font-size:1rem;line-height:1.46}
.bm-consent-copy a,.bm-consent-policy-link{color:#6F0B22;text-decoration:underline;text-decoration-color:#CA9F51;text-underline-offset:3px}
.bm-consent-actions{display:flex;gap:9px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.bm-consent-btn{appearance:none;border:1px solid transparent;border-radius:999px;padding:10px 17px;min-height:42px;font:600 1rem/1 'EB Garamond',Georgia,serif;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;color:#6F0B22;background:#fff}
.bm-consent-btn:hover{transform:translateY(-1px)}
.bm-consent-btn:focus-visible,.bm-consent-close:focus-visible,.bm-consent-footer-links a:focus-visible,.bm-consent-footer-links button:focus-visible,.bm-consent-switch:focus-visible{outline:3px solid #E0C58A;outline-offset:3px}
.bm-consent-btn-primary{background:#CA9F51;color:#3D0913;border-color:#CA9F51;box-shadow:0 7px 18px rgba(111,11,34,.12)}
.bm-consent-btn-primary:hover{background:#D9B66E}
.bm-consent-btn-secondary{background:#6F0B22;color:#fff;border-color:#6F0B22}
.bm-consent-btn-secondary:hover{background:#5C101A}
.bm-consent-btn-outline{background:transparent;color:#6F0B22;border-color:rgba(111,11,34,.42)}
.bm-consent-btn-outline:hover{border-color:#6F0B22;background:rgba(111,11,34,.035)}
.bm-consent-backdrop{position:fixed;z-index:99999;inset:0;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(24,8,12,.58);backdrop-filter:blur(5px)}
.bm-consent-modal{width:min(700px,100%);max-height:min(760px,calc(100vh - 44px));overflow:auto;background:#FBF8F3;color:#2A171B;border:1px solid rgba(202,159,81,.75);border-radius:20px;box-shadow:0 32px 90px rgba(23,5,10,.42)}
.bm-consent-modal-header{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;padding:25px 26px 19px;border-bottom:1px solid #E5D8C6}
.bm-consent-modal-header h2{margin:0 0 5px;color:#6F0B22;font-size:1.8rem;line-height:1.1;font-weight:600}
.bm-consent-modal-header p{margin:0;color:#65585A;font-size:1rem;line-height:1.45}
.bm-consent-close{appearance:none;width:38px;height:38px;flex:0 0 38px;border:1px solid rgba(111,11,34,.2);border-radius:50%;background:#fff;color:#6F0B22;font:400 1.75rem/1 Georgia,serif;cursor:pointer}
.bm-consent-modal-body{padding:6px 26px}
.bm-consent-setting{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid #E5D8C6}
.bm-consent-setting:last-child{border-bottom:0}
.bm-consent-setting-copy label{display:block;color:#6F0B22;font-size:1.2rem;font-weight:600;line-height:1.15;margin-bottom:5px}
.bm-consent-setting-copy p{margin:0;color:#65585A;font-size:.95rem;line-height:1.44}
.bm-consent-switch-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:76px}
.bm-consent-switch{appearance:none;width:48px;height:26px;border-radius:999px;background:#B7ADA8;position:relative;cursor:pointer;transition:background .18s ease;border:1px solid rgba(0,0,0,.08)}
.bm-consent-switch::after{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:2px;left:2px;box-shadow:0 1px 4px rgba(0,0,0,.24);transition:transform .18s ease}
.bm-consent-switch:checked{background:#6F0B22}
.bm-consent-switch:checked::after{transform:translateX(22px)}
.bm-consent-switch:disabled{cursor:not-allowed;opacity:.72;background:#CA9F51}
.bm-consent-always{font-size:.72rem;color:#6F0B22;white-space:nowrap}
.bm-consent-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 26px 24px;border-top:1px solid #E5D8C6}
.bm-consent-policy-link{font-size:.94rem}
.bm-consent-footer-links{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;margin:13px auto 8px;color:rgba(255,255,255,.78);font-size:.9rem;line-height:1.3}
.bm-consent-footer-links a,.bm-consent-footer-links button{font:inherit;color:inherit;text-decoration:none;background:none;border:0;padding:2px 3px;cursor:pointer}
.bm-consent-footer-links a:hover,.bm-consent-footer-links button:hover{text-decoration:underline;text-underline-offset:3px;color:#E0C58A}
.bm-external-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;width:100%;min-height:300px;padding:34px 28px;background:linear-gradient(145deg,#FBF8F3,#F3ECE1);border:1px solid #DCCAB2;border-radius:16px;color:#65585A}
.bm-external-placeholder h3{margin:0;color:#6F0B22;font-size:1.45rem;line-height:1.15}
.bm-external-placeholder p{margin:0;max-width:560px;font-size:1rem;line-height:1.45}
@media(max-width:850px){.bm-consent-banner{grid-template-columns:1fr;gap:15px}.bm-consent-actions{justify-content:flex-start}}
@media(max-width:620px){.bm-consent-banner{bottom:10px;width:calc(100% - 20px);padding:18px 16px;border-radius:15px}.bm-consent-copy h2{font-size:1.38rem}.bm-consent-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.bm-consent-actions .bm-consent-btn-primary{grid-column:1/-1;grid-row:1}.bm-consent-btn{width:100%;padding:11px 12px}.bm-consent-backdrop{padding:10px}.bm-consent-modal{max-height:calc(100vh - 20px);border-radius:16px}.bm-consent-modal-header{padding:20px 17px 16px}.bm-consent-modal-body{padding:3px 17px}.bm-consent-setting{gap:12px;padding:17px 0}.bm-consent-modal-footer{padding:16px 17px 20px;flex-direction:column;align-items:stretch}.bm-consent-policy-link{text-align:center}.bm-external-placeholder{min-height:240px;padding:26px 18px}}
@media(prefers-reduced-motion:reduce){.bm-consent-banner,.bm-consent-btn,.bm-consent-switch,.bm-consent-switch::after{transition:none!important}}
