/* College of Maasin privacy notice and shortcut — self-hosted, responsive, dismissible. */
.cm-privacy-banner[hidden], .cm-privacy-launcher[hidden], .cm-privacy-dialog[hidden] { display: none !important; }
/* No persistent floating privacy launcher: reopen the dialog from the footer link instead. */
.cm-privacy-launcher { display: none !important; }
.cm-privacy-banner, .cm-privacy-launcher, .cm-privacy-dialog { font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.cm-privacy-banner { position: fixed; z-index: 10000; left: max(12px, env(safe-area-inset-left)); right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); width: min(920px, calc(100vw - 24px)); margin-inline: auto; box-sizing: border-box; padding: 18px 20px 14px; border: 1px solid #c8dbd3; border-radius: 18px; background: rgba(250, 253, 251, .98); color: #173e35; box-shadow: 0 16px 54px rgba(0, 33, 26, .22); }
.cm-privacy-banner * , .cm-privacy-launcher *, .cm-privacy-dialog * { box-sizing: border-box; }
.cm-privacy-banner__head { display: grid; grid-template-columns: 42px minmax(0,1fr) 34px; align-items: start; gap: 12px; }
.cm-privacy-banner__mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #e3f0e9; color: #07594b; }
.cm-privacy-banner__mark svg, .cm-privacy-launcher svg { display: block; width: 22px; height: 22px; }
.cm-privacy-banner h2 { font-size: 17px; line-height: 1.3; margin: 0 0 5px; color: #073e34; font-weight: 750; letter-spacing: -.01em; }
.cm-privacy-banner p { font-size: 13px; line-height: 1.55; margin: 0; color: #425d55; max-width: 74ch; }
.cm-privacy-banner a, .cm-privacy-dialog a, .cm-privacy-site-links a { color: #07594b; text-decoration: underline; text-underline-offset: 3px; }
.cm-privacy-banner__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin: 13px 0 0 54px; }
.cm-privacy-btn { appearance: none; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 14px; border: 1px solid #c4d9d0; border-radius: 10px; color: #15463c; background: #fff; font: inherit; font-size: 13px; font-weight: 650; text-decoration: none !important; cursor: pointer; }
.cm-privacy-btn--primary { background: #07594b; border-color: #07594b; color: #fff; }
.cm-privacy-btn:hover { filter: brightness(.97); }
.cm-privacy-btn:focus-visible, .cm-privacy-launcher button:focus-visible, .cm-privacy-banner__close:focus-visible, .cm-privacy-dialog__close:focus-visible { outline: 3px solid #d4b56b; outline-offset: 3px; }
.cm-privacy-banner__close { width: 34px; height: 34px; padding: 0; border: 1px solid #d6e3dd; background: white; color: #34574e; border-radius: 10px; font-size: 22px; line-height: 1; cursor: pointer; }
.cm-privacy-banner__foot { margin: 11px 0 0 54px; font-size: 11px; line-height: 1.5; color: #61766f; }
/* Wrapper ignores pointer input except on buttons; users may hide the shortcut. */
.cm-privacy-launcher { position: fixed; z-index: 9990; right: max(12px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 5px; pointer-events: none; }
.cm-privacy-launcher__open, .cm-privacy-launcher__hide { pointer-events: auto; border: 1px solid rgba(255,255,255,.55); box-shadow: 0 6px 20px rgba(0, 35, 28, .2); cursor: pointer; }
.cm-privacy-launcher__open { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border-radius: 999px; color: #fff; background: #07594b; font: inherit; font-size: 12px; font-weight: 700; }
.cm-privacy-launcher__hide { width: 28px; height: 28px; display: grid; place-items: center; padding: 0; border-radius: 50%; color: #24483e; background: #fff; font-size: 18px; line-height: 1; }
.cm-privacy-launcher__open:hover { background: #003f35; }
.cm-privacy-launcher__hide:hover { background: #edf4f0; }
.cm-privacy-dialog { position: fixed; inset: 0; z-index: 10010; width: min(700px, calc(100vw - 28px)); max-width: none; max-height: min(82dvh, 760px); margin: auto; padding: 0; overflow: auto; border: 1px solid #cbded5; border-radius: 20px; background: #fbfdfb; color: #173e35; box-shadow: 0 24px 90px rgba(0, 31, 25, .3); }
.cm-privacy-dialog::backdrop { background: rgba(0, 30, 24, .5); backdrop-filter: blur(3px); }
.cm-privacy-dialog__inner { padding: clamp(20px, 4vw, 32px); }
.cm-privacy-dialog__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.cm-privacy-dialog h2 { margin: 0 0 6px; color: #073e34; font-size: clamp(20px, 3vw, 26px); line-height: 1.2; }
.cm-privacy-dialog p { color: #435e55; font-size: 14px; line-height: 1.65; margin: 7px 0 0; }
.cm-privacy-dialog__close { width: 40px; height: 40px; flex: 0 0 auto; border: 1px solid #d0e0d9; border-radius: 12px; background: white; color: #234b40; font-size: 24px; cursor: pointer; }
.cm-privacy-storage { padding: 14px 0; border-top: 1px solid #dce8e2; }
.cm-privacy-storage strong { color: #153f35; }
.cm-privacy-storage code { overflow-wrap: anywhere; font-size: .92em; background: #eaf2ed; padding: 1px 4px; border-radius: 4px; }
.cm-privacy-pill { display: inline-flex; margin-left: 6px; vertical-align: 1px; padding: 3px 7px; border-radius: 999px; color: #1d5a49; background: #e2f0e7; font-size: 10px; font-weight: 750; letter-spacing: .02em; text-transform: uppercase; }
.cm-privacy-dialog__notice { margin-top: 15px; border: 1px solid #e4d3a8; border-radius: 12px; background: #fff9e9; padding: 12px 14px; color: #594b2c; font-size: 12px; line-height: 1.6; }
.cm-privacy-dialog__actions { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; margin-top: 19px; padding-top: 15px; border-top: 1px solid #dce8e2; }
.cm-privacy-site-links { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 15px; font-size: 12px; line-height: 1.7; }
.cm-privacy-site-links a { color: inherit; }
.cm-privacy-footer-links { margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px 14px; color: inherit; font-size: 12px; line-height: 1.6; }
.cm-privacy-footer-links a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.cm-privacy-footer-links a:focus-visible { outline: 2px solid #c6a45a; outline-offset: 3px; }
@media (max-width: 600px) {
  .cm-privacy-banner { padding: 14px; border-radius: 15px; max-height: min(52dvh, 390px); overflow: auto; }
  .cm-privacy-banner__head { grid-template-columns: 34px minmax(0,1fr) 32px; gap: 9px; }
  .cm-privacy-banner__mark { width: 34px; height: 34px; border-radius: 10px; }
  .cm-privacy-banner h2 { font-size: 15px; }
  .cm-privacy-banner p { font-size: 12px; }
  .cm-privacy-banner__actions, .cm-privacy-banner__foot { margin-left: 43px; }
  .cm-privacy-banner__actions { gap: 7px; }
  .cm-privacy-btn { min-height: 42px; padding: 9px 11px; font-size: 12px; }
  .cm-privacy-dialog { width: calc(100vw - 20px); max-height: 86dvh; border-radius: 16px; }
  .cm-privacy-launcher__open { width: 44px; padding: 0; }
  .cm-privacy-launcher__open span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
}
@media (prefers-reduced-motion: reduce) { .cm-privacy-banner *, .cm-privacy-launcher *, .cm-privacy-dialog * { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
