/* Nico Consent Manager – minimalistisch, sauber */
.ncm { position: fixed; z-index: 999999; font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
.ncm-hidden { display: none !important; }

#ncm-banner { left: 0; right: 0; bottom: 0; padding: 16px; }
#ncm-banner .ncm-card { max-width: 980px; margin: 0 auto; border-radius: 14px; box-shadow: 0 12px 40px rgba(0,0,0,.18); overflow: hidden; border: 1px solid rgba(0,0,0,.08); background: #fff; color: #111; }
#ncm-banner .ncm-head { padding: 14px 16px; border-bottom: 1px solid rgba(0,0,0,.08); }
#ncm-banner .ncm-title { font-size: 18px; font-weight: 700; }
#ncm-banner .ncm-body { padding: 14px 16px 16px; }
#ncm-banner .ncm-intro { margin: 0 0 12px; line-height: 1.4; font-size: 14px; color: #222; }

.ncm-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.ncm-btn { appearance: none; border: 1px solid rgba(0,0,0,.18); background: #f7f7f7; color: #111; padding: 10px 12px; border-radius: 10px; cursor: pointer; font-weight: 600; }
.ncm-btn:hover { background: #efefef; }
.ncm-btn.ncm-primary { background: #111; color: #fff; border-color: #111; }
.ncm-btn.ncm-primary:hover { opacity: .9; }
.ncm-btn.ncm-ghost { background: transparent; }

.ncm-settings { margin-top: 10px; border-top: 1px dashed rgba(0,0,0,.2); padding-top: 10px; }
.ncm-cat { padding: 10px 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.ncm-cat-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.ncm-cat-label { font-weight: 700; font-size: 14px; }
.ncm-cat-desc { font-size: 12px; color: rgba(0,0,0,.75); margin-top: 2px; max-width: 640px; }
.ncm-actions-bottom { margin-top: 10px; }

.ncm-toggle { position: relative; width: 46px; height: 26px; }
.ncm-toggle input { opacity: 0; width: 0; height: 0; }
.ncm-toggle label { position: absolute; cursor: pointer; inset: 0; background: rgba(0,0,0,.15); border-radius: 999px; transition: .2s; }
.ncm-toggle label:before { content:""; position: absolute; height: 22px; width: 22px; left: 2px; top: 2px; background: #fff; border-radius: 50%; transition: .2s; box-shadow: 0 3px 12px rgba(0,0,0,.18); }
.ncm-toggle input:checked + label { background: #111; }
.ncm-toggle input:checked + label:before { transform: translateX(20px); }
.ncm-toggle input:disabled + label { opacity: .6; cursor: not-allowed; }

.ncm-footnote { margin-top: 10px; font-size: 12px; color: rgba(0,0,0,.75); }

/* Manage Button */
.ncm-manage { position: fixed; z-index: 999998; padding: 10px 12px; border-radius: 999px; border: 1px solid rgba(0,0,0,.18); background: #111; color: #fff; cursor: pointer; font-weight: 700; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.ncm-manage-bottom_left { left: 16px; bottom: 16px; }
.ncm-manage-bottom_right { right: 16px; bottom: 16px; }

/* Datenschutzerklärung-Tabellen */
.ncm-privacy-table { width: 100%; border-collapse: collapse; }
.ncm-privacy-table th, .ncm-privacy-table td { border: 1px solid rgba(0,0,0,.12); padding: 8px; vertical-align: top; }
.ncm-privacy-table th { background: rgba(0,0,0,.04); }

/* Dark mode (rudimentär) */
body.ncm-theme-dark #ncm-banner .ncm-card { background: #111; color: #fff; border-color: rgba(255,255,255,.14); }
body.ncm-theme-dark #ncm-banner .ncm-head { border-bottom-color: rgba(255,255,255,.14); }
body.ncm-theme-dark #ncm-banner .ncm-intro { color: rgba(255,255,255,.85); }
body.ncm-theme-dark .ncm-btn { background: rgba(255,255,255,.08); color: #fff; border-color: rgba(255,255,255,.16); }
body.ncm-theme-dark .ncm-btn:hover { background: rgba(255,255,255,.12); }
body.ncm-theme-dark .ncm-btn.ncm-primary { background: #fff; color: #111; border-color: #fff; }
body.ncm-theme-dark .ncm-cat-desc { color: rgba(255,255,255,.78); }
body.ncm-theme-dark .ncm-footnote { color: rgba(255,255,255,.78); }


/* Screenreader-only Text */
.ncm-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.ncm-icon-cookie{display:block;fill:currentColor;}

/* Icon-Button für 'Einwilligung verwalten' */
.ncm-manage{width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;}

/* Responsive (Handy/Tablet) */
@media (max-width: 520px){
  #ncm-banner{padding:10px;}
  #ncm-banner .ncm-card{border-radius:12px;}
  .ncm-actions{gap:8px;}
  .ncm-btn{flex:1 1 auto; width:100%;}
  .ncm-cat-row{flex-direction:column; align-items:flex-start;}
  .ncm-toggle{align-self:flex-end;}
}

/* Dienste-Liste im Banner */
.ncm-cat-services{margin-top:8px;}
.ncm-cat-services summary{cursor:pointer;font-size:12px;color:rgba(0,0,0,.75);list-style:none;}
.ncm-cat-services summary::-webkit-details-marker{display:none;}
.ncm-service-list{margin:8px 0 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;}
.ncm-service-item{display:flex;align-items:center;gap:8px;}
.ncm-help{width:22px;height:22px;border-radius:999px;border:1px solid rgba(0,0,0,.18);background:#f7f7f7;color:#111;cursor:pointer;font-weight:800;line-height:1;}
.ncm-help:hover{background:#efefef;}
body.ncm-theme-dark .ncm-help{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.16);}
body.ncm-theme-dark 
/* Untere Leiste im Banner: Links + Local-Hinweis */
.ncm-legal-bar{margin-top:10px;padding-top:10px;border-top:1px solid rgba(0,0,0,.08);display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;}
.ncm-legal-left{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.ncm-legal-link{font-size:12px;color:rgba(0,0,0,.78);text-decoration:underline;}
.ncm-legal-link:hover{opacity:.85;}
.ncm-legal-sep{font-size:12px;color:rgba(0,0,0,.55);}
.ncm-legal-right{font-size:12px;color:rgba(0,0,0,.65);max-width:520px;}
body.ncm-theme-dark .ncm-legal-bar{border-top-color:rgba(255,255,255,.14);}
body.ncm-theme-dark .ncm-legal-link{color:rgba(255,255,255,.82);}
body.ncm-theme-dark .ncm-legal-sep{color:rgba(255,255,255,.6);}
body.ncm-theme-dark .ncm-legal-right{color:rgba(255,255,255,.78);}

@media (max-width: 520px){
  .ncm-legal-right{max-width:100%;}
}

/* Tooltip als Modal (für viel Inhalt) */
.ncm-tip-modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:14px;background:rgba(0,0,0,.45);z-index:1000000;}
.ncm-tip-card{width:min(720px, 100%);max-height:min(70vh, 560px);background:#fff;color:#111;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.25);overflow:hidden;border:1px solid rgba(0,0,0,.12);}
.ncm-tip-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.08);}
.ncm-tip-title{font-weight:800;font-size:14px;}
.ncm-tip-close{appearance:none;border:1px solid rgba(0,0,0,.18);background:#f7f7f7;border-radius:10px;width:34px;height:34px;cursor:pointer;font-size:22px;line-height:1;}
.ncm-tip-body{padding:12px 14px;overflow:auto;font-size:13px;line-height:1.45;max-height:calc(min(70vh,560px) - 56px);}

body.ncm-theme-dark .ncm-tip-card{background:#111;color:#fff;border-color:rgba(255,255,255,.14);}
body.ncm-theme-dark .ncm-tip-head{border-bottom-color:rgba(255,255,255,.14);}
body.ncm-theme-dark .ncm-tip-close{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.16);}

@media (max-width:520px){
  .ncm-tip-card{max-height:75vh;}
}

/* Dienste anzeigen: unter dem Schalter rechts ausrichten */
.ncm-cat-services-row{display:flex;justify-content:flex-end;margin-top:6px;}
.ncm-cat-services summary{white-space:nowrap;}

/* Modal-Layout: bessere Lesbarkeit bei langen Texten */
.ncm-tip-row{margin:0 0 14px 0;}
.ncm-tip-label{font-weight:800;font-size:12px;margin:0 0 6px 0;opacity:.9;}
.ncm-tip-value{font-size:13px;line-height:1.55;}
.ncm-tip-text{white-space:pre-wrap;}
.ncm-tip-list{margin:0 0 0 18px;padding:0;display:flex;flex-direction:column;gap:6px;}
.ncm-tip-list li{margin:0;}

/* Re-Ask Hinweis */
.ncm-reask{margin:0 0 10px 0;padding:10px 12px;border-radius:12px;background:rgba(255,193,7,.18);border:1px solid rgba(255,193,7,.35);font-size:13px;line-height:1.4;}
body.ncm-theme-dark .ncm-reask{background:rgba(255,193,7,.12);border-color:rgba(255,193,7,.25);}

/* Embed Platzhalter */
.ncm-embed-ph{margin:12px 0;}
.ncm-embed-card{border:1px solid rgba(0,0,0,.10);border-radius:16px;padding:14px;background:var(--ncm-embed-bg, rgba(0,0,0,.02));color:var(--ncm-embed-text, inherit);}
.ncm-embed-title{font-weight:900;font-size:14px;margin:0 0 6px 0;color:var(--ncm-embed-text, inherit);}
.ncm-embed-text{font-size:13px;line-height:1.5;margin:0 0 8px 0;color:var(--ncm-embed-text, inherit);}
.ncm-embed-mini{font-size:12px;opacity:.82;line-height:1.35;margin:0 0 8px 0;color:var(--ncm-embed-text, inherit);}
.ncm-embed-link{font-size:12px;text-decoration:underline;}
body.ncm-theme-dark .ncm-embed-card{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06);}

/* Ads Sub-Optionen */
.ncm-ads-sub{margin-top:8px;padding:10px;border-radius:12px;border:1px solid rgba(0,0,0,.08);background:rgba(0,0,0,.02);}
.ncm-ads-sub-row{display:flex;gap:10px;align-items:center;margin:0 0 8px 0;font-size:13px;}
.ncm-ads-sub-row input{width:18px;height:18px;}
.ncm-ads-sub-hint{font-size:12px;opacity:.75;line-height:1.35;}
body.ncm-theme-dark .ncm-ads-sub{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06);}

/* Datenschutzerklärung-Module */
.ncm-privacy-module{margin:18px 0;padding:12px 14px;border:1px solid rgba(0,0,0,.08);border-radius:14px;background:#fff;}
.ncm-privacy-module h3{margin:0 0 8px 0;}
.ncm-privacy-module details{margin-top:10px;}
.ncm-privacy-module table{width:100%;border-collapse:collapse;font-size:13px;}
.ncm-privacy-module th,.ncm-privacy-module td{border-bottom:1px solid rgba(0,0,0,.08);padding:8px;text-align:left;vertical-align:top;}

/* Manage Button Status-Farben */
#ncm-manage.ncm-state-none{background:var(--ncm-manage-none);} 
#ncm-manage.ncm-state-essential{background:var(--ncm-manage-essential);} 
#ncm-manage.ncm-state-all{background:var(--ncm-manage-all);} 


/* Manage Button Status-Farben (Fix: nur Hintergrundfarbe, mit Fallback) */
#ncm-manage.ncm-state-none{background-color:var(--ncm-manage-none, #6b1d1d); color:#fff;}
#ncm-manage.ncm-state-essential{background-color:var(--ncm-manage-essential, #b07d00); color:#fff;}
#ncm-manage.ncm-state-all{background-color:var(--ncm-manage-all, #0f6b2f); color:#fff;}

.ncm-embed-load{background:var(--ncm-embed-btn-bg, #111)!important;color:var(--ncm-embed-btn-text, #fff)!important;border:1px solid rgba(0,0,0,.12)!important;}
