/* Original coastal game chrome. Opt-in only: body.premium-panels-v80.
 * Reference principles: scene-first composition, dimensional instruments,
 * confident hierarchy and tactile controls. No copied art, invented badges,
 * actor transforms, board-cell sizing or gameplay hit-box changes.
 * Load AFTER existing feature sheets. Component geometry remains authoritative.
 */
body.premium-panels-v80 {
 --pp80-ink:#121f3d; --pp80-text:#f6f5ff; --pp80-muted:#c5cee5;
 --pp80-shell:linear-gradient(145deg,#344572 0%,#222d52 48%,#121e38 100%);
 --pp80-enamel:linear-gradient(155deg,#435c91 0%,#2c406b 48%,#1b2d51 100%);
 --pp80-inset:linear-gradient(160deg,#101c35,#1b2a49);
 --pp80-paper:linear-gradient(150deg,#fff6df,#e9dfc8);
 --pp80-lime:linear-gradient(#e6ffac,#bcf36c 48%,#8bd34e);
 --pp80-rim:#a8b7ea99; --pp80-line:#9baed538;
 --pp80-depth:inset 0 1px 0 #e9efff75,inset 0 -2px 0 #07132a99,0 4px 0 #09142cd9,0 10px 24px #060d2266;
 --pp80-card-depth:inset 0 1px 0 #d6e5ff40,0 2px 0 #08162b99,0 8px 18px #08102030;
 --pp80-action-depth:inset 0 2px 0 #f4ffd8,0 4px 0 #416130,0 7px 12px #07162f4d;
}
/* Actual feature shells only. The dialog title row is separate from scene art. */
body.premium-panels-v80 #modal:has(:is(#career-business,#cloud-story-panel,#character-viewer,#chat-panel,#rating-panel,#pvp-panel,#team-panel,#contacts-panel,#contracts-board,#vip-panel,#player-profile,#mastery-panel,#commission-panel,#spaces-panel,#visits-panel,#puzzle-panel,#district-map-panel,#checkout-panel,#wallet-panel,#premium-wardrobe,#arena-match,.training-coach,.shopitem,.city-grid)) {
 --coast-enamel:var(--pp80-shell);background:var(--pp80-shell);color:var(--pp80-text);
 border:1px solid var(--pp80-rim);border-radius:24px;
 box-shadow:inset 0 1px #ecf0ff80,0 0 0 4px #16233d99,0 22px 80px #030a23a6;
}
body.premium-panels-v80 #modal::backdrop{background:#050d21b8;backdrop-filter:blur(5px)}
body.premium-panels-v80 #modalContent :where(#career-business,#cloud-story-panel,#character-viewer,#chat-panel,#rating-panel,#pvp-panel,#team-panel,#contacts-panel,#contracts-board,#vip-panel,#player-profile,#mastery-panel,#commission-panel,#spaces-panel,#visits-panel,#puzzle-panel,#district-map-panel,#checkout-panel,#wallet-panel,#premium-wardrobe) {
 --coast-card:var(--pp80-enamel);--coast-card-shadow:var(--pp80-card-depth);
 --coast-button:var(--pp80-enamel);--coast-dark-raised:var(--pp80-depth);
 --coast-paper:var(--pp80-paper);--coast-ink:var(--pp80-ink);
 --coast-text:var(--pp80-text);--coast-muted:var(--pp80-muted);
 --panel-card:var(--pp80-enamel);--panel-navy:var(--pp80-shell);--panel-rim:var(--pp80-rim);
 --panel-shadow:var(--pp80-card-depth);--panel-mint:var(--pp80-lime);--panel-mint-shadow:var(--pp80-action-depth);
 --feature-card:var(--pp80-enamel);--feature-rim:var(--pp80-rim);--feature-shadow:var(--pp80-card-depth);
 --feature-button:var(--pp80-enamel);--feature-mint:var(--pp80-lime);--feature-mint-raised:var(--pp80-action-depth);
 color:var(--pp80-text);
}
/* Heading shelves: compact title hierarchy, not full-screen promotional cards. */
body.premium-panels-v80 #modalContent :is(.career-heading,.chat-heading,.team-top,.pvp-top,.pp-hero,.mastery-top,.commission-top,.spaces-top,.visits-top,.puzzle-top,.district-heading){
 padding:14px 16px;margin-bottom:18px;border:1px solid var(--pp80-line);border-radius:16px;
 background:linear-gradient(110deg,#6479bf30,#31436c12 72%);box-shadow:inset 0 1px #e7edff26;
}
body.premium-panels-v80 #modalContent :is(.career-heading,.chat-heading,.team-top,.pvp-top,.pp-hero,.mastery-top,.commission-top,.spaces-top,.visits-top,.puzzle-top,.district-heading) :is(h2,h3){color:#fff8e9;letter-spacing:-.025em;line-height:1.12;text-wrap:balance}
body.premium-panels-v80 #modalContent :is(.career-heading,.chat-heading,.team-top,.pvp-top,.mastery-top,.commission-top,.spaces-top,.visits-top,.puzzle-top,.district-heading) p{color:var(--pp80-muted);line-height:1.5}
body.premium-panels-v80 #modalContent :is(.commission-overline,.pp-kicker,.puzzle-eyebrow,.mastery-kicker){color:#c2c9ff;font-weight:800;letter-spacing:.1em}
/* Content plates. Explicit list excludes chat messages, puzzle cells, scene
 * decorations, absolute-positioned player targets, avatar canvases and videos. */
body.premium-panels-v80 #modalContent :is(.cloud-professions article,.cloud-wardrobe article,.cloud-homes article,.shopitem,.premium-looks article,.wallet-balances article,.checkout-product,.vip-offer,.pp-section,.pp-cabinet,.chat-compose,.chat-profile,.chat-settings,.rating-personal,.rating-history-card,.team-party,.team-lobby,.pvp-wait,.pvp-stats>div,.contacts-request,.contacts-objective,.contacts-active,.contract-card,.contracts-weekly,.mastery-path,.mastery-brief,.commission-preview,.commission-active,.commission-lock,.spaces-picker,.visits-consent,.visits-confirm,.puzzle-choice,.puzzle-aside,.district-preview){
 background:var(--pp80-enamel);border:1px solid var(--pp80-rim);border-radius:18px;
 box-shadow:var(--pp80-card-depth);color:var(--pp80-text);
}
body.premium-panels-v80 #modalContent :is(.shopitem,.premium-looks article,.wallet-balances article,.pp-section,.chat-compose,.chat-profile,.rating-personal,.mastery-path,.commission-preview,.commission-active,.puzzle-choice,.district-preview) :is(h3,h4,b){color:#fff5dd}
body.premium-panels-v80 #modalContent :is(.shopitem,.premium-looks article,.wallet-balances article,.pp-section,.chat-compose,.chat-profile,.rating-personal,.mastery-path,.commission-preview,.commission-active,.puzzle-choice,.district-preview) :is(p,small){color:var(--pp80-muted)}
/* Paper notes carry meaning, instead of making every surface another blue box. */
body.premium-panels-v80 #modalContent :is(.commission-pay-note,.commission-keepsake,.commission-result,.mastery-result,.pvp-result,.puzzle-finish,.cloud-feedback,.contacts-finish,.pp-confirm,.vip-postcard-receipt){
 background:var(--pp80-paper);color:var(--pp80-ink);border:1px solid #fff4cd;border-left:5px solid #d9ad58;
 border-radius:16px;box-shadow:inset 0 1px #fffdf6,0 4px 0 #8f764337,0 9px 20px #06102733;
}
body.premium-panels-v80 #modalContent :is(.commission-pay-note,.commission-keepsake,.commission-result,.mastery-result,.pvp-result,.puzzle-finish,.cloud-feedback,.contacts-finish,.pp-confirm,.vip-postcard-receipt) :is(h2,h3,h4,p,b,strong,small){color:inherit}
/* Deliberately named action classes only. Never 'dialog button' or '* button'. */
body.premium-panels-v80 #modalContent :is(.primary,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.puzzle-choice>button,.cloud-wardrobe article>button,.cloud-homes article>button){
 --coast-paper:var(--pp80-lime);--coast-ink:#20371f;--coast-raised:var(--pp80-action-depth);
 background:var(--pp80-lime);color:#20371f;border:1px solid #e9ffd1;border-bottom-color:#b4ec7c;
 border-radius:14px;box-shadow:var(--pp80-action-depth);font-weight:850;min-height:46px;
 text-shadow:0 1px #f4ffcf8c;letter-spacing:.01em;white-space:normal;
 transition:translate 110ms ease,box-shadow 110ms ease,filter 150ms ease;
}
body.premium-panels-v80 #modalContent :is(.text-btn,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary,.pp-back,.spaces-refresh,.vip-refresh){
 background:var(--pp80-inset);color:#e2e9ff;border:1px solid #94acd17a;border-radius:12px;
 box-shadow:inset 0 1px #d0e4ff30,0 2px 0 #06152c;min-height:44px;padding:10px 14px;
 font-size:13px;font-weight:700;line-height:1.35;white-space:normal;
 transition:translate 110ms ease,box-shadow 110ms ease,filter 150ms ease;
}
body.premium-panels-v80 #modalContent :is(.cloud-section-nav,.chat-tabs,.rating-tabs,.visits-tabs,.commission-plan-tabs,.vip-tabs){
 padding:6px;gap:6px;border:1px solid #7489b85c;border-radius:15px;background:#0b1832a6;box-shadow:inset 0 2px 5px #050c2266;
}
body.premium-panels-v80 #modalContent :is(.cloud-section-nav,.chat-tabs,.rating-tabs,.visits-tabs,.commission-plan-tabs,.vip-tabs)>button{min-height:44px;border-radius:10px;line-height:1.25;white-space:normal}
body.premium-panels-v80 #modalContent :is(.cloud-section-nav,.chat-tabs,.rating-tabs,.visits-tabs,.commission-plan-tabs,.vip-tabs)>button:is(.selected,[aria-selected="true"],[aria-pressed="true"]){
 background:linear-gradient(#738ac8,#4e639e)!important;color:#fff!important;border-color:#c3d1ff!important;box-shadow:inset 0 1px #edf1ff99,0 2px 0 #172649;
}
body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary):hover:not(:disabled){filter:brightness(1.08)}
body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary):active:not(:disabled){translate:0 2px;transform:none;box-shadow:inset 0 2px 4px #0b183345,0 1px 0 #0a1731}
body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary):disabled{
 opacity:1;filter:none;translate:none;background:linear-gradient(#344664,#293953)!important;color:#b8c7dc!important;border-color:#6b7c977d!important;text-shadow:none;box-shadow:inset 0 1px #a9bbd32b;cursor:not-allowed;
}
body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary):focus-visible{outline:3px solid #fff0ac;outline-offset:3px}
/* Private messaging remains a readable reading surface; typography does not
 * change message ownership, moderation affordances or scroll position. */
body.premium-panels-v80 #chat-panel :is(.chat-compose textarea,.chat-settings select){background:#101b34;color:#f4f5ff;border:1px solid #9eafd5a6;border-radius:12px;box-shadow:inset 0 2px 5px #03091b80;font-size:16px}
body.premium-panels-v80 #chat-panel :is(.chat-status,.chat-fine,.chat-compose-bottom small){color:#c5d1e7;line-height:1.5}
body.premium-panels-v80 #player-profile :is(.pp-muted,.pp-policy,.pp-empty){color:#c5d1e7}
body.premium-panels-v80 #player-profile .pp-badge{background:linear-gradient(135deg,#fff4d8,#e0c99b);color:#41321f;border:1px solid #ffe8b0;box-shadow:inset 0 1px #fff9e8,0 2px 0 #0c193b66}
body.premium-panels-v80 #player-profile .pp-gift{border-radius:16px;border-color:#9aaed776;background:linear-gradient(135deg,#384e7b,#233659)}
/* Framed play instruments, not the board/targets themselves. */
body.premium-panels-v80 #puzzle-panel :is(.puzzle-stats,.puzzle-mobile-goals){background:var(--pp80-inset);border:1px solid #9faddb70;border-radius:14px;box-shadow:inset 0 2px 5px #050b2259;color:#fff3cc}
body.premium-panels-v80 #team-panel :is(.team-score,.team-rule),body.premium-panels-v80 #modalContent :is(.arena-intent){background:var(--pp80-inset);border-color:#829bc584;border-radius:14px;color:#e4eaff}
body.premium-panels-v80 #district-map-panel .district-preview-copy{padding:18px}
body.premium-panels-v80 #district-map-panel .district-task{background:#102039;border:1px solid #8bb7c379;border-left:4px solid #9be2d6;border-radius:12px;color:#e8f6ee}
/* Hub instruments inherit the same materials without touching their anchors,
 * dimensions, actor-safe center, world camera or bilateral rail layout. */
body.premium-panels-v80.hub-v50{--hub-face:var(--pp80-enamel);--hub-rim:var(--pp80-rim);--hub-text:var(--pp80-text);--hub-muted:var(--pp80-muted);--hub-depth:var(--pp80-depth)}
body.premium-panels-v80.hub-v50 #map .pin{border-color:#b5b9e4a6;background:linear-gradient(145deg,#465b8edb,#202f55ed);box-shadow:var(--pp80-depth)}
body.premium-panels-v80.hub-v50 #map .pin>i{background:radial-gradient(ellipse at 50% 24%,#91a9ff4d,transparent 72%);filter:drop-shadow(0 3px 2px #050c2780)}
body.premium-panels-v80.hub-v50 .goal{background:var(--pp80-shell);border-left-color:#b7e989}
body.premium-panels-v80.hub-v50 .goal #goalAction#goalAction{background:var(--pp80-lime);border-color:#e5ffc1;color:#20371f;box-shadow:var(--pp80-action-depth)}
body.premium-panels-v80.hub-v50 .goal .progress span{background:linear-gradient(#dbff9b,#97db5f);box-shadow:inset 0 1px #f6ffd7}
body.premium-panels-v80.hub-v50 .game-modes{background:var(--pp80-shell);border-color:#9aaad0a6}
body.premium-panels-v80.hub-v50 .game-modes #locations{background:linear-gradient(#b6c9ff,#829ad4)!important;color:#17233d;border-color:#d2deff}
/* Small-screen hierarchy is readable without expanding game boards or moving
 * stage actors. Long names wrap; essential action labels are never ellipsized. */
@media(max-width:600px){
 body.premium-panels-v80 #modal:has(:is(#chat-panel,#player-profile,#commission-panel,#wallet-panel,#checkout-panel,#premium-wardrobe,#mastery-panel,#visits-panel,#spaces-panel,#district-map-panel)){padding:20px 14px;border-radius:20px}
 body.premium-panels-v80 #modalContent :is(.career-heading,.chat-heading,.team-top,.pvp-top,.pp-hero,.mastery-top,.commission-top,.spaces-top,.visits-top,.puzzle-top,.district-heading){padding:12px;margin-bottom:14px;border-radius:14px}
 body.premium-panels-v80 #modalContent :is(.commission-top,.mastery-top,.spaces-top,.visits-top,.district-heading) h2{font-size:clamp(21px,6vw,28px)}
 body.premium-panels-v80 #modalContent :is(.pp-policy,.pp-muted,.commission-pay-note,.commission-footer,.mastery-fine,.spaces-fine,.visits-fine,.checkout-detail,.wallet-note){font-size:12px;line-height:1.5}
 body.premium-panels-v80 #premium-wardrobe .premium-looks button{font-size:12px;line-height:1.3;min-height:46px;padding:10px 8px}
 body.premium-panels-v80 #premium-wardrobe .premium-looks small{font-size:12px;line-height:1.4}
 body.premium-panels-v80 #modalContent .shopitem button{min-height:44px;font-size:12px;line-height:1.3}
 body.premium-panels-v80 #modalContent .shopitem b{font-size:13px;line-height:1.3}
 body.premium-panels-v80 #modalContent .shopitem small{font-size:11px;line-height:1.4}
 body.premium-panels-v80 #district-map-panel .district-preview-copy{padding:14px}
}
@media(prefers-reduced-motion:reduce){
 body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.rating-primary,.commission-primary,.pp-secondary,.commission-secondary,.commission-back,.puzzle-secondary){transition:none;translate:none!important}
}
@media(forced-colors:active){
 body.premium-panels-v80 #modalContent :is(.primary,.text-btn,.chat-primary,.pp-primary,.commission-primary,.commission-secondary){forced-color-adjust:auto;border:2px solid ButtonText;box-shadow:none}
 body.premium-panels-v80 #map .pin{border:2px solid ButtonText;box-shadow:none}
}
/* Reserve the dialog's existing top-right close target. Do not let a fresh
 * heading shelf erase the feature sheets' carefully reserved close-button gap. */
body.premium-panels-v80 #modalContent :is(.career-heading,.chat-heading,.team-top,.pvp-top,.mastery-top,.commission-top,.spaces-top,.visits-top,.puzzle-top,.district-heading){padding-right:52px}
/* Scene thumbnails stay images, with a distinct enamel edge rather than a
 * replacement flat fill. Combat actions remain their original hit-box sizes. */
body.premium-panels-v80 #modalContent :is(.city-card,.contacts-person,.puzzle-mini-art){border-color:#aebfe7a6;border-radius:18px;box-shadow:inset 0 1px #e6f2ff66,0 4px 0 #0b173a,0 9px 18px #050e244d}
body.premium-panels-v80 #modalContent :is(.arena-actions,.team-actions,.pvp-actions)>button{background:var(--pp80-enamel);border-color:#b6c6ed99;color:#f3f5ff;box-shadow:var(--pp80-card-depth);border-radius:13px}
body.premium-panels-v80 #modalContent :is(.arena-actions,.team-actions,.pvp-actions)>button:disabled{background:#2a3955;color:#bac8dd;box-shadow:inset 0 1px #b3c5e333;opacity:1}
body.premium-panels-v80 #modalContent :is(.arena-actions,.team-actions,.pvp-actions)>button:focus-visible{outline:3px solid #fff0ac;outline-offset:3px}

/* Legacy feedback uses important pale-green text; paper requires dark ink. */
body.premium-panels-v80 #modalContent .cloud-feedback{color:var(--pp80-ink)!important}
body.premium-panels-v80 #modalContent .mastery-result-symbol{color:#8e6225}
/* Guest coffee/event entry is a legacy fragment, not #career-business. Target
 * its real controls to reserve close space and restore readable brief text. */
body.premium-panels-v80 #modalContent:has(>#startWork)>h2{padding-right:52px;font-size:clamp(24px,5vw,32px);line-height:1.16;letter-spacing:-.025em;margin:16px 0 18px;color:#fff7e7}
body.premium-panels-v80 #modalContent:has(>#startWork)>p{font-size:14px;line-height:1.6;color:#d2dbed}
body.premium-panels-v80 #modalContent:has(>#startWork)>.shopitem{padding:16px;gap:14px}
body.premium-panels-v80 #modalContent:has(>#startWork)>.shopitem small{font-size:12px;line-height:1.5;color:#ccd7eb}
body.premium-panels-v80 #modalContent:has(>#startWork)>#startWork:not(:disabled)~#cafeRecipe.primary:not(:disabled){background:var(--pp80-enamel);color:#f4f6ff;border-color:#adbfe2;box-shadow:var(--pp80-card-depth);text-shadow:none}
/* V80 completion: explicit legacy identity, utility and safety surfaces.
 * They are not inferred from generic buttons or from user-visible text. */
body.premium-panels-v80 #modal:has(#playerName,#hubAccount,#confirmReset,#guest-save-conflict,#guest-writer-gate,#account-session-lost,[data-panel-kind="help"]){
 background:var(--pp80-shell);color:var(--pp80-text);border:1px solid var(--pp80-rim);border-radius:24px;
 box-shadow:inset 0 1px #ecf0ff80,0 0 0 4px #16233d99,0 22px 80px #030a23a6;
}
body.premium-panels-v80 #modalContent:is(:has(>#playerName),:has(#hubAccount),:has(#confirmReset),[data-panel-kind="help"])>h2,
body.premium-panels-v80 #modalContent :is(#guest-save-conflict,#guest-writer-gate,#account-session-lost)>h2{
 padding-right:52px;margin:16px 0 18px;font-size:clamp(24px,4.5vw,34px);line-height:1.17;letter-spacing:-.025em;color:#fff5df;
}
body.premium-panels-v80 #modalContent:is(:has(>#playerName),:has(#hubAccount),:has(#confirmReset),[data-panel-kind="help"])>p,
body.premium-panels-v80 #modalContent :is(#guest-save-conflict,#guest-writer-gate,#account-session-lost)>p{font-size:14px;line-height:1.65;color:#d0dbed}
body.premium-panels-v80 #modalContent:has(>#playerName)>label{display:block;font-size:13px;font-weight:750;color:#e4eaff;margin:18px 0 8px}
body.premium-panels-v80 #modalContent>#playerName{
 box-sizing:border-box;width:100%;min-height:48px;border:1px solid #a1b4da;border-radius:12px;padding:12px 14px;
 background:var(--pp80-inset);color:#fff7e9;font:inherit;font-size:16px;box-shadow:inset 0 2px 5px #020c2380;
}
body.premium-panels-v80 #modalContent>#playerName[readonly]{opacity:1;color:#c6cde0;background:#25334d}
body.premium-panels-v80 #modalContent:has(>#playerName) .choices{gap:14px;margin:18px 0}
body.premium-panels-v80 #modalContent:has(>#playerName) .choice{
 padding:12px 10px;border:1px solid #95acd48c;border-radius:18px;background:var(--pp80-enamel);
 color:#e8efff;font-size:14px;line-height:1.4;font-weight:750;box-shadow:var(--pp80-card-depth);
}
body.premium-panels-v80 #modalContent:has(>#playerName) .choice.selected{border:2px solid #c2efa0;padding:11px 9px;color:#e5ffcb;background:linear-gradient(155deg,#48647e,#263b58);box-shadow:inset 0 0 0 2px #b6ed9b25,0 3px 0 #0b1937}
body.premium-panels-v80 #modalContent:has(>#playerName) .preset-avatars{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 16px}
body.premium-panels-v80 #modalContent:has(>#playerName) .avatar-preset{
 min-width:44px;min-height:44px;border:1px solid #aab9e0;border-radius:12px;background:var(--pp80-enamel);color:#fff0c9;font-size:21px;box-shadow:var(--pp80-card-depth);
}
body.premium-panels-v80 #modalContent:has(>#playerName) .avatar-preset.selected{background:var(--pp80-paper);color:#25395a;border-color:#ffefbf;box-shadow:inset 0 1px #fff,0 3px 0 #806c40}
body.premium-panels-v80 #modalContent>#avatarUpload{box-sizing:border-box;max-width:100%;width:100%;min-height:48px;padding:8px;border:1px dashed #a3b4d8;border-radius:12px;background:#12203b;color:#d4def0;font-size:13px}
body.premium-panels-v80 #modalContent>#avatarUpload::file-selector-button{min-height:36px;margin-right:10px;border:1px solid #acbce2;border-radius:8px;padding:7px 10px;background:#394e7b;color:#f4f6ff;font:inherit;font-weight:700}
body.premium-panels-v80 #modalContent:has(>#playerName) :is(.upload-note,#avatarProcess){font-size:12px;line-height:1.55;color:#cbd6e9}
body.premium-panels-v80 #modalContent:has(>#playerName) #uploadPreview{margin:10px 0;max-width:100%}
body.premium-panels-v80 #modalContent:has(>#playerName) :is(.choice,.avatar-preset,#playerName,#avatarUpload):focus-visible{outline:3px solid #fff0ac;outline-offset:3px}
body.premium-panels-v80 #modalContent .hub-mode-choices{display:grid;grid-template-columns:1fr;gap:14px;margin:22px 0 8px;padding:18px;border:1px solid var(--pp80-rim);border-radius:18px;background:var(--pp80-inset)}
body.premium-panels-v80 #modalContent .hub-mode-choices :is(#hubAccount,#hubGuest){margin:0;min-height:48px;width:100%;font-size:14px}
/* Destructive action is never dressed as the lime progression action. */
body.premium-panels-v80 #modalContent #confirmReset.primary{background:linear-gradient(#f6c3b4,#df917e);color:#4d2025;border-color:#ffd6c7;box-shadow:inset 0 2px #ffe6dc,0 4px 0 #713a3e,0 7px 12px #07162f4d;text-shadow:none}
body.premium-panels-v80 #modalContent :is(#guest-save-conflict,#guest-writer-gate,#account-session-lost){padding:18px;border:1px solid #c9b189a6;border-left:4px solid #e6bb72;border-radius:18px;background:linear-gradient(145deg,#39425d,#202d47)}
body.premium-panels-v80 #modalContent[data-panel-kind="help"]>p{max-width:65ch}
body.premium-panels-v80 #modalContent[data-panel-kind="help"]>p.hint{padding:16px;border:1px solid #879cc270;border-radius:14px;background:var(--pp80-inset);font-size:13px;line-height:1.7}
/* Existing notification placement, visibility duration and animation remain.
 * Reward receiver has inline material properties; only these named visual
 * properties override them, never position, dimensions, timing or input. */
