/* Bright public/player components.
 * The route shell exclusively owns body.portal-bright. Administration is excluded.
 * Presentation only: no generated claims, amounts, statuses or interactive controls.
 */

/* Commerce — large supplied artwork, readable composition and clear coin amounts. */
body.portal-bright .cases-page {
  --case-red: #ff284b;
  --case-red-bright: #ff5572;
  --case-steel: #f1f5f9;
  --case-muted: #a8bfd0;
  --case-line: #293f50;
  --case-panel: #0d151e;
  --case-black: #080d12;
  color: #f1f5f9;
}
body.portal-bright .cases-page :is(.muted,.lead) { color: #a8bfd0; }
body.portal-bright .cases-page .eyebrow { color: #ff7189; }
body.portal-bright .cases-page .btn-primary {
  background: linear-gradient(135deg,#c91c3d,#a8102d);
  border-color: #ff4965;
  color: #fff;
  box-shadow: 0 5px 24px #ff284b25;
}
body.portal-bright .cases-page .btn-primary:hover:not(:disabled) {
  background: linear-gradient(135deg,#df2448,#be1635);
  border-color: #ff7990;
}
body.portal-bright .cases-page .btn-secondary {
  background: linear-gradient(145deg,#192c3b,#101b27);
  border-color: #3b586f;
  color: #eef4f9;
}
body.portal-bright .cases-page .btn-primary:disabled {
  background: #2a2230; border-color: #5b3b4c; color: #c7a8b3; box-shadow: none;
}
body.portal-bright .cases-page :is(.input,.select) {
  background: #09121b; border-color: #3a5265; color: #f1f5f9;
}
body.portal-bright :is(.cases-subnav,.st-nav) {
  border-color: #293f50; border-radius: 7px; background: #0a151f;
  padding: 6px; gap: 5px; scrollbar-color: #49657c #0a151f;
}
body.portal-bright :is(.cases-subnav,.st-nav)>a {
  min-height: 44px; color: #b8cddd; font-size: 12px;
}
body.portal-bright :is(.cases-subnav,.st-nav)>a.active {
  background: linear-gradient(100deg,#59152980,#32182770);
  box-shadow: inset 0 -2px #ff284b; color: #fff;
}
body.portal-bright :is(.cases-subnav,.st-nav)>a:hover { background-color: #182a3a; color: #fff; }
body.portal-bright .cases-hero {
  min-height: 354px; border-color: #754251; border-radius: 9px;
  background: radial-gradient(ellipse at 80% 70%,#95402433,transparent 55%),
    linear-gradient(120deg,#10202c,#0a111b 65%,#1f141f);
  box-shadow: inset 0 1px #9c65752b,0 16px 45px #0003;
}
body.portal-bright .cases-hero:after { background: #ff284b; box-shadow: 0 0 24px #ff284b80; }
body.portal-bright .cases-hero-copy { padding: 34px 0 32px 30px; }
body.portal-bright .cases-hero-copy>p { color: #bccfdc; font-size: 13px; }
body.portal-bright .cases-hero h2 { color: #f1f5f9; letter-spacing: .01em; }
body.portal-bright .cases-hero h2 span { color: #ff4965; }
body.portal-bright .cases-hero-art .case-art img {
  filter: drop-shadow(0 20px 24px #0009) drop-shadow(0 0 24px #ffd36925);
}
body.portal-bright :is(.cases-hero-stamp,.case-art-code) { color: #8aabbe; }
body.portal-bright :is(.cases-exchange,.cases-wallet-pill>.icon:first-child,.cases-wallet-pill>.icon:last-child) { color: #ffd369; }
body.portal-bright .cases-exchange span { color: #a8bfd0; }
body.portal-bright .cases-wallet-pill {
  background: linear-gradient(110deg,#35281880,#111e2b);
  border-color: #715631; border-radius: 6px;
}
body.portal-bright .cases-wallet-pill small { color: #c4c7be; }
body.portal-bright :is(.cases-grid,.product-grid,.case-owned-grid) { gap: 18px; }
body.portal-bright :is(.case-card,.case-owned-card,.product-card) {
  border-color: #30495c; border-radius: 8px;
  background: linear-gradient(150deg,#142431dc,#0a131dcf 72%);
  box-shadow: 0 8px 22px #0002; overflow: hidden;
}
body.portal-bright :is(.case-card,.case-owned-card,.product-card):hover {
  border-color: #bd405d; box-shadow: 0 12px 28px #0005,0 0 22px #ff284b0d;
}
body.portal-bright .case-tier-elite { border-color: #89682f; }
body.portal-bright .case-tier-elite:hover { border-color: #ffd369; }
body.portal-bright .case-tier-veteran { border-color: #6b507b; }
body.portal-bright .case-card-top { color: #b9d0e1; font-size: 10px; }
body.portal-bright .case-card-top span:last-child { color: #91adbf; }
body.portal-bright .case-card-image {
  background: radial-gradient(ellipse at 50% 75%,#ff39551b,transparent 67%); padding: 18px 9px 0;
}
body.portal-bright .case-art-halo { background: radial-gradient(ellipse,#ff284b25,transparent 68%); }
body.portal-bright .case-art-veteran .case-art-halo { background: radial-gradient(ellipse,#c780ff30,transparent 68%); }
body.portal-bright .case-art-elite .case-art-halo { background: radial-gradient(ellipse,#ffd36935,transparent 68%); }
body.portal-bright .case-card-copy { padding: 8px 20px 22px; }
body.portal-bright .case-card-copy .eyebrow { color: #c18c9b; font-size: 9px; }
body.portal-bright .case-card-copy h2 { font-size: clamp(26px,2.4vw,34px); letter-spacing: .01em; }
body.portal-bright .case-card-copy h2 a { color: #f1f5f9; }
body.portal-bright .case-card-copy>p { color: #a8bfd0; font-size: 12px; }
body.portal-bright .case-card-meta { border-color: #293f50; color: #a8bfd0; font-size: 11px; }
body.portal-bright .case-card-meta span:last-child { color: #e0c59d; }
body.portal-bright :is(.case-price,.product-price,.product-detail-price,.case-buy-price strong,.case-balance-number,.case-tx-amount.positive) { color: #ffd369; }
body.portal-bright :is(.case-price,.product-price,.case-buy-price strong)>.nail-icon { color: #ffd369; }
body.portal-bright .case-card-footer { flex-wrap: wrap; gap: 12px; }
body.portal-bright .case-detail-hero { gap: 28px; margin-bottom: 32px; }
body.portal-bright .case-detail-art {
  border-color: #6a4d3b; border-radius: 8px;
  background: radial-gradient(ellipse at 50% 60%,#b373243b,transparent 70%),linear-gradient(145deg,#142331,#0b121c);
}
body.portal-bright .case-detail-art .case-art img { filter: drop-shadow(0 20px 24px #0009) drop-shadow(0 0 22px #ffd36915); }
body.portal-bright .case-edition { border-color: #38464f; color: #f3d192; }
body.portal-bright .case-edition>span { color: #a8bfd0; }
body.portal-bright .case-detail-copy h1 { font-size: clamp(34px,4vw,56px); }
body.portal-bright .case-detail-copy>p.muted { color: #b9cbd8; font-size: 13px; }
body.portal-bright .case-detail-facts { color: #bdd1df; font-size: 12px; }
body.portal-bright .case-detail-facts .icon { color: #ffd369; }
body.portal-bright .case-buy-form {
  background: linear-gradient(120deg,#172332,#121722);
  border-color: #67404d; padding: 22px; border-radius: 7px;
}
body.portal-bright :is(.case-buy-price>span,.case-buy-controls .field-label,.case-buy-balance,.case-detail-copy>small) { color: #b2c5d5; font-size: 12px; }
body.portal-bright .case-buy-price strong { font-size: 30px; }
body.portal-bright .case-buy-balance { border-color: #293f50; line-height: 1.6; }
body.portal-bright .case-buy-balance>a { color: #ff7e95; }
body.portal-bright .case-odds-grid { gap: 14px; }
body.portal-bright .case-drop {
  background: linear-gradient(145deg,#132331,#0c1620);
  border-color: #30495c; border-bottom-color: var(--case-rarity,#90a7bc); border-radius: 7px;
}
body.portal-bright .case-drop-percent {
  padding: 5px 8px; border: 1px solid #456071; border-radius: 4px;
  background: #09121be8; color: #ffd369; font-weight: 700;
}
body.portal-bright .case-drop-copy { padding: 16px; }
body.portal-bright .case-drop-copy h3 { color: #f1f5f9; line-height: 1.25; }
body.portal-bright :is(.case-rarity,.case-drop-quantity,.case-content-note,.cases-process p) { color: #a8bfd0; font-size: 12px; }
body.portal-bright .cases-process { border-color: #293f50; }
body.portal-bright .cases-process>div>span { color: #ff708a; }
body.portal-bright .cases-process h3 { color: #eff5fa; font-size: 14px; }
body.portal-bright :is(.case-owned-copy,.case-history-main) h3 { color: #f1f5f9; }
body.portal-bright .case-owned-copy small { color: #b0c5d4; }
body.portal-bright .case-history-row { background: #0e1b27; border-color: #293f50; border-radius: 7px; }
body.portal-bright :is(.case-history-main p,.case-history-delivery,.case-history-chance) { color: #b5cad8; }
body.portal-bright :is(.case-history-image,.case-history-metrics) { background-color: #142535; border-color: #30495c; }
body.portal-bright .case-wallet-layout { gap: 22px; }
body.portal-bright .case-balance-card {
  border-color: #997139; border-radius: 8px;
  background: radial-gradient(ellipse at 85% 0,#cc9c3c33,transparent 60%),linear-gradient(135deg,#1f2b32,#111c27 65%,#2a2121);
  box-shadow: inset 0 1px #ffd36925,0 12px 34px #0004;
}
body.portal-bright .case-balance-number strong { color: #ffd369; font-size: clamp(40px,4vw,62px); }
body.portal-bright .case-balance-number>.icon { color: #ffd369; }
body.portal-bright :is(.case-balance-top,.case-balance-footer,.case-balance-card>small,.case-balance-card>p) { color: #d8ccb6; }
body.portal-bright .case-balance-top img { border-color: #a18447; }
body.portal-bright :is(.case-wallet-info,.case-storage-summary,.cases-demo-note) {
  background: #10202bc9; border-color: #35546a; color: #b8cddd; border-radius: 6px;
}
body.portal-bright .case-wallet-info>.icon { color: #ffd369; }
body.portal-bright :is(.case-wallet-info p,.cases-demo-note p,.case-table-small) { color: #adc4d6; }
body.portal-bright .case-rule-number { color: #ffd369; }
body.portal-bright .product-art { background: radial-gradient(ellipse at 50% 80%,#54718b25,transparent 65%),#0b1722; }
body.portal-bright .product-card .product-art { aspect-ratio: 1.2; height: auto; }
body.portal-bright .product-copy { padding: 20px; }
body.portal-bright .product-copy h3 { color: #eff5fa; font-size: 22px; }
body.portal-bright .product-copy>p { color: #a8bfd0; font-size: 12px; line-height: 1.7; }
body.portal-bright .product-footer { gap: 12px; flex-wrap: wrap; border-color: #293f50; }
body.portal-bright .product-detail { gap: 28px; }
body.portal-bright .product-detail>.product-art { border: 1px solid #3c5365; border-radius: 8px; }
body.portal-bright .product-description { color: #bacedd; line-height: 1.8; }
body.portal-bright :is(.spec-row,.summary-row,.order-line) { border-color: #293f50; }
body.portal-bright :is(.store-banner,.order-card,.cart-item,.payment-option) {
  border-color: #30495c; background-color: #0e1c28; border-radius: 7px;
}
body.portal-bright .store-banner { background: linear-gradient(105deg,#251827,#112332 70%); }
body.portal-bright .cart-item { gap: 16px; }
body.portal-bright .qty-control { background: #09131d; border: 1px solid #39566c; border-radius: 5px; }
body.portal-bright .qty-control button { min-width: 36px; min-height: 38px; }
body.portal-bright :is(.order-head,.order-summary) { border-color: #293f50; }
body.portal-bright :is(.summary-row.total,.order-summary .price) { color: #ffd369; }
body.portal-bright .checkout-steps { border-color: #293f50; color: #a8bfd0; }
body.portal-bright .checkout-steps .active { color: #ffd369; }
body.portal-bright .sp-cart-promo { border-color: #39566c; background-color: #0b1925; }

/* Personal records: monetary balance, game statistics, confirmed delivery. */
body.portal-bright :is(.account-hero,.c-profile-banner) {
  background: radial-gradient(ellipse at 95% 0,#92273b28,transparent 55%),linear-gradient(120deg,#152533,#0c1722);
  border: 1px solid #405367; border-radius: 8px;
}
body.portal-bright .account-hero { padding: 24px; gap: 20px; }
body.portal-bright .account-hero>.avatar-lg { border: 2px solid #ff4965; border-radius: 7px; box-shadow: 0 0 20px #ff284b18; }
body.portal-bright :is(.account-hero h2,.c-profile-identity h2) { color: #f1f5f9; font-size: clamp(24px,2.8vw,34px); }
body.portal-bright :is(.account-hero p,.c-profile-identity p) { color: #b2c9db; overflow-wrap: anywhere; }
body.portal-bright .wallet-overview {
  background: linear-gradient(105deg,#3f2d1980,#14212e);
  border-color: #826334; border-radius: 7px; padding: 20px 24px;
}
body.portal-bright .wallet-overview>.icon { color: #ffd369; }
body.portal-bright .wallet-overview h3 { color: #ffd369; font-size: 27px; }
body.portal-bright .wallet-overview p { color: #c4c9c7; }
body.portal-bright .account-shortcut { border-color: #30495c; background: linear-gradient(130deg,#142534,#0d1823); }
body.portal-bright .account-shortcut>.icon:first-child { color: #ff6e88; }
body.portal-bright .account-shortcut small { color: #a8bfd0; }
body.portal-bright .next-quest { border-color: #293f50; background: #10213080; border-radius: 5px; }
body.portal-bright .next-quest>.icon { color: #ffd369; }
body.portal-bright :is(.c-combat-grid,.profile-activity) { border-color: #30495c; }
body.portal-bright :is(.profile-activity-caption,.profile-activity-observations,.profile-activity-day-mark) { color: #a8bfd0; }
body.portal-bright .storage-instructions { background: #122535bd; border-color: #42647d; border-radius: 7px; }
body.portal-bright .storage-instructions>span { color: #ffd369; }
body.portal-bright .storage-instructions p { color: #b9cedd; line-height: 1.75; }
body.portal-bright .storage-connection { background: #0c1b26; border-color: #30495c; }
body.portal-bright .storage-connection p { color: #c2d6e4; }
body.portal-bright .storage-tabs { overflow-x: auto; scrollbar-width: thin; }
body.portal-bright .storage-tabs .tab { flex-shrink: 0; min-height: 44px; }
body.portal-bright .storage-item { background: linear-gradient(110deg,#152634,#0c1823); border-color: #30495c; border-radius: 7px; }
body.portal-bright .storage-item-art { background: radial-gradient(ellipse,#38556755,#10202d); border-color: #334d61; }
body.portal-bright .storage-item-copy>small { color: #d7b985; letter-spacing: .08em; }
body.portal-bright .storage-item-copy h2 { color: #f1f5f9; font-size: 22px; }
body.portal-bright .storage-item-copy>p { color: #a8bfd0; overflow-wrap: anywhere; }
body.portal-bright .storage-pagination { border-color: #293f50; color: #aec4d4; }

/* Community pages use rows, tables and editorial layouts alongside artwork. */
body.portal-bright :is(.c-filterbar,.c-wiki-search) {
  background: linear-gradient(120deg,#142735,#0b1823); border-color: #355268; border-radius: 7px;
}
body.portal-bright :is(.c-search,.c-rank-tabs,.c-section-tabs) { min-width: 0; }
body.portal-bright :is(.c-rank-tabs,.c-section-tabs) { overflow-x: auto; scrollbar-width: thin; }
body.portal-bright .c-rank-tabs .tab { white-space: nowrap; min-height: 44px; }
body.portal-bright :is(.c-person strong,.c-person a,.c-players-table strong) { color: #f1f5f9; }
body.portal-bright :is(.c-person small,.c-cell-small,.c-table-footer) { color: #abc3d5; }
body.portal-bright .c-podium-card {
  background: radial-gradient(ellipse at 50% 0,#42658138,transparent 70%),#10202c;
  border-color: #3b566d; border-radius: 7px;
}
body.portal-bright .c-podium-card.c-place-1 {
  background: radial-gradient(ellipse at 50% 0,#a6792b40,transparent 70%),#15212a;
  border-color: #b48a40; box-shadow: 0 8px 26px #0003,0 0 28px #ffd3690c;
}
body.portal-bright .c-podium-score { color: #ffd369; }
body.portal-bright .c-place-number { color: #a8bfd04d; }
body.portal-bright .c-podium-card.c-place-1 .c-place-number { color: #ffd36955; }
body.portal-bright .c-podium-card h2 { color: #eff5fa; }
body.portal-bright .c-podium-card>small { color: #a8bfd0; }
body.portal-bright :is(.c-event-card,.c-news-card,.c-wiki-card) {
  border-color: #30495c; border-radius: 8px;
  background: linear-gradient(145deg,#142431,#0d1722); box-shadow: 0 8px 22px #0002;
}
body.portal-bright :is(.c-event-card,.c-news-card,.c-wiki-card):hover { border-color: #bd405d; }
body.portal-bright .c-card-image { background-color: #0b1721; }
body.portal-bright :is(.c-card-body,.c-card-footer) { border-color: #293f50; }
body.portal-bright .c-card-body h2 { color: #f1f5f9; font-size: 27px; }
body.portal-bright :is(.c-card-body p,.c-event-meta,.c-meta-line) { color: #b1c8d9; }
body.portal-bright :is(.c-article-cover,.c-detail-cover) { border: 1px solid #3b5265; border-radius: 8px; overflow: hidden; }
body.portal-bright .c-article-meta { color: #a8bfd0; font-size: 12px; }
body.portal-bright :is(.c-article-body,.c-wiki-article,.c-rule-section) { color: #d4e1eb; }
body.portal-bright :is(.c-article-body p,.c-wiki-article>section p,.c-rule-section li>p) { color: #c4d5e1; font-size: 14px; line-height: 1.85; }
body.portal-bright :is(.c-article-body h2,.c-wiki-article>section h2,.c-rule-section h2) { color: #f1f5f9; }
body.portal-bright :is(.c-article-next,.c-wiki-help,.c-rules-accept) {
  background: linear-gradient(110deg,#2f1b2980,#132635);
  border-color: #5d4054; border-radius: 7px;
}
body.portal-bright :is(.c-rules-nav,.c-section-index) { background: #0c1924; border-color: #30495c; border-radius: 6px; }
body.portal-bright :is(.c-rules-nav,.c-section-index) :is(a,button) { color: #bed1e0; min-height: 40px; }
body.portal-bright :is(.c-rules-nav,.c-section-index) :is(a,button):hover { color: #ff8299; }
body.portal-bright .c-rule-section { border-color: #293f50; }
body.portal-bright :is(.c-feature-icon,.c-helpful,.c-check-list li:before) { color: #ffd369; }
body.portal-bright :is(.c-info-list>div,.c-component-list>div,.c-related-list>a) { border-color: #293f50; }
body.portal-bright :is(.c-info-list dt,.c-info-list small,.c-component-list small) { color: #a8bfd0; }
body.portal-bright .c-chat-layout { background: #0d1924; border-color: #355268; border-radius: 8px; overflow: hidden; }
body.portal-bright .c-chat-channels { background: #0b1722; border-color: #293f50; }
body.portal-bright .c-channel { color: #b9d0e0; border-color: #30495c; }
body.portal-bright .c-channel.active { background: #531b2d80; color: #fff; border-color: #b43954; }
body.portal-bright :is(.c-chat-top,.c-chat-compose) { background: #10202c; border-color: #293f50; }
body.portal-bright .c-chat-log { background: linear-gradient(145deg,#0b1822,#111d2a); }
body.portal-bright .c-message { background: #142736; border-color: #334e63; }
body.portal-bright .c-message.is-mine { background: #2c1d2c; border-color: #704050; }
body.portal-bright :is(.c-message p,.c-thread-message p) { color: #d4e2ec; font-size: 13px; line-height: 1.75; }
body.portal-bright :is(.c-message-head strong,.c-thread-message strong) { color: #f1f5f9; }
body.portal-bright :is(.c-message-head time,.c-channel-note,.c-chat-rules,.c-compose-bottom small) { color: #a8bfd0; }
body.portal-bright :is(.c-list-header,.c-reply-form,.c-thread-closed) { background: #112331; border-color: #293f50; }
body.portal-bright .c-ticket-row { background: #0d1c28; border-color: #293f50; }
body.portal-bright .c-ticket-row:hover { background: #192839; }
body.portal-bright .c-thread-messages { background: #0b1822; }
body.portal-bright .c-thread-message { background: #132635; border-color: #334e63; border-radius: 6px; }
body.portal-bright .c-thread-message.is-admin { background: #2e1e2b; border-color: #754052; }
body.portal-bright .c-status-hero { background: linear-gradient(130deg,#142c3c,#0c1926); border-color: #3d6177; border-radius: 8px; }
body.portal-bright .c-status-hero p:not(.eyebrow) { color: #b8cfdf; }
body.portal-bright :is(.c-incident,.c-component-list) { border-color: #293f50; }
body.portal-bright .c-chart-axis { color: #abc3d5; }
body.portal-bright :is(.toggle-row,.portal-profile-preferences) { border-color: #293f50; }
body.portal-bright .toggle-row p { color: #adc5d6; }
body.portal-bright .access-card { background: radial-gradient(ellipse at 50% 0,#6d223840,transparent 65%),#0e1c28; border-color: #5c4055; }
body.portal-bright .access-card>.icon { color: #ff6884; }
body.portal-bright :is(.screen-group,.handoff-banner) { border-color: #30495c; background-color: #10202c; }
body.portal-bright .screen-link { color: #c4d8e7; border-color: #293f50; }
body.portal-bright .screen-link:hover { color: #fff; background-color: #2e1b2a; }

/* World — preserve existing map transforms and exact public geometry. */
body.portal-bright .wm-shell {
  --wm-panel: #0d1a26; --wm-line: #345268;
  background: #09151e; border-color: #3c5d73; border-radius: 8px;
}
body.portal-bright :is(.wm-toolbar,.wm-sidebar,.wm-source) { background-color: #0e202d; border-color: #30495c; }
body.portal-bright :is(.wm-layers,.wm-selection,.wm-result-list) { border-color: #30495c; }
body.portal-bright .wm-toolbar button { border-color: #3b586f; color: #dbe9f3; background-color: #132a3b; }
body.portal-bright .wm-toolbar button.active { border-color: #ff4965; background-color: #532335; color: #fff; }
body.portal-bright .wm-point-label { color: #f1f5f9; text-shadow: 0 1px 4px #000,0 0 6px #000; }
body.portal-bright :is(.wm-search,.wm-list-title,.wm-coordinates,.wm-help,.wm-source,.wm-map-note) { color: #b9d1e2; }
body.portal-bright :is(.wm-tools,.wm-overlay) { border-color: #46667b; }
body.portal-bright :is(.wm-fallback,.wm-map-note) { background: #102332; border-color: #3b586f; }
body.portal-bright :is(.w-dungeon-card,.w-quest-card) {
  background: linear-gradient(145deg,#132735,#0d1925);
  border-color: #365268; border-radius: 8px; overflow: hidden;
}
body.portal-bright :is(.w-dungeon-card,.w-quest-card):hover { border-color: #bd405d; }
body.portal-bright :is(.w-dungeon-card-body,.w-quest-card-top,.w-quest-card-bottom) { border-color: #293f50; }
body.portal-bright :is(.w-dungeon-card p,.w-quest-card p,.w-dungeon-meta,.w-quest-meta) { color: #aec7d9; }
body.portal-bright :is(.w-dungeon-detail-cover,.w-dungeon-feature,.portal-quest-cover,.w-story-banner) { border-color: #3a566d; border-radius: 8px; }
body.portal-bright :is(.w-booking-panel,.w-expedition-callout,.w-quest-npc,.w-intel-note) {
  background: linear-gradient(135deg,#162c3d,#10202b); border-color: #3c617a; border-radius: 7px;
}
body.portal-bright :is(.w-step-number,.w-quest-icon,.w-dungeon-number,.w-code) { color: #ffd369; }
body.portal-bright :is(.w-quest-brief,.w-quest-objectives,.w-rewards,.w-checklist,.w-chain,.w-definition-list) { border-color: #30495c; }
body.portal-bright :is(.w-quest-brief p,.w-expedition-steps p,.w-definition-list dd,.w-footnote) { color: #b5cddd; }
body.portal-bright .nf-intro { border-color: #355268; background-color: #0e1e2a; }
body.portal-bright :is(.nf-card,.nf-npc-group,.nf-detail-hero,.nf-detail-section) {
  border-color: #3b5367; background-color: #0d1b27; border-radius: 8px;
}
body.portal-bright .nf-card-copy { background: linear-gradient(180deg,#122432,#0c1723); }
body.portal-bright :is(.nf-card-copy h2,.nf-detail-copy h1,.nf-detail-copy h2) { color: #f1f5f9; }
body.portal-bright :is(.nf-card-copy p,.nf-note,.nf-story,.nf-detail-copy>p,.nf-explainer p) { color: #b7ccdc; }
body.portal-bright :is(.nf-metric,.nf-metrics,.nf-member,.nf-roster,.nf-members) { border-color: #30495c; }
body.portal-bright .nf-metric strong { color: #f1f5f9; }
body.portal-bright :is(.nf-metric small,.nf-member-copy small,.nf-map-credit,.nf-map-notice) { color: #abc4d7; }
body.portal-bright :is(.hq-hero,.hq-panel,.hq-access) {
  border-color: #3a556b; background: linear-gradient(135deg,#152a39,#0c1925); border-radius: 8px;
}
body.portal-bright .hq-eyebrow { color: #ff7c94; }
body.portal-bright .hq-hero-copy h1 { color: #f1f5f9; }
body.portal-bright :is(.hq-description,.hq-explanation,.hq-entry-note,.hq-person-copy small) { color: #b7cddd; }
body.portal-bright :is(.hq-metric,.hq-history-list,.hq-person,.hq-roster) { border-color: #30495c; }
body.portal-bright .hq-person-rating { color: #ffd369; }

/* Channels and author tools — every live/offline state still comes from API. */
body.portal-bright :is(.st-directory-banner,.st-help-card,.st-partner-pitch) {
  background: radial-gradient(ellipse at 90% 25%,#8e25412b,transparent 60%),linear-gradient(120deg,#162b3a,#0d1925);
  border-color: #4b4a63; border-radius: 8px;
}
body.portal-bright .st-card { background: #102130; border-color: #365268; border-radius: 8px; }
body.portal-bright .st-card:hover { border-color: #bd405d; }
body.portal-bright .st-card-copy { background: linear-gradient(145deg,#132938,#0b1925); }
body.portal-bright .st-card-title { color: #f1f5f9; }
body.portal-bright :is(.st-card-author,.st-note,.st-small-note,.st-card-copy>p) { color: #aec6d7; }
body.portal-bright .st-preview { background-color: #09131d; }
body.portal-bright .st-preview-play { border-color: #ff6b84; color: #fff; background-color: #b01939e6; }
body.portal-bright :is(.st-current-player,.st-player,.st-stage) { border-color: #355268; background-color: #09121c; }
body.portal-bright .st-stage-center { color: #bed2e2; }
body.portal-bright :is(.st-channel-details,.st-channel-fact,.st-channel-link) { border-color: #30495c; }
body.portal-bright .st-channel-url { color: #afd6f2; overflow-wrap: anywhere; }
body.portal-bright :is(.sa-session,.sa-explanation,.sa-platform,.sa-chart) { border-color: #355268; background-color: #0c1d2a; border-radius: 7px; }
body.portal-bright :is(.sa-coverage,.sa-facts,.sa-pagination,.sa-viewer-summary) { border-color: #30495c; color: #b4cddd; }
body.portal-bright .sa-chart-line { stroke: #ffd369; }
body.portal-bright .sa-chart-grid { stroke: #355268; }
body.portal-bright .sa-title { color: #f1f5f9; }
body.portal-bright :is(.sc-project,.sc-editor,.sc-stat-panel,.sc-preview,.sc-empty) {
  border-color: #3b5367; background-color: #0e1d29; border-radius: 7px;
}
body.portal-bright .sc-project-body { background: linear-gradient(135deg,#152a39,#0c1925); }
body.portal-bright :is(.sc-project-body p,.sc-review-note,.sc-author) { color: #b8cddd; }
body.portal-bright .sc-project-price strong { color: #ffd369; }

/* Layout adapts within the public shell; maps and table scroll stay local. */
body.portal-bright :is(.cases-page,.storage-page,.nf-page,.hq-page,.sa-page,.st-profile-layout,.c-detail-grid,.w-detail-columns,.split-layout) { min-width: 0; }
body.portal-bright :is(.case-card,.product-card,.order-card,.storage-item,.c-news-card,.c-event-card,.st-card,.nf-card,.hq-panel) { overflow-wrap: anywhere; }
body.portal-bright :is(.c-article-body,.c-rule-section,.c-wiki-article) :is(img,video) { max-width: 100%; height: auto; }
body.portal-bright :is(.c-article-body,.c-rule-section,.c-wiki-article) pre { overflow-x: auto; max-width: 100%; }

@media (max-width: 1200px) {
  body.portal-bright :is(.cases-grid,.product-grid,.case-owned-grid) { grid-template-columns: repeat(2,minmax(0,1fr)); }
  body.portal-bright .case-odds-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  body.portal-bright .case-detail-hero { gap: 22px; }
  body.portal-bright .cases-hero-copy { padding-left: 26px; }
  body.portal-bright .case-card-copy { padding: 8px 18px 20px; }
}
@media (max-width: 1024px) {
  body.portal-bright :is(.case-wallet-layout,.product-detail,.split-layout) { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.portal-bright .product-detail>.product-art { max-height: 390px; }
  body.portal-bright :is(.case-wallet-layout .case-balance-card,.case-wallet-layout .case-topup-form) { min-width: 0; }
  body.portal-bright .cases-hero { min-height: 330px; }
  body.portal-bright .cases-hero-copy { padding: 28px 0 28px 24px; }
  body.portal-bright .cases-hero h2 { font-size: 38px; }
  body.portal-bright :is(.c-detail-grid,.w-detail-columns,.st-profile-layout,.st-dashboard-layout,.st-apply-layout) { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .sa-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 768px) {
  body.portal-bright :is(.cases-subnav,.st-nav) { margin-bottom: 20px; }
  body.portal-bright :is(.cases-subnav,.st-nav)>a { padding: 10px 13px; }
  body.portal-bright .cases-hero { min-height: 0; grid-template-columns: 1.1fr .9fr; margin-bottom: 24px; }
  body.portal-bright .cases-hero-copy { padding: 25px 0 25px 22px; }
  body.portal-bright .cases-hero h2 { font-size: 33px; }
  body.portal-bright .cases-hero-copy>p { font-size: 12px; }
  body.portal-bright .cases-hero-art>.case-art { width: 115%; }
  body.portal-bright .case-detail-hero { grid-template-columns: minmax(0,1fr); gap: 20px; }
  body.portal-bright .case-detail-art>.case-art { max-height: 360px; aspect-ratio: 1.4; }
  body.portal-bright .case-detail-copy { padding: 0; }
  body.portal-bright .case-detail-copy h1 { font-size: 38px; }
  body.portal-bright .case-odds-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  body.portal-bright :is(.cases-grid,.product-grid,.case-owned-grid) { gap: 14px; }
  body.portal-bright .case-card-copy { padding: 8px 15px 18px; }
  body.portal-bright .case-card-copy h2 { font-size: 28px; }
  body.portal-bright .case-card-meta { flex-wrap: wrap; gap: 6px; }
  body.portal-bright .case-price { font-size: 16px; }
  body.portal-bright .case-card-footer .btn { min-height: 40px; }
  body.portal-bright .product-copy { padding: 16px; }
  body.portal-bright .product-copy h3 { font-size: 21px; }
  body.portal-bright .product-footer .btn { min-height: 40px; }
  body.portal-bright .cases-process { grid-template-columns: minmax(0,1fr); gap: 20px; margin-top: 26px; }
  body.portal-bright .case-buy-controls { flex-wrap: wrap; }
  body.portal-bright .case-buy-controls>.btn { min-width: 170px; }
  body.portal-bright .account-hero { flex-wrap: wrap; padding: 20px; gap: 15px; }
  body.portal-bright .wallet-overview { flex-wrap: wrap; padding: 20px; }
  body.portal-bright .wallet-overview-actions { margin-left: 0; flex-wrap: wrap; }
  body.portal-bright .storage-item { gap: 15px; }
  body.portal-bright .storage-item-copy h2 { font-size: 20px; }
  body.portal-bright .storage-item-actions { min-width: 0; }
  body.portal-bright .storage-pagination { flex-wrap: wrap; gap: 14px; }
  body.portal-bright .c-card-body { padding: 22px; }
  body.portal-bright .c-card-body h2 { font-size: 25px; }
  body.portal-bright .c-profile-banner { padding: 22px; }
  body.portal-bright .wm-viewport { min-height: 340px; }
  body.portal-bright .wm-toolbar { flex-wrap: wrap; }
  body.portal-bright .nf-detail-copy { min-width: 0; }
  body.portal-bright .sa-filters { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .st-channel-links { min-width: 0; }
}
@media (max-width: 540px) {
  body.portal-bright :is(.cases-grid,.product-grid,.case-owned-grid) { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .cases-hero { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .cases-hero-copy { padding: 25px 22px 0; }
  body.portal-bright .cases-hero-copy>p { max-width: none; }
  body.portal-bright .cases-hero h2 { font-size: 35px; margin: 14px 0; }
  body.portal-bright .cases-hero-art { padding: 0; max-height: 240px; }
  body.portal-bright .cases-hero-art>.case-art { width: 260px; height: 240px; margin: 0; }
  body.portal-bright .cases-hero-stamp { right: 16px; bottom: 16px; }
  body.portal-bright .cases-exchange { margin-top: 20px; }
  body.portal-bright .case-card-image .case-art { aspect-ratio: 1.6; }
  body.portal-bright .case-card-top { top: 15px; left: 17px; right: 17px; }
  body.portal-bright .case-card-copy { padding: 5px 20px 22px; }
  body.portal-bright .case-card-copy h2 { font-size: 32px; }
  body.portal-bright .case-card-copy>p { min-height: 0; font-size: 13px; }
  body.portal-bright .case-card-footer { margin-top: 15px; }
  body.portal-bright .case-card-footer .btn { min-height: 44px; }
  body.portal-bright .case-card-meta { justify-content: space-between; }
  body.portal-bright .case-detail-art>.case-art { aspect-ratio: 1.3; }
  body.portal-bright .case-detail-copy h1 { font-size: 34px; overflow-wrap: anywhere; }
  body.portal-bright .case-buy-form { padding: 18px; }
  body.portal-bright .case-buy-price strong { font-size: 27px; }
  body.portal-bright .case-buy-controls>label { width: 80px; }
  body.portal-bright .case-buy-controls>.btn { min-width: 0; padding-inline: 12px; }
  body.portal-bright .case-buy-balance { gap: 9px; }
  body.portal-bright .case-drop-copy { padding: 13px; }
  body.portal-bright .case-drop-copy h3 { font-size: 16px; }
  body.portal-bright .case-drop-percent { font-size: 10px; right: 6px; top: 6px; padding: 4px 6px; }
  body.portal-bright .case-balance-number strong { font-size: 45px; }
  body.portal-bright .product-card .product-art { aspect-ratio: 1.45; }
  body.portal-bright .product-copy { padding: 20px; }
  body.portal-bright .product-copy h3 { font-size: 24px; }
  body.portal-bright .cart-item { flex-wrap: wrap; }
  body.portal-bright .cart-item .qty-control { flex-shrink: 0; }
  body.portal-bright .account-hero>.grow { min-width: 140px; }
  body.portal-bright .account-hero>.btn { width: 100%; }
  body.portal-bright .wallet-overview>div { min-width: 0; }
  body.portal-bright .wallet-overview h3 { font-size: 25px; }
  body.portal-bright .wallet-overview-actions { width: 100%; }
  body.portal-bright .wallet-overview-actions>.btn { flex: 1; min-width: 110px; }
  body.portal-bright .storage-instructions { padding: 17px; gap: 12px; }
  body.portal-bright .storage-instructions p { font-size: 12px; }
  body.portal-bright .storage-item { grid-template-columns: 68px minmax(0,1fr); padding: 15px; gap: 12px; }
  body.portal-bright .storage-item-art { width: 68px; height: 68px; }
  body.portal-bright .storage-item-actions { grid-column: 2; justify-content: flex-start; }
  body.portal-bright .storage-item-copy h2 { font-size: 19px; }
  body.portal-bright .storage-item-copy>small { font-size: 9px; }
  body.portal-bright .storage-pagination>div { display: flex; flex-wrap: wrap; gap: 9px; }
  body.portal-bright .storage-pagination .btn { min-height: 42px; }
  body.portal-bright .c-profile-banner { padding: 18px; }
  body.portal-bright .c-profile-identity { min-width: 0; align-items: flex-start; }
  body.portal-bright .c-profile-identity>div { min-width: 0; }
  body.portal-bright .c-profile-identity h2 { font-size: 24px; }
  body.portal-bright .c-article-body { margin: 24px auto; }
  body.portal-bright :is(.c-article-body p,.c-wiki-article>section p,.c-rule-section li>p) { font-size: 13px; line-height: 1.8; }
  body.portal-bright :is(.c-article-cover,.c-detail-cover) { height: 220px; }
  body.portal-bright .c-detail-grid>aside { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .c-rules-nav { gap: 5px 15px; }
  body.portal-bright .c-rules-nav>button { min-height: 42px; font-size: 12px; }
  body.portal-bright .c-rule-section li { gap: 12px; }
  body.portal-bright .c-list-header { flex-wrap: wrap; gap: 12px; }
  body.portal-bright .c-compose-bottom { align-items: flex-start; flex-wrap: wrap; }
  body.portal-bright .c-compose-bottom small { max-width: none; font-size: 11px; }
  body.portal-bright .c-chat-top .badge { font-size: 10px; max-width: 135px; }
  body.portal-bright .c-message-head { flex-wrap: wrap; }
  body.portal-bright .c-message-head strong { font-size: 12px; }
  body.portal-bright .c-message-head time { font-size: 10px; }
  body.portal-bright .c-channel strong { font-size: 12px; }
  body.portal-bright .c-channel small { font-size: 10px; }
  body.portal-bright .c-component-list>div { flex-wrap: wrap; }
  body.portal-bright .wm-viewport { min-height: 300px; }
  body.portal-bright .wm-tools button { min-width: 40px; min-height: 40px; }
  body.portal-bright .wm-layout { min-width: 0; }
  body.portal-bright .sa-metrics { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .sa-facts { flex-wrap: wrap; }
  body.portal-bright :is(.st-grid,.w-dungeon-grid,.w-quest-grid,.c-event-grid,.c-news-grid) { grid-template-columns: minmax(0,1fr); }
  body.portal-bright .st-channel-identity { flex-wrap: wrap; }
  body.portal-bright .st-channel-url { font-size: 12px; }
}
@media (max-width: 360px) {
  body.portal-bright .case-odds-grid { gap: 8px; }
  body.portal-bright .case-drop-copy { padding: 10px; }
  body.portal-bright .case-drop-copy h3 { font-size: 15px; }
  body.portal-bright .case-buy-controls { display: grid; grid-template-columns: minmax(0,1fr); }
  body.portal-bright .case-buy-controls>label { width: 100%; }
  body.portal-bright .case-buy-controls>.btn { width: 100%; }
  body.portal-bright .cases-wallet-pill { white-space: normal; }
  body.portal-bright .case-edition { flex-wrap: wrap; gap: 8px; padding: 16px; }
  body.portal-bright .storage-item { grid-template-columns: 55px minmax(0,1fr); gap: 10px; padding: 13px; }
  body.portal-bright .storage-item-art { width: 55px; height: 55px; }
  body.portal-bright .storage-item-copy h2 { font-size: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  body.portal-bright :is(.case-card,.product-card,.case-art img,.c-event-card,.c-news-card,.st-card) {
    animation: none; transition: none;
  }
}
body.portal-bright.reduce-motion :is(.case-card,.product-card,.case-art img,.c-event-card,.c-news-card,.st-card) { animation: none; transition: none; }

