
.cookie-preferences-link { padding: 0; border: 0; background: transparent; color: #315e4b; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.cookie-preferences-link:hover { color: #1f5d43; background: transparent; }
.cookie-preferences-link:focus-visible { outline: 2px solid #75b496; outline-offset: 3px; border-radius: 3px; }
.cookie-consent-banner { position: fixed; z-index: 15000; left: 50%; bottom: max(16px, env(safe-area-inset-bottom)); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px 24px; width: min(1140px, calc(100vw - 32px)); padding: 18px 20px; transform: translateX(-50%); border: 1px solid #c8ddd2; border-radius: 16px; background: #fffefa; color: #26352e; box-shadow: 0 14px 45px rgba(20, 43, 32, .22); font: 400 13px/1.55 Roboto, Arial, sans-serif; }
.cookie-consent-banner[hidden] { display: none !important; }
.cookie-banner-copy { min-width: 0; }
.cookie-banner-title { display: block; margin-bottom: 4px; color: #183c2d; font-size: 15px; font-weight: 600; }
.cookie-banner-copy p { max-width: 690px; margin: 0; color: #53635a; }
.cookie-banner-actions, .cookie-dialog-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.cookie-button { min-height: 40px; padding: 9px 13px; border: 1px solid #9dc2b3; border-radius: 9px; background: #fffefa; color: #284638; font: 500 12px/1.2 Roboto, Arial, sans-serif; cursor: pointer; white-space: nowrap; }
.cookie-button:hover { background: #e8f3ed; }
.cookie-button:focus-visible { outline: 2px solid #3f7758; outline-offset: 2px; }
.cookie-button.cookie-primary { border-color: #3f7758; background: #3f7758; color: #fff; }
.cookie-button.cookie-primary:hover { background: #315e47; }
.cookie-settings-dialog { width: min(540px, calc(100vw - 28px)); max-width: none; max-height: min(90vh, 760px); padding: 24px; overflow: auto; border: 1px solid #c8ddd2; border-radius: 18px; background: #fffefa; color: #26352e; box-shadow: 0 20px 70px rgba(9, 27, 19, .3); font: 400 13px/1.55 Roboto, Arial, sans-serif; }
.cookie-settings-dialog::backdrop { background: rgba(12, 24, 18, .52); backdrop-filter: blur(2px); }
.cookie-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.cookie-dialog-kicker { margin: 0 0 4px; color: #3f7758; font-size: 10px; font-weight: 600; letter-spacing: .14em; }
.cookie-dialog-heading h2 { margin: 0; color: #183c2d; font-size: 22px; font-weight: 600; }
.cookie-dialog-close { width: 34px; height: 34px; border: 1px solid #d4e1d9; border-radius: 50%; background: transparent; color: #385445; font-size: 23px; line-height: 1; cursor: pointer; }
.cookie-dialog-intro { margin: 0 0 16px; color: #53635a; }
.cookie-category { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px 0; border-top: 1px solid #e0e8e3; }
.cookie-category strong { color: #253a30; font-size: 13px; font-weight: 600; }
.cookie-category p { margin: 3px 0 0; color: #68776f; font-size: 12px; }
.cookie-always-on { color: #3f7758; font-size: 11px; font-weight: 600; white-space: nowrap; }
.cookie-optional-category { cursor: pointer; }
.cookie-optional-category input { flex: 0 0 auto; width: 42px; height: 24px; margin: 0; appearance: none; border: 1px solid #a9b9af; border-radius: 99px; background: #dce3de; cursor: pointer; transition: background .18s ease, border-color .18s ease; }
.cookie-optional-category input::before { display: block; width: 18px; height: 18px; margin: 2px; border-radius: 50%; background: #fff; content: ''; box-shadow: 0 1px 4px rgba(0, 0, 0, .2); transition: transform .18s ease; }
.cookie-optional-category input:checked { border-color: #3f7758; background: #3f7758; }
.cookie-optional-category input:checked::before { transform: translateX(18px); }
.cookie-optional-category input:focus-visible { outline: 2px solid #3f7758; outline-offset: 3px; }
.cookie-dialog-actions { margin-top: 16px; padding-top: 16px; border-top: 1px solid #e0e8e3; }
html[data-theme="dark"] .cookie-preferences-link, body[data-theme="dark"] .cookie-preferences-link { color: #a8d9c1; }
html[data-theme="dark"] .cookie-consent-banner, html[data-theme="dark"] .cookie-settings-dialog, body[data-theme="dark"] .cookie-consent-banner, body[data-theme="dark"] .cookie-settings-dialog { border-color: #3c5948; background: #17241d; color: #e3ece6; }
html[data-theme="dark"] .cookie-banner-title, html[data-theme="dark"] .cookie-dialog-heading h2, html[data-theme="dark"] .cookie-category strong, body[data-theme="dark"] .cookie-banner-title, body[data-theme="dark"] .cookie-dialog-heading h2, body[data-theme="dark"] .cookie-category strong { color: #dff0e6; }
html[data-theme="dark"] .cookie-banner-copy p, html[data-theme="dark"] .cookie-dialog-intro, html[data-theme="dark"] .cookie-category p, body[data-theme="dark"] .cookie-banner-copy p, body[data-theme="dark"] .cookie-dialog-intro, body[data-theme="dark"] .cookie-category p { color: #b9c9bf; }
html[data-theme="dark"] .cookie-button, body[data-theme="dark"] .cookie-button { border-color: #4e725f; background: #20352a; color: #e1eee6; }
html[data-theme="dark"] .cookie-button:hover, body[data-theme="dark"] .cookie-button:hover { background: #2b4637; }
html[data-theme="dark"] .cookie-button.cookie-primary, body[data-theme="dark"] .cookie-button.cookie-primary { border-color: #3f7758; background: #3f7758; color: #fff; }
html[data-theme="dark"] .cookie-dialog-close, body[data-theme="dark"] .cookie-dialog-close { border-color: #3c5948; color: #dcebe1; }
html[data-theme="dark"] .cookie-category, html[data-theme="dark"] .cookie-dialog-actions, body[data-theme="dark"] .cookie-category, body[data-theme="dark"] .cookie-dialog-actions { border-color: #344a3c; }
@media (max-width: 760px) {
  .cookie-consent-banner { grid-template-columns: 1fr; gap: 12px; width: calc(100vw - 20px); bottom: max(10px, env(safe-area-inset-bottom)); padding: 15px; border-radius: 14px; }
  .cookie-banner-title { font-size: 14px; }
  .cookie-banner-copy p { font-size: 12px; }
  .cookie-banner-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-banner-actions [data-cookie-accept] { grid-column: 1 / -1; }
  .cookie-banner-actions .cookie-button { width: 100%; white-space: normal; }
  .cookie-settings-dialog { padding: 19px; }
  .cookie-dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-dialog-actions [data-cookie-save] { grid-column: 1 / -1; }
  .cookie-dialog-actions .cookie-button { width: 100%; white-space: normal; }
}
