.library-plan-dialog { width: min(440px,calc(100% - 32px)); border: 1px solid #ad747b80; border-radius: 22px; padding: 26px; background: #282126; color: #ecc0cb; font-family: Arial,sans-serif; }
.library-plan-dialog::backdrop { background: #0009; }
.library-plan-dialog p { font-size: 14px; line-height: 1.5; }
.library-plan-dialog .dialog-top { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.library-plan-dialog h2 { margin:0; font:600 28px Georgia,serif; }
.library-plan-dialog .dialog-close { background:none; border:0; color:inherit; font-size:28px; cursor:pointer; }
.library-plan-choices { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-block:20px; }
.library-plan-choices .enter:disabled { opacity:.45; cursor:default; }
body[data-theme=light] .library-plan-dialog { background:#fbf2ee; color:#4c1712; }
.activation-footer { text-align:center; font-size:13px; line-height:1.6; }
.library-admin-actions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.library-grant { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:14px 0; border-bottom:1px solid #ad747b44; }
.library-grant p { margin:5px 0; }
.library-grant form { display:grid; gap:14px; }
.invitation-link { width:100%; overflow-wrap:anywhere; }

.library-plan-dialog, .library-plan-dialog * { -webkit-user-select: none; user-select: none; }
/* Match the account panel and its editor. */
#library-admin { padding:24px; border-top:1px solid var(--line); margin-top:8px; }
#library-admin .library-admin-actions { margin:0 0 20px; align-items:center; justify-content:space-between; gap:16px; }
#library-admin h3 { margin:0; font:650 17px/1.4 "Segoe UI",sans-serif; letter-spacing:-.02em; }
.library-admin-tools { display:flex; align-items:center; gap:8px; }
#library-admin button { padding:10px 15px; min-height:40px; border-radius:11px; font:600 12px/1.4 "Segoe UI",sans-serif; }
.library-subscription-empty { padding:28px 18px; border:1px dashed var(--line); border-radius:14px; text-align:center; color:var(--muted); font-size:13px; background:#88888803; }
#library-admin .library-grant { padding:18px; margin:10px 0; border:1px solid var(--line); border-radius:14px; background:#88888804; }
.library-grant strong { font-size:14px; }
.library-grant p { font-size:12px; color:var(--muted); line-height:1.6; }
.library-grant small { color:var(--muted); font-size:11px; }
.library-page .library-grant-dialog { width:min(560px,calc(100% - 32px)); padding:28px; border-radius:22px; background:#28212ef7; max-height:90dvh; }
.library-page[data-theme=light] .library-grant-dialog { background:#fff8f4f7; }
.library-grant-dialog::backdrop { background:#160f2180; backdrop-filter:blur(10px); }
.library-grant-dialog .dialog-top { align-items:flex-start; margin-bottom:24px; }
.library-grant-dialog .eyebrow { display:block; margin-bottom:8px; font-size:10px; }
.library-grant-dialog .dialog-close { width:34px; height:34px; padding:0; display:grid; place-items:center; border:1px solid var(--line); border-radius:10px; background:transparent; color:var(--muted); }
.library-grant-dialog .dialog-close svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; }
.library-grant-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.library-grant-fields .wide { grid-column:1/-1; }
.library-grant-fields label { display:flex; flex-direction:column; gap:9px; font-size:12px; color:var(--muted); }
.library-grant-fields input,.library-grant-fields select { width:100%; min-width:0; min-height:46px; padding:12px 14px; border:1px solid var(--line); border-radius:11px; background:#88888806; color:var(--text); font:13px "Segoe UI",sans-serif; color-scheme:dark; }
.library-page[data-theme=light] .library-grant-fields input,.library-page[data-theme=light] .library-grant-fields select { color-scheme:light; }
.library-grant-fields input:focus,.library-grant-fields select:focus { border-color:var(--accent); outline:none; }
.library-grant-fields select:disabled { opacity:.5; }
.library-grant-dialog .payment-confirm-check { margin-top:6px; padding:14px; border:1px solid var(--line); border-radius:11px; font-size:12px; }
.library-grant-dialog .library-grant-note { margin:0; font-size:11px; }
.library-grant-footer { display:flex; align-items:center; justify-content:flex-end; gap:14px; border-top:1px solid var(--line); padding-top:18px; }
.library-grant-footer [role=status] { flex:1; margin:0; }
.library-grant-dialog .primary { border-radius:11px; padding:12px 18px; font-size:13px; }
.library-grant-dialog[open] { -webkit-user-select:none; user-select:none; }
@media(max-width:650px){#library-admin{padding:18px 16px}.library-admin-actions{flex-direction:column;align-items:stretch!important}.library-admin-tools{width:100%}.library-admin-tools .primary{flex:1}.library-page .library-grant-dialog{padding:22px}.library-grant-fields{grid-template-columns:1fr}.library-grant-footer{flex-wrap:wrap}.library-grant-footer .primary{width:100%}}
.library-grant-fields .custom-select { width:100%; min-width:0; }
.library-grant-fields .select-trigger { min-height:46px; border-radius:11px; padding:12px 14px; }
.library-grant-fields .select-menu { -webkit-user-select:none; user-select:none; }
.library-invite-box { width:100%; margin-top:14px; padding:16px; border:1px solid var(--line); border-radius:13px; background:#88888804; box-sizing:border-box; }
.library-invite-box>strong { font:600 13px/1.5 "Segoe UI",sans-serif; color:var(--text); }
.library-invite-box>p { margin:5px 0 12px; color:var(--muted); font:12px/1.6 "Segoe UI",sans-serif; }
.library-invite-row { display:flex; align-items:center; gap:8px; }
.library-page .library-invite-row .invitation-link { flex:1; width:0; min-width:0; min-height:42px; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#88888806; color:var(--muted); font:12px/1.5 "Segoe UI",sans-serif; text-overflow:ellipsis; }
.library-page .library-invite-row button { flex-shrink:0; min-height:42px; margin:0; padding:10px 14px; border:1px solid var(--line); border-radius:10px; background:transparent; color:var(--text); font:600 12px/1.5 "Segoe UI",sans-serif; }
.library-page .library-invite-row button:hover { border-color:var(--accent); background:#d4438710; }
@media(max-width:420px){.library-invite-row{flex-wrap:wrap}.library-page .library-invite-row .invitation-link{flex-basis:100%;width:100%}.library-page .library-invite-row button{width:100%}}
.library-access-tabs { display:flex; gap:6px; padding:4px; margin-bottom:18px; border:1px solid var(--line); border-radius:12px; width:fit-content; background:#88888804; }
#library-admin .library-access-tabs button { border:0; background:transparent; color:var(--muted); padding:9px 14px; min-height:36px; border-radius:8px; }
#library-admin .library-access-tabs button[aria-pressed=true] { background:#d4438718; color:var(--accent); }
.library-access-list { height:clamp(280px,48vh,440px); overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding-right:6px; }
.library-access-list .library-subscription-empty { margin-top:10px; }
#library-admin { overflow-anchor:none; }
html { scrollbar-gutter:stable; }
/* Plan picker uses the login palette and button finish. */
#library-plans.library-plan-dialog{position:relative;width:min(500px,calc(100% - 32px));padding:32px;border:1px solid #875a61;border-radius:24px;background:linear-gradient(135deg,#29232bee,#211c22fa);color:#edc0c3;box-shadow:0 24px 80px #0006,inset 0 1px #ffdae90b}
#library-plans::backdrop{background:#100b1299;backdrop-filter:blur(8px)}
#library-plans .dialog-top{justify-content:center;margin:0 0 30px;padding:0}
.library-plan-heading{display:flex;align-items:center;justify-content:center}
.library-plan-mark{display:none}
#library-plans h2{font:600 32px/1.2 Georgia,serif;letter-spacing:-.8px;text-align:center}
#library-plans .dialog-close{position:absolute;right:17px;top:17px;display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:9px;background:transparent;color:#cba8b3;font:23px/1 Arial,sans-serif;transition:background-color .18s,color .18s}
#library-plans .dialog-close:hover{background:#b47a841c;color:#fff0f2}
#library-plans .library-plan-choices{gap:16px;margin:0}
#library-plans .library-plan-card{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;padding:24px 18px 16px;border:1px solid #78536066;border-radius:17px;background:linear-gradient(155deg,#ffffff06,#ffffff01);color:#f1d9dd;text-align:center;cursor:pointer;box-shadow:inset 0 1px #ffffff05;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}
#library-plans .library-plan-annual{border-color:#bd84938c;background:linear-gradient(145deg,#ac74841b,#ac748407)}
.library-plan-period{align-self:center;padding:6px 13px;border:1px solid #ad747b38;border-radius:999px;color:#dfb7c0;background:#ad747b09;font:500 13px/1.3 Arial,sans-serif}
.library-plan-price{display:flex;justify-content:center;align-items:baseline;gap:5px;white-space:nowrap;margin:25px 0 26px;font:600 30px/1.2 Arial,sans-serif;letter-spacing:-1.2px;font-variant-numeric:tabular-nums}
.library-plan-currency{color:#bf9fa9;font-size:13px;font-weight:400;letter-spacing:0}
.library-plan-cta{display:flex;align-items:center;justify-content:center;gap:12px;min-height:42px;padding:11px 12px;border:1px solid #b47a8459;border-radius:10px;color:#f4dce3;background:#ad747b19;font:600 13px/1.3 Arial,sans-serif;transition:background-color .18s,border-color .18s}
.library-plan-cta span{font-size:17px;font-weight:400}
.library-plan-annual .library-plan-cta{background:#a66b75;border-color:#a66b75;color:#fff0f2}
#library-plans .library-plan-card:not(:disabled):hover{transform:translateY(-3px);border-color:#d6a0b0;background:#ad747b15;box-shadow:0 8px 24px #0002}
#library-plans .library-plan-card:not(:disabled):hover .library-plan-cta{background:#b47a84;border-color:#b47a84;color:#fff0f2}
#library-plans .library-plan-card:not(:disabled):active{transform:translateY(0);box-shadow:inset 0 2px 8px #0002}
#library-plans .library-plan-card:focus-visible{outline:2px solid #edb3c5;outline-offset:4px}
#library-plans .library-plan-card:disabled{opacity:.65;cursor:default}
#library-plans [role=status]:empty{display:none}
#library-plans [role=status]{margin:18px 0 0;font-size:12px}
body[data-theme=light] #library-plans{background:linear-gradient(135deg,#fffaf5,#f8eee8);color:#4c1712;border-color:#d8b6b7;box-shadow:0 24px 80px #53303e35}
body[data-theme=light] #library-plans .library-plan-card{color:#4c1712;border-color:#dfc7c9;background:#ffffff45}
body[data-theme=light] #library-plans .library-plan-annual{border-color:#b77c89;background:#ad747b09}
body[data-theme=light] #library-plans .library-plan-period,body[data-theme=light] #library-plans .library-plan-currency{color:#885d68}
body[data-theme=light] #library-plans .library-plan-cta{color:#734250}
body[data-theme=light] #library-plans .library-plan-annual .library-plan-cta{color:white}
@media(max-width:420px){#library-plans.library-plan-dialog{padding:30px 20px 22px}#library-plans .library-plan-choices{gap:12px}#library-plans .library-plan-card{padding:20px 12px 13px}.library-plan-price{font-size:26px;letter-spacing:-1px;margin:23px 0}.library-plan-cta{font-size:12px;gap:8px}#library-plans h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){#library-plans .library-plan-card,#library-plans .library-plan-cta,#library-plans .dialog-close{transition:none}#library-plans .library-plan-card:not(:disabled):hover{transform:none}}
#library-plans.library-plan-dialog{width:min(420px,calc(100% - 32px));overflow:visible}
.library-subscription{display:flex;flex-direction:column;gap:12px}
.library-subscription>label{font:500 12px/1.4 Arial,sans-serif;color:#c8b3bd}
#library-plans .library-subscribe{width:100%;margin-top:6px;background:#a66b75;color:#fff0f2;border-radius:11px;border:0;min-height:48px;font:600 14px Arial,sans-serif;transition:background .18s,opacity .18s}
#library-plans .library-subscribe:disabled{opacity:.4;cursor:default}
#library-plans .library-subscribe:not(:disabled):hover{background:#b47a84}
#library-plans .library-subscribe:not(:disabled):active{background:#945b65}
#library-plans .library-subscription [role=status]:empty{display:none}
body[data-theme=light] .library-subscription>label{color:#885d68}

#library-plans{--text:#f0d8dc;--muted:#b5a7b0;--line:#73505a55;--accent:#b77d88;--glass-edge:rgba(239,191,218,.17)}
body[data-theme=light] #library-plans{--text:#4c272c;--muted:#826b70;--line:#b57e8540;--accent:#9b5c68;--glass-edge:rgba(255,255,255,.74)}
.login-page #subscribe-library.subscribe-library-button { display:block; width:100%; min-height:48px; margin-top:20px; padding:12px 16px; border:1px solid #ad747b66; border-radius:10px; background:transparent; color:#dda1aa; font:600 14px/1.4 Arial,sans-serif; text-align:center; text-decoration:none; cursor:pointer; transition:background-color .18s ease,border-color .18s ease,color .18s ease; }
@media(hover:hover){.login-page #subscribe-library.subscribe-library-button:hover{background:#ad747b13;border-color:#bf939d;color:#f5cbd1}}
.login-page #subscribe-library.subscribe-library-button:active{background:#ad747b24;border-color:#bf939d}
.login-page #subscribe-library.subscribe-library-button:focus-visible{outline:2px solid #ba8a80;outline-offset:3px}
.login-page[data-theme=light] #subscribe-library.subscribe-library-button{color:#965f65;border-color:#ba8a8066}
@media(hover:hover){.login-page[data-theme=light] #subscribe-library.subscribe-library-button:hover{background:#ad747b0c;border-color:#ba8a80;color:#633b40}}
@media(prefers-reduced-motion:reduce){.login-page #subscribe-library.subscribe-library-button{transition:none}}
.subscription-page #library-plans{border:0;background:none;box-shadow:none;padding:0;width:100%;color:inherit}
.subscription-page #library-plans .dialog-top{margin:0 0 28px}
.subscription-back{display:block;margin-top:20px;text-align:center;color:inherit;font:13px/1.5 Arial,sans-serif;text-decoration:none}
.subscription-back:hover{text-decoration:underline;text-underline-offset:4px}
.subscription-page .login-shell main{padding-block:30px}
.login-page #auth-login-view[hidden],.login-page #auth-subscription-view[hidden]{display:none!important}
.login-page .auth-subscription-view #library-plans{width:100%;padding:0;background:none;box-shadow:none;border:0;color:inherit}
.login-page .auth-subscription-view #library-plans .dialog-top{margin-bottom:28px}
.login-page button.subscription-back{width:100%;padding:0;border:0;background:transparent;color:inherit;font:13px/1.5 Arial,sans-serif;cursor:pointer}
.login-page .auth-subscription-view .select-menu{max-height:180px}
.login-page .auth-subscription-view #library-plans .dialog-top{margin-bottom:24px}
.login-page .auth-subscription-view .divider{margin-top:20px}
.login-page .auth-subscription-view .subscription-back{margin-top:18px}
#library-plans .subscription-heading{width:100%;margin:0;text-align:center}
#library-plans .subscription-heading .eyebrow{margin-bottom:18px}
#library-plans .subscription-heading h2{margin:0 0 8px;font-size:clamp(1.8rem,6vw,2.1rem)}
#library-plans .subscription-heading p{margin:0;color:#bcb2ba;font-size:.9375rem;line-height:1.4}
body[data-theme=light] #library-plans .subscription-heading p{color:#777176}
