/* Only the newly requested membership/email/ad surfaces. Original player CSS is untouched. */
.service-panel { max-width: 520px; margin: 32px auto; box-sizing: border-box; }
.service-panel.helper { max-width: none; }
.service-panel h1 { font-size: 28px; margin: 12px auto 24px; }
.service-panel p { line-height: 1.4; }
.service-panel ul { margin: 20px; line-height: 1.8; }
.service-panel a { color: #000; }
.service-panel button { width: 100%; cursor: pointer; }
.service-panel button:disabled { opacity: .5; cursor: wait; }
.service-panel input { text-transform: none; box-sizing: border-box; height: 52px; width: 100%; margin: 12px 0; }
.service-panel .service-form { position: static; margin: 24px 0; }
.service-panel label { display: block; font-size: 16px; line-height: 1.4; }
.service-panel .email-consent { display: flex; align-items: flex-start; gap: 10px; }
.service-panel .email-consent input { appearance: auto; width: 18px; height: 18px; padding: 0; margin: 2px 0; flex: 0 0 auto; }
.service-panel [hidden] { display: none !important; }
.service-links { font-size: 14px; line-height: 1.6; text-align: center; }
.service-links a { color: #000; }
.ad-placement { border-top: 1px solid #d6d6d6; padding: 12px 0; min-height: 140px; }
.ad-placement p { color: rgba(0,0,0,.65); margin: 0 0 12px; }
.ad-preview { min-height: 100px; border: 1px dashed #d6d6d6; border-radius: 10px; }
.service-panel input:focus-visible, .service-panel button:focus-visible, .service-links a:focus-visible { outline: 2px solid #0759f7; outline-offset: 3px; }
@media (max-width: 550px) { .service-panel { max-width: calc(100vw - 20px); } }

/* Compact account flow, separate from the puzzle and other service panels. */
.account-shell { box-sizing:border-box;width:calc(100% - 40px);max-width:360px;margin:42px auto 36px; }
.account-shell [hidden] { display:none !important; }
.account-back { display:inline-block;color:#666;font-size:13px;text-decoration:none;margin:0 0 24px; }
.account-back:hover { color:#000; }
.account-card { background:#fff;border:1px solid #e0e0e0;border-radius:16px;padding:28px; }
.account-heading h1 { font-size:25px;font-weight:600;letter-spacing:-.035em;line-height:1.2;margin:0;text-align:left; }
.account-heading p { font-size:14px;line-height:1.5;color:#666;text-align:left;margin:10px 0 26px;overflow-wrap:anywhere; }
.account-card button,.account-card .account-primary,.account-card .account-secondary { display:flex;align-items:center;justify-content:center;gap:12px;box-sizing:border-box;position:static;width:100%;height:46px;margin:12px 0 0;padding:0 14px;border-radius:8px;font-size:14px;font-weight:500;text-transform:none;text-decoration:none;cursor:pointer; }
.account-card button:disabled { opacity:.55;cursor:wait; }
.account-card .google-button { background:#fff;color:#1f1f1f;border:1px solid #d5d5d5;margin:0; }
.account-card .google-button:hover { background:#f7f7f7; }
.account-card #signin-form button { background:#f0f0f0;color:#333; }
.account-card #signin-form button:hover { background:#e6e6e6; }
.google-button svg { display:block;width:18px;height:18px;flex:0 0 18px; }
.account-card .service-form { position:static;margin:0; }
.account-card label { display:block;font-size:13px;color:#444;margin:0 0 8px; }
.account-card input { box-sizing:border-box;width:100%;height:46px;margin:0;padding:0 12px;background:#fff;border:1px solid #d5d5d5;border-radius:8px;font-size:16px;text-align:left;text-transform:none; }
.account-card input::placeholder { color:#999; }
.account-card #account-code { text-align:center;letter-spacing:.35em;font-size:22px;padding-left:20px; }
.auth-divider { display:flex;align-items:center;gap:12px;margin:22px 0;color:#888; }
.auth-divider:before,.auth-divider:after { content:'';height:1px;background:#e8e8e8;flex:1; }
.auth-divider span { font-size:12px;color:#888; }
.account-card .account-note { font-size:12px;line-height:1.5;color:#777;text-align:center;margin:18px 0 0; }
.account-card .code-destination { font-size:14px;line-height:1.5;color:#666;text-align:left;margin:0 0 20px;overflow-wrap:anywhere; }
.account-card .code-destination strong { color:#222;font-weight:500; }
.account-card .text-button,.ad-placement .text-button { height:auto;min-height:36px;background:none;color:#555;font-size:13px;text-decoration:underline;text-underline-offset:3px;margin:8px 0 0;padding:6px 0; }
.account-card .text-button:hover,.ad-placement .text-button:hover { color:#000;background:none; }
.account-card #service-message { font-size:13px;line-height:1.5;color:#555;text-align:left;margin:14px 0 0; }
.account-card #service-message:empty { display:none; }
.account-legal { display:flex;justify-content:center;gap:12px;font-size:11px;margin:22px 0 0; }
.account-legal a { color:#777;text-decoration:none; }
.account-legal span { color:#bbb; }
.account-optional { font-size:12px;line-height:1.7;color:#777;margin:20px 0 0; }
.account-optional a { color:#555;text-underline-offset:3px; }
.account-card .account-tier { text-align:left;font-size:12px;margin:0 0 18px;color:#555; }
.account-card .account-primary { background:#000;color:#fff;margin:0; }
.account-card .account-primary:hover { background:#2a6aff; }
.account-card .account-secondary { color:#222;background:#fff;border:1px solid #d5d5d5; }
.account-destinations { display:flex;justify-content:space-between;gap:12px;margin:22px 0; }
.account-destinations a { color:#555;font-size:12px;text-underline-offset:3px; }
.account-shell a:focus-visible,.account-shell button:focus-visible,.account-shell input:focus-visible { outline:2px solid #0759f7;outline-offset:3px; }
@media (max-width:550px) { .account-shell { margin-top:28px; } .account-card { padding:24px; } .account-heading h1 { font-size:24px; } }

/* Archives subscription dialog and inline daily-email signup. */
body.plus-dialog-open { overflow:hidden; }
.plus-dialog { box-sizing:border-box;inset:0;margin:auto;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #dedede;border-radius:16px;padding:32px;background:#fff;color:#000; }
.plus-dialog::backdrop { background:rgba(0,0,0,.4); }
.plus-dialog [hidden] { display:none !important; }
.plus-dialog .dialog-close { position:absolute;right:10px;top:10px;display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;margin:0;border-radius:50%;background:none;color:#555;font-size:28px;font-weight:300;line-height:1;cursor:pointer; }
.plus-dialog .dialog-close:hover { background:#f0f0f0;color:#000; }
.plus-dialog .plus-eyebrow,.newsletter-card .newsletter-eyebrow { font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:left;color:#666;margin:0 0 14px; }
.plus-dialog h2 { font-size:28px;font-weight:600;letter-spacing:-.035em;line-height:1.15;text-align:left;margin:0; }
.plus-dialog .plus-description { font-size:14px;line-height:1.5;text-align:left;color:#666;margin:14px 0 22px; }
.plus-perks { list-style:none;margin:0;padding:0; }
.plus-perks li { padding:14px 0;border-top:1px solid #ececec; }
.plus-perks strong { display:block;font-size:14px;font-weight:600; }
.plus-perks small { display:block;font-size:13px;line-height:1.5;color:#666;margin-top:5px; }
.plus-dialog .plus-price { font-size:28px;letter-spacing:-.03em;font-weight:600;text-align:left;margin:22px 0 4px; }
.plus-price span { font-size:14px;font-weight:400;letter-spacing:0;color:#666; }
.plus-dialog .plus-renewal { font-size:12px;color:#666;text-align:left;margin:0 0 22px; }
.plus-dialog .plus-primary { display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:46px;height:auto;padding:14px 12px;margin:0;background:#000;color:#fff;border:0;border-radius:8px;font-size:14px;text-transform:none;text-decoration:none;cursor:pointer; }
.plus-dialog .plus-primary:hover { background:#2a6aff; }
.plus-dialog .plus-primary:disabled { opacity:.55;cursor:wait; }
.plus-dialog .plus-fine-print,.plus-dialog .plus-terms { font-size:11px;line-height:1.5;color:#777;text-align:center;margin:12px 0 0; }
.plus-terms a { color:#666;text-underline-offset:3px; }
.plus-dialog .plus-message { font-size:13px;line-height:1.5;color:#555;text-align:left;margin:14px 0 0; }
.plus-message:empty { display:none; }
.newsletter-card { box-sizing:border-box;width:520px;max-width:calc(100% - 20px);padding:26px 24px;margin:32px auto;background:#fff;border:1px solid #dedede;border-radius:10px; }
.newsletter-card h2 { text-align:left;font-size:23px;line-height:1.2;font-weight:600;letter-spacing:-.025em; }
.newsletter-card .newsletter-description { text-align:left;font-size:14px;line-height:1.6;color:#666;margin:12px 0 20px; }
.newsletter-inline-form { position:static;margin:0; }
.newsletter-inline-form label { display:block;font-size:12px;color:#555;line-height:1.5;margin-bottom:8px; }
.newsletter-fields { display:flex;gap:8px; }
.newsletter-fields input { box-sizing:border-box;flex:1;min-width:0;width:0;height:46px;padding:0 12px;margin:0;text-align:left;text-transform:none;font-size:16px;border-radius:8px;background:#fff; }
.newsletter-fields button { box-sizing:border-box;width:auto;height:46px;padding:0 16px;margin:0;border-radius:8px;font-size:13px;text-transform:none;cursor:pointer; }
.newsletter-fields button:disabled { background:#555;cursor:not-allowed; }
.newsletter-fields input:disabled { background:#f7f7f7;color:#777; }
.newsletter-inline-form .newsletter-consent { display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;font-size:12px;line-height:1.5; }
.newsletter-consent input { appearance:auto;box-sizing:border-box;flex:0 0 16px;width:16px;height:16px;margin:1px 0 0;padding:0; }
.newsletter-card .newsletter-detail { font-size:12px;line-height:1.6;color:#666;text-align:left;margin:16px 0 0; }
.newsletter-detail a { color:#555;text-underline-offset:3px; }
.newsletter-card #newsletter-message { font-size:13px;line-height:1.5;text-align:left;margin:14px 0 0;color:#555; }
.newsletter-card #newsletter-message:empty { display:none; }
.plus-dialog :focus-visible,.newsletter-card :focus-visible { outline:2px solid #0759f7;outline-offset:3px; }
@media (max-width:550px) { .plus-dialog { padding:28px 24px; } .newsletter-fields { flex-direction:column; } .newsletter-fields input,.newsletter-fields button { width:100%; } .newsletter-fields input { flex:none; } }

.ad-placement .text-button { text-transform:none; }
