/* Scoped styles keep theme buttons and typography from weakening the choices. */
.cp-root {
    --cp-ink: #182d30;
    --cp-muted: #4a5e61;
    --cp-border: #b7c6c7;
    --cp-paper: #fff;
    --cp-tint: #f3f7f6;
    --cp-focus: #005cbe;
    color: var(--cp-ink);
    font: 400 16px/1.55 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
}
.cp-root *, .cp-root *::before, .cp-root *::after { box-sizing: border-box; }
.cp-root [hidden], .cp-embed [hidden] { display: none !important; }
.cp-banner, .cp-panel {
    position: fixed;
    z-index: 2147483000;
    right: 20px;
    bottom: 78px;
    width: min(620px, calc(100vw - 40px));
    padding: 26px;
    border: 1px solid var(--cp-border);
    border-radius: 12px;
    background: var(--cp-paper);
    color: var(--cp-ink);
    box-shadow: 0 8px 36px rgb(15 35 37 / 18%);
    max-height: calc(100vh - 110px);
    max-height: calc(100dvh - 110px);
    overflow: auto;
    overscroll-behavior: contain;
}
.cp-panel { width: min(680px, calc(100vw - 40px)); }
.cp-root .cp-title {
    margin: 0 0 10px;
    padding: 0;
    font: 700 23px/1.3 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--cp-ink);
    letter-spacing: -.02em;
    text-transform: none;
}
.cp-root .cp-text { margin: 0 0 14px; font: inherit; color: var(--cp-muted); }
.cp-root .cp-policy { color: #005761; font-size: 14px; font-weight: 600; line-height: 1.5; text-decoration: underline; text-underline-offset: 3px; }
.cp-root .cp-actions { display: flex; flex-wrap: wrap; align-items: stretch; gap: 10px; margin-top: 20px; }
.cp-root .cp-button {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 145px;
    min-height: 46px;
    margin: 0;
    padding: 11px 15px;
    border: 1px solid #47676b;
    border-radius: 6px;
    background: #fff;
    color: #173e44;
    font: 650 14px/1.4 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    letter-spacing: normal;
    text-transform: none;
    text-align: center;
    text-decoration: none;
    white-space: normal;
    box-shadow: none;
    cursor: pointer;
    transition: background-color .15s ease;
}
.cp-root .cp-button:hover { background: #edf4f3; color: #173e44; border-color: #173e44; }
.cp-root .cp-button:disabled { cursor: wait; opacity: .65; }
.cp-root button:focus-visible, .cp-root a:focus-visible, .cp-root input:focus-visible,
.cp-root summary:focus-visible, .cp-embed [data-cp-open]:focus-visible,
[data-cp-request] :focus-visible, [data-cp-receipts] :focus-visible {
    outline: 3px solid #005cbe;
    outline-offset: 3px;
}
.cp-root .cp-panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.cp-root .cp-close { flex: 0 0 auto; min-height: 40px; padding: 8px 12px; font-size: 13px; }
.cp-root .cp-category { margin-top: 15px; border: 1px solid var(--cp-border); border-radius: 8px; padding: 15px; background: var(--cp-tint); }
.cp-root .cp-category-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.cp-root .cp-check-label { display: inline-flex; align-items: center; gap: 11px; margin: 0; color: var(--cp-ink); font: 650 16px/1.4 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; cursor: pointer; }
.cp-root .cp-check-label input[type="checkbox"] {
    appearance: auto;
    position: static;
    display: inline-block;
    width: 20px;
    height: 20px;
    min-width: 20px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--cp-border);
    opacity: 1;
    accent-color: #165760;
}
.cp-root .cp-always { color: var(--cp-muted); font-size: 12px; font-weight: 650; }
.cp-root .cp-category-description { margin: 8px 0 0 31px; color: var(--cp-muted); font-size: 14px; line-height: 1.5; }
.cp-root .cp-services { margin: 10px 0 0 31px; color: var(--cp-muted); font-size: 13px; }
.cp-root .cp-services summary { display: list-item; cursor: pointer; color: #005761; text-decoration: underline; text-underline-offset: 3px; }
.cp-root .cp-services ul { margin: 8px 0 0; padding-left: 18px; }
.cp-root .cp-services li { margin-bottom: 8px; }
.cp-root .cp-cookie-names { display: block; margin-top: 3px; overflow-wrap: anywhere; color: var(--cp-ink); background: transparent; }
.cp-root .cp-panel > .cp-policy { display: inline-block; margin-top: 15px; }
.cp-root .cp-status, [data-cp-request] [data-cp-status], [data-cp-receipts] [data-cp-status] { margin: 14px 0 0; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.cp-root .cp-error, [data-cp-request] .cp-error, [data-cp-receipts] .cp-error { color: #8a241a; }
.cp-root .cp-retry { margin-top: 12px; }
.cp-root .cp-launcher {
    position: fixed;
    z-index: 2147483001;
    bottom: max(16px, env(safe-area-inset-bottom));
    right: 20px;
    min-height: 44px;
    border-color: #47676b;
    border-radius: 999px;
    padding: 10px 18px;
    box-shadow: 0 2px 12px rgb(15 35 37 / 14%);
}
.cp-root .cp-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.cp-embed { border: 1px solid #b7c6c7; border-radius: 8px; padding: 20px; text-align: center; background: #f3f7f6; color: #182d30; }
.cp-embed:has(> .cp-embed-frame) { padding: 0; overflow: hidden; }
.cp-embed .cp-embed-frame { display: block; width: 100%; min-height: 240px; aspect-ratio: 16 / 9; border: 0; }
[data-cp-request], [data-cp-receipts] { max-width: 680px; }
[data-cp-request] label { display: block; margin-bottom: 7px; }
[data-cp-request] input[type="email"], [data-cp-request] select { max-width: 100%; }
[data-cp-request] [name="website"] { position: absolute !important; width: 1px !important; height: 1px !important; left: -10000px !important; overflow: hidden !important; }
.cp-inventory { max-width: 100%; overflow-x: auto; overflow-wrap: anywhere; }
.cp-inventory table { width: 100%; border-collapse: collapse; font-size: .9em; }
.cp-inventory th, .cp-inventory td { text-align: left; vertical-align: top; padding: 12px; border-bottom: 1px solid #b7c6c7; }
.cp-inventory th { background: #f3f7f6; color: #182d30; }
.cp-inventory caption { text-align: left; margin-bottom: 10px; }
.cp-open-settings, [data-cp-request] button, [data-cp-receipts] button { padding: 10px 14px; min-height: 44px; cursor: pointer; }
.cp-root .cp-brand { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
.cp-root .cp-brand-logo { display: block; width: auto; height: auto; max-width: min(180px, 100%); max-height: 56px; object-fit: contain; }
.cp-root .cp-brand-name { color: var(--cp-ink); font: 650 16px/1.4 system-ui, sans-serif; overflow-wrap: anywhere; max-width: 100%; }
.cp-root .cp-button, .cp-root .cp-button:hover { color: var(--cp-accent, #165760); border-color: var(--cp-accent, #165760); }
.cp-root .cp-policy, .cp-root .cp-services summary { color: var(--cp-accent, #165760); }
.cp-root .cp-check-label input[type="checkbox"] { accent-color: var(--cp-accent, #165760); }
@media (max-width: 480px) {
    .cp-banner, .cp-panel { right: 10px; bottom: 73px; width: calc(100vw - 20px); padding: 18px; max-height: calc(100vh - 90px); max-height: calc(100dvh - 90px); }
    .cp-root .cp-title { font-size: 21px; }
    .cp-root .cp-actions { gap: 8px; }
    .cp-root .cp-actions .cp-button { flex-basis: 100%; }
    .cp-root .cp-launcher { right: 10px; }
    .cp-root .cp-category { padding: 12px; }
}
@media (prefers-reduced-motion: reduce) { .cp-root .cp-button { transition: none; } }
@media (forced-colors: active) { .cp-root .cp-button, .cp-banner, .cp-panel, .cp-root .cp-category { border: 1px solid ButtonText; } }
@media print { .cp-root { display: none !important; } }
