/* Compact, equal-weight consent choices. Isolated from editorial components. */
.tsl-privacy-banner,.tsl-privacy-dialog{font:14px/1.5 var(--font,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif);color:var(--ink,#1d1d1f);background:var(--card,#fff);border:1px solid var(--line,#d8d8dc);box-sizing:border-box}
.tsl-privacy-banner{position:fixed;z-index:1000;left:24px;right:24px;bottom:20px;max-width:1100px;margin:0 auto;padding:22px 24px;border-radius:22px;box-shadow:0 8px 50px #071b2920;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:30px}
.tsl-privacy-banner[hidden]{display:none!important}
.tsl-privacy-banner h2{font-size:19px;line-height:1.2;font-weight:600;letter-spacing:-.025em;margin:0 0 8px}
.tsl-privacy-banner p{font-size:16px;line-height:1.5;color:var(--muted,#626268);margin:0;max-width:70ch}
.tsl-privacy-banner a,.tsl-privacy-dialog a{color:var(--accent,#00749b);text-decoration:underline;text-underline-offset:3px}
.tsl-privacy-banner-controls{display:flex;flex-direction:column;align-items:center;gap:4px}
.tsl-privacy-banner-choices,.tsl-privacy-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
.tsl-privacy-banner .tsl-privacy-choice,.tsl-privacy-dialog .tsl-privacy-choice{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:130px;padding:11px 16px;border:1px solid color-mix(in srgb,var(--accent,#00749b) 35%,var(--line,#d8d8dc));border-radius:30px;background:var(--soft-blue,#e5f3f9);color:var(--ink,#1d1d1f);font-size:16px;font-weight:550;line-height:1.3;letter-spacing:0;text-align:center}
.tsl-privacy-choice:hover{background:color-mix(in srgb,var(--accent,#00749b) 16%,var(--card,#fff));filter:none}
.tsl-privacy-banner .tsl-privacy-text-button,.tsl-privacy-dialog .tsl-privacy-text-button{min-height:44px;padding:9px 8px;background:transparent;border:0;border-radius:6px;color:var(--accent,#00749b);font-size:16px;font-weight:400;line-height:1.4;letter-spacing:0;text-decoration:underline;text-underline-offset:3px}
.tsl-privacy-dialog{max-width:520px;width:calc(100% - 36px);max-height:calc(100dvh - 40px);margin:auto;padding:28px;border-radius:24px;box-shadow:0 24px 100px #06141c45;overflow:auto;overscroll-behavior:contain}
.tsl-privacy-dialog::backdrop{background:#061b2b60;backdrop-filter:blur(5px)}
.tsl-privacy-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.tsl-privacy-dialog .tsl-privacy-kicker{font-size:11px;line-height:1.4;letter-spacing:.05em;text-transform:uppercase;color:var(--muted,#626268);margin:0}
.tsl-privacy-dialog .tsl-privacy-close{display:grid;place-items:center;flex-shrink:0;flex-basis:44px;min-height:44px;min-width:44px;max-width:44px;max-height:44px;width:44px;height:44px;padding:0;aspect-ratio:1;border:1px solid var(--line,#d8d8dc);border-radius:50%;color:var(--ink,#1d1d1f);background:var(--panel,#f5f5f7)}
.tsl-privacy-close svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
.tsl-privacy-dialog h2{font-size:30px;line-height:1.12;letter-spacing:-.04em;font-weight:600;margin:0 0 14px}
.tsl-privacy-dialog>p{font-size:17px;line-height:1.6;color:var(--muted,#626268);margin:0 0 22px}
.tsl-privacy-essential,.tsl-privacy-option{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 0;border-top:1px solid var(--line,#d8d8dc)}
.tsl-privacy-essential strong,.tsl-privacy-option strong{display:block;font-size:17px;font-weight:600;margin-bottom:5px}
.tsl-privacy-essential p,.tsl-privacy-option>span>span{display:block;font-size:16px;line-height:1.5;color:var(--muted,#626268);margin:0}
.tsl-privacy-essential>span{font-size:11px;color:var(--muted,#626268);white-space:nowrap}
.tsl-privacy-option{position:relative;cursor:pointer;padding-right:64px;border-bottom:1px solid var(--line,#d8d8dc);margin-bottom:17px}
.tsl-privacy-option input{position:absolute;right:0;top:50%;width:48px;height:44px;min-height:44px;margin:0;transform:translateY(-50%);opacity:0;cursor:pointer;z-index:1}
.tsl-privacy-switch{position:absolute;right:0;width:44px;height:26px;border:1px solid var(--line,#d8d8dc);border-radius:20px;background:var(--panel,#f5f5f7);pointer-events:none;transition:background .15s}
.tsl-privacy-switch::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--muted,#626268);transition:transform .15s,background .15s}
.tsl-privacy-option input:checked+.tsl-privacy-switch{background:var(--accent,#00749b);border-color:var(--accent,#00749b)}
.tsl-privacy-option input:checked+.tsl-privacy-switch::after{transform:translateX(18px);background:var(--bg,#fff)}
.tsl-privacy-option input:focus-visible+.tsl-privacy-switch{outline:3px solid var(--accent,#00749b);outline-offset:4px}
.tsl-privacy-dialog .tsl-privacy-small{font-size:15px;line-height:1.55;margin-bottom:20px}
.tsl-privacy-policy-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#d8d8dc)}
.tsl-privacy-policy-links a{display:inline-flex;align-items:center;min-height:44px;font-size:14px;line-height:1.4}
.tsl-privacy-media-note{display:flex;align-items:center;gap:18px;padding:18px;border-radius:15px;background:var(--panel,#f5f5f7);margin:22px 0}
.tsl-privacy-media-note>span{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;font-size:27px;line-height:1;color:var(--accent,#00749b)}
.tsl-privacy-media-note p{font-size:15px;line-height:1.55;color:var(--muted,#626268);margin:0}
.tsl-privacy-media-note strong{display:block;color:var(--ink,#1d1d1f);font-size:16px;margin-bottom:4px}
.tsl-privacy-dialog[data-mode="media"]>.tsl-privacy-text-button{display:flex;margin:9px auto 0}
:is(.tsl-privacy-banner,.tsl-privacy-dialog) :is(button,a):focus-visible{outline:3px solid var(--accent,#00749b);outline-offset:3px}
@media(max-width:760px){.tsl-privacy-banner{left:14px;right:14px;bottom:max(14px,env(safe-area-inset-bottom));padding:18px;gap:13px;grid-template-columns:1fr;max-width:470px;border-radius:19px}.tsl-privacy-banner h2{font-size:18px}.tsl-privacy-banner-controls{width:100%;gap:2px}.tsl-privacy-banner .tsl-privacy-choice{min-width:0;padding:11px;font-size:16px}.tsl-privacy-dialog{padding:22px;width:calc(100% - 28px);border-radius:20px}.tsl-privacy-dialog h2{font-size:27px}.tsl-privacy-dialog-head{margin-bottom:16px}.tsl-privacy-dialog .tsl-privacy-choice{min-width:0;font-size:16px;padding:11px 10px}.tsl-privacy-essential{gap:12px}.tsl-privacy-essential>span{font-size:10px}}
@media(prefers-reduced-motion:reduce){.tsl-privacy-switch,.tsl-privacy-switch::after{transition:none}}
@media print{.tsl-privacy-banner,.tsl-privacy-dialog{display:none!important}}

/* V25: a circular close control is a square box, independent of base button padding. */
.tsl-privacy-dialog .tsl-privacy-close{box-sizing:border-box;flex-grow:0;flex-shrink:0;line-height:1}
.tsl-privacy-banner-controls,.tsl-privacy-banner-choices,.tsl-privacy-dialog-actions{min-width:0}
.tsl-privacy-banner .tsl-privacy-choice,.tsl-privacy-dialog .tsl-privacy-choice{overflow-wrap:anywhere}
@media(max-width:380px){.tsl-privacy-banner{padding:17px}.tsl-privacy-banner-choices,.tsl-privacy-dialog-actions{gap:8px}.tsl-privacy-essential{align-items:flex-start;flex-wrap:wrap}.tsl-privacy-essential>span{font-size:12px}.tsl-privacy-option{padding-right:60px}.tsl-privacy-dialog{padding:20px}.tsl-privacy-dialog h2{font-size:27px}}

@media(max-width:380px){.tsl-privacy-dialog-actions{grid-template-columns:1fr}.tsl-privacy-dialog .tsl-privacy-choice{min-height:48px}}

.tsl-privacy-dialog .tsl-privacy-small,.tsl-privacy-policy-links a,.tsl-privacy-media-note p,.tsl-privacy-essential>span{font-size:16px}
