.privacy-banner{position:fixed;z-index:20;right:20px;bottom:20px;width:min(390px,calc(100vw - 32px));padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 12px 36px #0003;color:var(--ink)}
.privacy-banner h2{font-size:16px;line-height:1.4;margin:0 0 8px}.privacy-banner>p{font-size:13px;line-height:1.6;margin:0 0 14px;color:var(--muted)}
.privacy-banner-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.privacy-banner-actions button{min-height:44px;padding:8px;font-size:13px;font-weight:650;background:var(--surface-soft);color:var(--ink);border:1px solid var(--line)}
.privacy-banner>a{display:inline-flex;align-items:center;min-height:32px;color:var(--accent);font-size:13px;text-decoration:underline;text-underline-offset:3px}
.privacy-dialog{width:540px;padding:24px}.privacy-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.privacy-dialog-heading h2{font-size:21px;line-height:1.3;margin:0}.privacy-dialog-heading button{flex-shrink:0;width:40px;height:40px;padding:0;font-size:26px;background:transparent}
.privacy-dialog>p{font-size:14px;color:var(--muted);margin:16px 0}.privacy-policy-link{display:inline-flex;align-items:center;min-height:40px;font-size:13px;color:var(--accent)}
.privacy-form fieldset{border:0;padding:0;margin:0;min-width:0}.privacy-option{display:flex;align-items:flex-start;gap:12px;padding:17px 0;cursor:pointer;border-bottom:1px solid var(--line)}.privacy-option input{margin:4px 0 0;width:18px;height:18px;flex-shrink:0}.privacy-option span{min-width:0}.privacy-option strong{display:block;font-size:15px;line-height:1.5;font-weight:650}.privacy-option small{display:block;font-size:13px;color:var(--muted);line-height:1.65;margin-top:5px}
.privacy-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.privacy-actions button{font-size:13px;min-height:44px;background:var(--surface-soft)}.privacy-status{font-size:13px;line-height:1.6;color:var(--success);margin:12px 0 0;overflow-wrap:anywhere}.privacy-status:empty{display:none}.privacy-status.is-error{color:var(--warning)}.privacy-banner>.privacy-status{margin:10px 0 0}.privacy-banner>.privacy-status.is-error{color:var(--warning)}
.privacy-page{max-width:850px}.privacy-settings{padding:20px 24px;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin:24px 0 32px}.privacy-settings h2{margin:0;font-size:21px}.privacy-explanation{max-width:76ch}.privacy-explanation section{margin:32px 0}.privacy-explanation h2{font-size:21px;margin:0 0 14px}.privacy-explanation p{color:var(--muted);line-height:1.85;margin:14px 0}.privacy-explanation a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.privacy-related{display:flex;gap:8px 24px;flex-wrap:wrap;font-size:14px}.privacy-related a{min-height:40px;display:inline-flex;align-items:center}.privacy-updated{font-size:12px}.privacy-dev-note{padding:12px 16px;border-left:3px solid var(--accent);background:var(--surface-soft);color:var(--muted);font-size:14px}
.library-history-toggle{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.library-history-toggle input{margin:0;width:18px;height:18px;flex-shrink:0}.library-history-settings #recent-history-help,.library-history-settings #recent-history-status{font-size:13px;line-height:1.7;color:var(--muted);max-width:76ch}.library-history-settings #recent-history-status:empty{display:none}
.site-footer{justify-content:flex-start;column-gap:18px;row-gap:4px}.site-footer>a,.site-footer>[data-privacy-open]{font-size:12px;min-height:40px;display:inline-flex;align-items:center}.site-footer>[data-privacy-open]{padding:0;border:0;border-radius:0;background:transparent;color:var(--muted)}.site-footer small{margin-left:auto;text-align:right}
@media(max-width:820px){.privacy-banner{bottom:calc(var(--dock-height) + env(safe-area-inset-bottom) + 12px);right:16px}.privacy-settings{padding:16px}.privacy-dialog{padding:20px}.privacy-dialog-heading h2{font-size:19px}}
@media(max-width:420px){.privacy-actions{display:grid;grid-template-columns:1fr}.privacy-banner{padding:15px}.privacy-option{gap:10px}.site-footer{column-gap:12px}.site-footer small{flex-basis:100%}}
@media print{.privacy-banner,.privacy-dialog,.privacy-settings{display:none!important}}
.site-footer .footer-release{display:inline-flex;align-items:center;justify-content:flex-end;gap:14px;margin-left:auto;white-space:nowrap}.site-footer .footer-release small{margin:0;flex-basis:auto}.site-version{font:11px var(--mono);color:var(--muted)}
@media(max-width:420px){.site-footer .footer-release{flex-basis:100%;padding-top:4px}}