body.premium-panels-v80 #toast{background:var(--pp80-paper);border:1px solid #ffe9b2;border-radius:16px;color:#25314c;box-shadow:inset 0 1px #fffdf2,0 4px 0 #806d454d,0 10px 32px #050c2859;font-size:14px;line-height:1.45;font-weight:750;padding:14px 20px;overflow-wrap:anywhere}
body.premium-panels-v80 .coastal-reward-receiver{background:linear-gradient(135deg,#3b507c,#202e50)!important;color:#fff2bd!important;border-color:#dcca9c!important;border-radius:14px!important;box-shadow:inset 0 1px #eef3ff77,0 4px 0 #0b173b,0 8px 20px #07122f66!important}
@media(max-width:600px){
 body.premium-panels-v80 #modal:has(#playerName,#hubAccount,#confirmReset,#guest-save-conflict,#guest-writer-gate,#account-session-lost,[data-panel-kind="help"]){padding:22px 16px}
 body.premium-panels-v80 #modalContent:is(:has(>#playerName),:has(#hubAccount),:has(#confirmReset),[data-panel-kind="help"])>h2{font-size:24px}
 body.premium-panels-v80 #modalContent :is(#guest-save-conflict,#guest-writer-gate,#account-session-lost){padding:14px}
 body.premium-panels-v80 #modalContent .hub-mode-choices{padding:14px}
 body.premium-panels-v80 #modalContent:has(>#playerName) .choices{gap:10px}
}
body.premium-panels-v80 #modalContent .panel-profession-art{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:12px;background:radial-gradient(ellipse at 50% 25%,#b9c5ff45,transparent 75%);filter:drop-shadow(0 3px 2px #08102780)}
body.premium-panels-v80 #modalContent .panel-profession-art svg{display:block;width:48px;height:48px;max-width:100%;overflow:visible}
/* Actual screenshot corrections: light achievement plaques must keep BOTH
 * title and explanatory text dark, including the generic muted utility. */
body.premium-panels-v80 #player-profile .pp-badge :is(strong,.pp-muted){color:#493e2b}
body.premium-panels-v80 #player-profile .pp-badge .pp-muted{font-size:12px;line-height:1.45;margin-top:4px}
@media(max-width:600px){
 /* Close is in chat-top, not this heading. Reclaim its duplicate reserved gap. */
 body.premium-panels-v80 #chat-panel .chat-heading{padding:10px 12px;margin:6px 0 10px}
 body.premium-panels-v80 #chat-panel .chat-heading h2{font-size:22px;line-height:1.12;margin:0 0 4px;letter-spacing:-.025em}
 body.premium-panels-v80 #chat-panel .chat-heading p{font-size:12px;line-height:1.35;margin:0}
 body.premium-panels-v80 #chat-panel .chat-tabs{gap:4px;padding:5px;margin-bottom:10px}
 body.premium-panels-v80 #chat-panel .chat-tabs>button{flex:1 1 0;min-width:0;min-height:52px;display:flex;flex-direction:column;gap:4px;padding:7px 3px!important;font-size:12px!important;line-height:1.15;white-space:nowrap;word-break:normal;overflow-wrap:normal}
 body.premium-panels-v80 #chat-panel .chat-tabs .chat-icon{height:16px}
 body.premium-panels-v80 #chat-panel .chat-tabs .chat-icon svg{width:16px;height:16px}
 /* Lobby selection is an actionable compact illustrated card, not a poster
  * above an off-screen start link. Actual game boards are unaffected. */
 body.premium-panels-v80 #puzzle-panel .puzzle-intro{padding:12px 0 14px}
 body.premium-panels-v80 #puzzle-panel .puzzle-intro h2{font-family:inherit;font-size:25px;font-weight:750;line-height:1.13;margin:8px 0 10px;letter-spacing:-.025em}
 body.premium-panels-v80 #puzzle-panel .puzzle-intro p{font-size:13px;line-height:1.5;margin:0}
 body.premium-panels-v80 #puzzle-panel .puzzle-choices{gap:12px}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice{display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:14px;row-gap:4px;padding:16px;text-align:left}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>:is(.puzzle-mini-art,.puzzle-port-art){grid-column:1;grid-row:1/3;width:72px;height:72px;align-self:center;margin:0;gap:3px;border-radius:10px}
 body.premium-panels-v80 #puzzle-panel .puzzle-mini-art i{padding:4px;border-radius:5px}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>.puzzle-eyebrow{grid-column:2;align-self:end;font-size:9px;line-height:1.4;letter-spacing:.07em}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>h3{grid-column:2;align-self:start;font-family:inherit;font-size:21px;line-height:1.12;font-weight:750;margin:1px 0 0;letter-spacing:-.02em}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>p{grid-column:1/-1;font-size:12px;line-height:1.5;margin:9px 0 0}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>b{grid-column:1/-1;display:block;padding-top:10px;margin:6px 0 0;border-top:1px solid #afc2eb40;color:#e1ffb5;font-size:13px;line-height:1.35}
}
/* Actual guest settlement is another legacy fragment. Match its result node,
 * not arbitrary dialogs, and keep reward magnitude/claim actions unchanged. */
body.premium-panels-v80 #modal:has(#modalContent>.big-result){background:var(--pp80-shell);border:1px solid var(--pp80-rim);border-radius:24px;box-shadow:inset 0 1px #ecf0ff80,0 0 0 4px #16233d99,0 22px 80px #030a23a6}
body.premium-panels-v80 #modalContent:has(>.big-result)>h2{padding-right:52px;margin:16px 0 18px;color:#fff5df;font-size:clamp(24px,4.5vw,34px);line-height:1.17;letter-spacing:-.025em}
body.premium-panels-v80 #modalContent>.big-result{font-size:clamp(44px,9vw,64px);font-weight:800;letter-spacing:-.04em;color:#d4fa94;text-shadow:0 2px #102343;margin:22px 0;padding:18px 14px;border:1px solid #9fbbd450;border-radius:18px;background:radial-gradient(ellipse at 50% 0,#a7cd9540,transparent 75%),var(--pp80-inset);box-shadow:inset 0 1px #d4e8ff33}
body.premium-panels-v80 #modalContent:has(>.big-result)>p{font-size:14px;line-height:1.6;color:#d0dbed}
/* Guest wardrobe/home/quest catalogues are bare shopitem fragments. */
body.premium-panels-v80 #modalContent:has(>.shopitem)>h2{padding-right:52px;margin:16px 0 18px;font-size:clamp(24px,4.5vw,34px);line-height:1.17;letter-spacing:-.025em;color:#fff5df}
@media(max-width:600px){
 body.premium-panels-v80 #puzzle-panel .puzzle-top{display:flex;align-items:center;gap:10px;padding:8px 42px 8px 10px;min-height:58px;margin-bottom:8px}
 body.premium-panels-v80 #puzzle-panel .puzzle-top>#puzzle-back{flex:0 0 auto;white-space:nowrap;min-width:78px;min-height:44px;font-size:12px;padding:8px 10px}
 body.premium-panels-v80 #puzzle-panel .puzzle-top>span{min-width:0;font-size:8px;line-height:1.4;letter-spacing:.07em;overflow-wrap:normal;word-break:normal}
}
/* Structural fallback approved for legacy fragments: ONLY the direct dialog
 * heading, never nested feature headings, shares the close-button reservation. */
body.premium-panels-v80 #modalContent>h2{padding-inline-end:52px;max-width:100%;box-sizing:border-box;font-size:clamp(24px,4.5vw,34px);line-height:1.17;letter-spacing:-.025em;overflow-wrap:break-word}
@media(max-width:600px){body.premium-panels-v80 #modalContent>h2{font-size:24px}}
/* Desktop lobby first-viewport acceptance: retain two illustrated choices,
 * but remove the oversized editorial masthead that pushed actions off-screen. */
@media(min-width:601px){
 body.premium-panels-v80 #puzzle-panel .puzzle-intro{padding:18px 0 18px}
 body.premium-panels-v80 #puzzle-panel .puzzle-intro h2{font-family:inherit;font-size:34px;font-weight:750;line-height:1.12;letter-spacing:-.025em;margin:10px 0}
 body.premium-panels-v80 #puzzle-panel .puzzle-intro p{font-size:14px;line-height:1.5;margin:0}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice{padding:18px}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>:is(.puzzle-mini-art,.puzzle-port-art){width:100px;margin:0 auto 16px}
 body.premium-panels-v80 #puzzle-panel .puzzle-mini-art i{padding:6px}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>h3{font-family:inherit;font-weight:750;font-size:25px;line-height:1.2;margin:8px 0}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>p{font-size:13px;line-height:1.5;margin:8px 0}
 body.premium-panels-v80 #puzzle-panel .puzzle-choice>b{margin-top:6px;color:#e1ffb5}
}
/* Preserve approximately square falling-block illustration cells after scaling
 * its five-column/four-row preview; never stretch the actual game canvas. */
@media(min-width:601px){body.premium-panels-v80 #puzzle-panel .puzzle-choice>.puzzle-port-art{height:80px;gap:3px}}
@media(max-width:600px){body.premium-panels-v80 #puzzle-panel .puzzle-choice>.puzzle-port-art{height:58px;gap:3px}}
/* Actual active-game screenshot: coastal paper rules still supplied dark ink
 * inside the now-navy aside. Override only that instrument, not board paper,
 * rules disclosure, tiles, preview instructions or goal badges. */
body.premium-panels-v80 #puzzle-panel .puzzle-aside .puzzle-stats span{color:#d4def0;font-size:12px;line-height:1.35}
body.premium-panels-v80 #puzzle-panel .puzzle-aside .puzzle-stats b{color:#fff0b2;font-weight:800}
body.premium-panels-v80 #puzzle-panel .puzzle-aside .puzzle-announcement{color:#d8f3b0;font-weight:700;font-size:13px;line-height:1.45}

/* Extended actual-module QA: reserve the external Close control in real
 * nested feature titles; do not target unrelated card headings. */
body.premium-panels-v80 #modalContent :is(#contacts-panel,#vip-panel,#checkout-panel)>h2{box-sizing:border-box;padding-inline-end:52px;line-height:1.18;overflow-wrap:normal;word-break:normal}
body.premium-panels-v80 #modalContent:has(>#playerName) p.upload-note{font-size:12px!important;line-height:1.55!important;color:#d3ddef!important}
@media(max-width:600px){
 body.premium-panels-v80 #modalContent :is(#contacts-panel,#vip-panel,#checkout-panel)>h2{font-size:24px;letter-spacing:-.025em}
 body.premium-panels-v80 #modalContent #mastery-panel .mastery-top{gap:8px;padding:8px 42px 8px 10px;min-height:60px}
 body.premium-panels-v80 #modalContent #mastery-panel .mastery-top>[data-mastery-back]{flex:0 0 auto;min-width:100px;min-height:44px!important;padding:8px 10px!important;white-space:nowrap;font-size:12px}
 body.premium-panels-v80 #modalContent #mastery-panel .mastery-top>span{min-width:0;font-size:8px;line-height:1.4;letter-spacing:.06em}
}
@media(max-width:360px){
 /* Long Russian identity words need the full line beneath Close, not an
  * arbitrary internal word break in the remaining narrow title column. */
 body.premium-panels-v80 #modalContent:has(>#playerName)>h2{margin-top:36px;padding-inline-end:0;font-size:23px;line-height:1.18;overflow-wrap:normal;word-break:normal}
}
/* Protected guest-save notices reserve the existing 44px dialog close control. */
body.premium-panels-v80 #modalContent :is(#guest-storage-issue,#guest-legacy-conflict)>h2{
 padding-inline-end:48px;overflow-wrap:break-word;
}
