/* v144: theme identity layer. Loaded last. Appearance only — no content or behaviour changes.
   Selector prefix doubles the theme attribute (and scopes by #mainContent inside the page)
   so these rules outrank every earlier theme rule without touching them.               */

/* ───────────────────────── 史詩電競 · Epic Raid Operations ─────────────────────────
   A broadcast control room: brushed-metal night, frosted HUD glass, LED status light. */
:root[data-appearance="epic"][data-appearance="epic"] {
  --ep-ground: #0A0D14; --ep-glass: rgba(14, 20, 33, .58); --ep-edge: rgba(148, 163, 184, .16);
  --ep-orange: #FF7A1A; --ep-green: #00FF66; --ep-gold: #DBC58F; --ep-ice: #E8EEF8; }
:root[data-appearance="epic"][data-appearance="epic"] body {
  background-color: var(--ep-ground) !important;
  background-attachment: fixed !important; }
:root[data-appearance="epic"][data-appearance="epic"] :is(.topbar, .drawer) {
  background: rgba(9, 13, 22, .72) !important; backdrop-filter: blur(18px) saturate(150%) !important;
  border-color: var(--ep-edge) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  border: 1px solid var(--ep-edge) !important; border-radius: 14px !important;
  backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):is(:hover, :focus-within) {
  border-color: rgba(255, 122, 26, .42) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent .page-title h1 {
  font-weight: 900 !important; letter-spacing: .01em !important; color: var(--ep-ice) !important;
  text-shadow: 0 0 32px rgba(255, 122, 26, .28), 0 2px 0 rgba(0, 0, 0, .6); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyFilters, #lootFilters) > button.active {
  background: linear-gradient(180deg, rgba(255, 122, 26, .22), rgba(255, 122, 26, .08)) !important;
  border-color: rgba(255, 122, 26, .7) !important; color: #FFE3CC !important;
  box-shadow: 0 0 18px -4px rgba(255, 122, 26, .55), inset 0 1px 0 rgba(255, 255, 255, .12) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList, #lootList, .page-title) :is(.party-action:not(.cancel), .primary) {
  background: linear-gradient(180deg, #FF9440 0%, #FF6A00 100%) !important; color: #1A0B00 !important;
  border: 1px solid #FFB070 !important; font-weight: 800 !important;
  box-shadow: 0 0 24px -6px rgba(255, 122, 26, .75), inset 0 1px 0 rgba(255, 255, 255, .4) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent #lootList .loot-card .loot-value-row > .highlight strong {
  color: #FFC48A !important; text-shadow: 0 0 22px rgba(255, 122, 26, .45); }
/* LED status light: the pill's dot breathes while recruitment is live. */
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList, #lootList) :is(.panel-status, .loot-status) {
  border-color: rgba(0, 255, 102, .45) !important; background: rgba(0, 255, 102, .08) !important; color: #B9FFD6 !important;
  box-shadow: 0 0 14px -4px rgba(0, 255, 102, .6); }
/* Party roles (輸出／輔助／生存／機動) as LED capsules. */
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role] {
  --led: #8FA3BF; display: inline-flex; align-items: center; gap: .35em; padding: .12em .6em;
  border-radius: 999px; border: 1px solid color-mix(in srgb, var(--led) 55%, transparent);
  background: color-mix(in srgb, var(--led) 12%, transparent); color: color-mix(in srgb, var(--led) 70%, white); }
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role]::before {
  content: ''; width: .5em; height: .5em; border-radius: 50%; background: var(--led);
  box-shadow: 0 0 6px var(--led), 0 0 12px var(--led); animation: ep-led 2.4s ease-in-out infinite; }
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role="damage"] { --led: #FF6B3D; }
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role="support"] { --led: #00FF66; }
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role="tank"] { --led: #4DA3FF; }
:root[data-appearance="epic"][data-appearance="epic"] [data-party-role="utility"] { --led: #F5C451; }
@keyframes ep-led { 0%, 100% { opacity: 1; } 50% { opacity: .35; box-shadow: 0 0 2px var(--led); } }

/* ───────────────────────── 暖白繪本 · Our Little Guild ─────────────────────────
   A hand-made picture book: grainy paper, soft sage, cards like stickers that bounce. */
:root[data-appearance="cloud"][data-appearance="cloud"] {
  --cb-paper: #FAF8F5; --cb-sage: #7A9A82; --cb-sage-deep: #476341; --cb-sky: #9CC5D8;
  --cb-butter: #F2D98B; --cb-ink: #354B3A; --cb-spring: cubic-bezier(.34, 1.56, .64, 1); }
:root[data-appearance="cloud"][data-appearance="cloud"] body {
  background-color: var(--cb-paper) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  border-radius: 28px !important; border: 2px solid #E4E9DC !important;
  box-shadow: 0 2px 0 #E4E9DC, 0 18px 30px -18px rgba(71, 99, 65, .35) !important;
  transition: transform .45s var(--cb-spring), box-shadow .3s ease; }


:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):hover {
  transform: rotate(0) translateY(-4px) scale(1.012);
  box-shadow: 0 2px 0 #DCE4D2, 0 26px 40px -20px rgba(71, 99, 65, .45) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent .page-title h1 {
  font-weight: 900 !important; color: var(--cb-ink) !important;
  text-decoration: underline wavy color-mix(in srgb, var(--cb-sage) 70%, transparent);
  text-decoration-thickness: 3px; text-underline-offset: 9px; text-decoration-skip-ink: none; }
/* Jelly buttons: every control squashes when pressed. */
:root[data-appearance="cloud"][data-appearance="cloud"] :is(button, .primary, .party-action, [role="tab"]) {
  border-radius: 999px !important; transition: transform .35s var(--cb-spring), box-shadow .2s ease, background-color .2s ease; }
:root[data-appearance="cloud"][data-appearance="cloud"] :is(button, .primary, .party-action):hover { transform: scale(1.05); }
:root[data-appearance="cloud"][data-appearance="cloud"] :is(button, .primary, .party-action):active { transform: scale(.94); transition-duration: .08s; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList, #lootList, .page-title) :is(.party-action:not(.cancel), .primary) {
  background: var(--cb-sage-deep) !important; color: #FFFDF6 !important; border: 0 !important; font-weight: 800 !important;
  box-shadow: 0 4px 0 #34502F, 0 10px 18px -8px rgba(52, 80, 47, .6) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList, #lootList, .page-title) :is(.party-action:not(.cancel), .primary):active { box-shadow: 0 1px 0 #34502F !important; }
/* Status as a round sticker. */
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList, #lootList) :is(.panel-status, .loot-status) {
  background: var(--cb-butter) !important; color: #5B4A12 !important; border: 2px solid #FFF6D6 !important;
  box-shadow: 0 3px 0 #D9BF6A, 0 6px 12px -6px rgba(91, 74, 18, .5) !important; transform: rotate(-4deg); font-weight: 800 !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyFilters, #lootFilters) > button.active {
  background: #FFFFFF !important; color: var(--cb-sage-deep) !important; border: 2px solid var(--cb-sage) !important;
  box-shadow: 0 3px 0 #C9D6C0 !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent #lootList .loot-card .loot-value-row > .highlight strong {
  color: var(--cb-sage-deep) !important; background: linear-gradient(transparent 62%, rgba(242, 217, 139, .75) 62%); padding: 0 .12em; }
:root[data-appearance="cloud"][data-appearance="cloud"] :is(input, select, textarea) { border-radius: 18px !important; }

/* ───────────────────────── 霓虹戰術 · Raid Control ─────────────────────────
   A mission-briefing console: radar grid, chamfered plates, mint signal and amber warnings. */
:root[data-appearance="maple"][data-appearance="maple"] {
  --tc-ground: #070B12; --tc-mint: #00FFCC; --tc-amber: #FFB020; --tc-steel: #8FA3BF; --tc-cold: #E6F1FF;
  --tc-cut: 14px; }
:root[data-appearance="maple"][data-appearance="maple"] body {
  background-color: var(--tc-ground) !important;
  background-size: 100% 100%, 32px 32px, 32px 32px, 32px 32px !important;
  background-position: 0 0, -1px -1px, -1px -1px, 15px 15px !important;
  background-attachment: fixed !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  border-radius: 0 !important; border: 1px solid rgba(0, 255, 204, .28) !important;
  clip-path: polygon(var(--tc-cut) 0, 100% 0, 100% calc(100% - var(--tc-cut)), calc(100% - var(--tc-cut)) 100%, 0 100%, 0 var(--tc-cut));
  box-shadow: inset 0 0 0 1px rgba(0, 255, 204, .06), inset 0 40px 60px -40px rgba(0, 255, 204, .12) !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):is(:hover, :focus-within) {
  border-color: rgba(0, 255, 204, .7) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 204, .18), inset 0 40px 60px -40px rgba(0, 255, 204, .22) !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent .page-title h1 {
  font-weight: 800 !important; letter-spacing: .06em !important; color: var(--tc-cold) !important;
  text-shadow: 0 0 18px rgba(0, 255, 204, .35); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyFilters, #lootFilters) > button {
  border-radius: 0 !important;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyFilters, #lootFilters) > button.active {
  background: rgba(0, 255, 204, .14) !important; color: var(--tc-mint) !important; border-color: var(--tc-mint) !important;
  box-shadow: inset 0 -2px 0 var(--tc-mint) !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyList, #lootList, .page-title) :is(.party-action:not(.cancel), .primary) {
  border-radius: 0 !important; background: var(--tc-mint) !important; color: #03140F !important; border: 0 !important;
  font-weight: 800 !important; letter-spacing: .04em;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  box-shadow: 0 0 22px -4px rgba(0, 255, 204, .7) !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyList, #lootList) :is(.panel-status, .loot-status) {
  border-radius: 0 !important; background: transparent !important; border: 1px solid var(--tc-mint) !important; color: var(--tc-mint) !important;
  clip-path: polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(.loot-value-row strong, .party-format-medal strong, .filter-count) {
  font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace !important; font-variant-numeric: tabular-nums; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent #lootList .loot-card .loot-value-row > .highlight strong {
  color: var(--tc-mint) !important; text-shadow: 0 0 14px rgba(0, 255, 204, .55); }
/* One sweep when a page opens: the console "acquires" the list. */
:root[data-appearance="maple"][data-appearance="maple"] #mainContent .page.active::after {
  content: ''; position: fixed; inset: 0; pointer-events: none; z-index: 1;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 255, 204, .10) 48%, rgba(0, 255, 204, .18) 50%, transparent 52%);
  animation: tc-sweep 1.1s ease-out 1 both; }
@keyframes tc-sweep { from { transform: translateY(-100%); } to { transform: translateY(100%); opacity: 0; } }

@media (prefers-reduced-motion: reduce) {
  :root[data-appearance] [data-party-role]::before, :root[data-appearance] #mainContent .page.active::after { animation: none !important; }
  :root[data-appearance] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card), :root[data-appearance] :is(button, .primary, .party-action) { transition: none !important; }
  :root[data-appearance="maple"] #mainContent .page.active::after { display: none; }
}

/* ═════════════ v144 · second pass: turn the signature up (appended; same specificity, later wins) ═════════════ */

/* 史詩電競: light behind the glass so the blur reads; energy edge on every panel; glowing nav. */
:root[data-appearance="epic"][data-appearance="epic"] body {
  background-image:
    radial-gradient(760px 520px at 78% 18%, rgba(255, 122, 26, .30), transparent 66%),
    radial-gradient(680px 520px at 18% 72%, rgba(0, 255, 102, .16), transparent 64%),
    radial-gradient(520px 380px at 96% 92%, rgba(219, 197, 143, .16), transparent 64%),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .016) 0 1px, transparent 1px 4px),
    linear-gradient(180deg, #0C1019 0%, #07090E 100%) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  background: linear-gradient(180deg, rgba(24, 32, 52, .52), rgba(10, 14, 24, .42)) !important;
  box-shadow: inset 0 3px 0 -1px rgba(255, 122, 26, .95), inset 0 1px 0 rgba(255, 255, 255, .10),
              inset 0 0 0 1px rgba(255, 255, 255, .03), 0 30px 60px -28px rgba(0, 0, 0, .9) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):is(:hover, :focus-within) {
  box-shadow: inset 0 3px 0 -1px #FFB070, inset 0 1px 0 rgba(255, 255, 255, .12), 0 0 0 1px rgba(255, 122, 26, .35),
              0 0 48px -10px rgba(255, 122, 26, .45), 0 30px 60px -28px rgba(0, 0, 0, .9) !important; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent .page-title h1 {
  -webkit-text-fill-color: currentColor !important; background-clip: border-box !important; font-size: clamp(2.2rem, 1.6rem + 1.6vw, 3.2rem) !important; }
:root[data-appearance="epic"][data-appearance="epic"] .drawer-nav :is(button, a).active {
  background: linear-gradient(90deg, rgba(255, 122, 26, .26), rgba(255, 122, 26, .04)) !important;
  border-color: rgba(255, 122, 26, .6) !important; color: #FFE3CC !important;
  box-shadow: inset 3px 0 0 var(--ep-orange), 0 0 24px -8px rgba(255, 122, 26, .6) !important; }

/* 暖白繪本: a stitched felt page — visible tilt, sewing line inside each card, doodle-dot paper. */
:root[data-appearance="cloud"][data-appearance="cloud"] body {
  background-image:
    radial-gradient(circle at 12px 12px, rgba(122, 154, 130, .16) 2px, transparent 2.6px),
    radial-gradient(900px 520px at 100% 0%, rgba(156, 197, 216, .28), transparent 60%),
    radial-gradient(800px 520px at 0% 100%, rgba(242, 217, 139, .26), transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .3 0 0 0 0 .22 0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E") !important;
  background-size: 48px 48px, auto, auto, 160px 160px !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  background: #FFFEFA !important;
  outline: 2px dashed rgba(122, 154, 130, .55); outline-offset: -11px; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):nth-child(odd) { transform: rotate(-1deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):nth-child(even) { transform: rotate(.9deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] :is(.drawer, .topbar) { background: rgba(255, 254, 250, .86) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] .drawer-nav :is(button, a).active {
  background: #FFFFFF !important; color: var(--cb-sage-deep) !important; border: 2px solid var(--cb-sage) !important;
  box-shadow: 0 3px 0 #C9D6C0 !important; transform: rotate(-1deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent .page-title h1 {
  -webkit-text-fill-color: currentColor !important; background-clip: border-box !important; font-size: clamp(2.1rem, 1.6rem + 1.4vw, 3rem) !important; }

/* 霓虹戰術: deeper cuts, glowing HUD corner brackets, a denser radar grid. */
:root[data-appearance="maple"][data-appearance="maple"] { --tc-cut: 22px; }
:root[data-appearance="maple"][data-appearance="maple"] body {
  background-image:
    radial-gradient(1000px 700px at 50% -20%, rgba(0, 255, 204, .14), transparent 65%),
    linear-gradient(rgba(0, 255, 204, .07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 255, 204, .07) 1px, transparent 1px),
    radial-gradient(rgba(0, 255, 204, .28) 1px, transparent 1.6px) !important; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  --c: rgba(0, 255, 204, .95); --l: 26px;
  background:
    /* brackets on the two corners the chamfer keeps */
    linear-gradient(var(--c), var(--c)) top right / var(--l) 2px no-repeat,
    linear-gradient(var(--c), var(--c)) top right / 2px var(--l) no-repeat,
    linear-gradient(var(--c), var(--c)) bottom left / var(--l) 2px no-repeat,
    linear-gradient(var(--c), var(--c)) bottom left / 2px var(--l) no-repeat,
    linear-gradient(135deg, rgba(10, 26, 42, .95), rgba(6, 12, 20, .97)) !important;
  background-origin: border-box !important; }
:root[data-appearance="maple"][data-appearance="maple"] :is(.drawer, .topbar) {
  background: rgba(6, 12, 20, .9) !important; border-color: rgba(0, 255, 204, .22) !important; }
:root[data-appearance="maple"][data-appearance="maple"] .drawer-nav :is(button, a).active {
  border-radius: 0 !important; background: rgba(0, 255, 204, .12) !important; color: var(--tc-mint) !important;
  border-color: var(--tc-mint) !important; box-shadow: inset 3px 0 0 var(--tc-mint), 0 0 18px -6px rgba(0, 255, 204, .7) !important;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent .page-title h1 {
  -webkit-text-fill-color: currentColor !important; background-clip: border-box !important; font-size: clamp(2rem, 1.5rem + 1.4vw, 2.9rem) !important; }

/* ───────────────────────── 東方冒險 · 朱漆描金 (ancient) ─────────────────────────
   Palaces and lacquerware: black lacquer ground with a gold meander, lacquer-red boxes framed
   in double gold, cinnabar seals for status, rice-paper type. Jade stays as the "open / ok" accent. */
:root[data-appearance="classic"][data-appearance="classic"] {
  --lq-ground: #150C0A; --lq-box: #3A1712; --lq-box-deep: #230F0B; --lq-gold: #D8B56A;
  --lq-gold-soft: rgba(216, 181, 106, .38); --lq-cinnabar: #B8432F; --lq-paper: #F3E7CF; --lq-jade: #8DB9A3; }
:root[data-appearance="classic"][data-appearance="classic"] body {
  background-color: var(--lq-ground) !important;
  background-image:
    radial-gradient(900px 600px at 82% -10%, rgba(184, 67, 47, .24), transparent 64%),
    radial-gradient(1200px 800px at 50% 120%, rgba(0, 0, 0, .7), transparent 60%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48'%3E%3Cpath d='M4 44V4h40v40H12V12h24v24H20V20h8v8' fill='none' stroke='%23D8B56A' stroke-opacity='.07' stroke-width='2'/%3E%3C/svg%3E") !important;
  background-size: auto, auto, 48px 48px !important;
  background-attachment: fixed !important; }
:root[data-appearance="classic"][data-appearance="classic"] :is(.topbar, .drawer) {
  background: linear-gradient(180deg, #1E100D, #150B09) !important;
  border-color: var(--lq-gold-soft) !important; box-shadow: inset 0 0 0 1px rgba(216, 181, 106, .08) !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255, 214, 170, .07), transparent 55%),
    linear-gradient(160deg, var(--lq-box) 0%, var(--lq-box-deep) 100%) !important;
  border: 1px solid var(--lq-gold-soft) !important; border-radius: 6px !important;
  box-shadow: inset 0 0 0 4px rgba(21, 12, 10, .55), inset 0 0 0 5px rgba(216, 181, 106, .22),
              0 22px 40px -22px rgba(0, 0, 0, .85) !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card):is(:hover, :focus-within) {
  border-color: var(--lq-gold) !important;
  box-shadow: inset 0 0 0 4px rgba(21, 12, 10, .55), inset 0 0 0 5px rgba(216, 181, 106, .45),
              0 0 32px -12px rgba(216, 181, 106, .45), 0 22px 40px -22px rgba(0, 0, 0, .85) !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent .page-title h1 {
  -webkit-text-fill-color: currentColor !important; background-clip: border-box !important;
  font-family: 'Noto Serif TC', serif !important; font-weight: 900 !important; letter-spacing: .22em !important;
  color: #EBCB8B !important; text-shadow: 0 0 26px rgba(216, 181, 106, .28);
  font-size: clamp(2.1rem, 1.6rem + 1.4vw, 3rem) !important; padding-bottom: .35em;
  background: linear-gradient(90deg, var(--lq-gold), rgba(216, 181, 106, 0)) bottom left / min(9em, 100%) 2px no-repeat; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(.party-panel h3, .loot-card h3) {
  font-family: 'Noto Serif TC', serif !important; letter-spacing: .06em; color: var(--lq-paper) !important; }
/* Cinnabar seal for status. */
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyList, #lootList) :is(.panel-status, .loot-status) {
  background: var(--lq-cinnabar) !important; color: #FFF1DA !important; border: 1px solid #E6A08F !important;
  border-radius: 3px !important; font-family: 'Noto Serif TC', serif !important; font-weight: 900 !important;
  letter-spacing: .12em; transform: rotate(-4deg); box-shadow: 0 0 0 2px rgba(184, 67, 47, .25), 0 6px 14px -8px #000 !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyList, #lootList) :is(.panel-status, .loot-status)::before { background: #FFF1DA !important; box-shadow: none !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyList, #lootList, .page-title) :is(.party-action:not(.cancel), .primary) {
  background: linear-gradient(180deg, #A83A27, #7E2618) !important; color: #FFF4E2 !important;
  border: 1px solid var(--lq-gold) !important; border-radius: 4px !important; font-weight: 800 !important; letter-spacing: .12em;
  box-shadow: inset 0 1px 0 rgba(255, 220, 190, .35), 0 8px 18px -10px rgba(184, 67, 47, .9) !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#partyFilters, #lootFilters) > button.active {
  background: rgba(216, 181, 106, .12) !important; color: #F2D597 !important; border-color: var(--lq-gold) !important;
  box-shadow: inset 0 -2px 0 var(--lq-cinnabar) !important; }
:root[data-appearance="classic"][data-appearance="classic"] .drawer-nav :is(button, a).active {
  background: linear-gradient(90deg, rgba(216, 181, 106, .18), transparent) !important; color: #F2D597 !important;
  border-color: var(--lq-gold-soft) !important; box-shadow: inset 3px 0 0 var(--lq-gold) !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent #lootList .loot-card .loot-value-row > .highlight strong {
  color: #F4D591 !important; text-shadow: 0 0 20px rgba(216, 181, 106, .45); font-family: 'Noto Serif TC', serif !important; }

/* ═════════════ v144 · third pass: one primary button per world, on every page and dialog ═════════════
   `:not(#_id-boost-N)` always matches; it only adds ID weight so these beat the themes' own
   high-specificity button rules (e.g. `button.primary[class]`) without listing each of them.
   The card lists already had it (2 IDs); these reach the other pages, the drawer and the dialogs. */
:root[data-appearance="classic"][data-appearance="classic"]:not(#_id-boost-1):not(#_id-boost-2) :is(#mainContent, #drawer, #membershipGate, #appearanceModal, .login-modal, .avatar-sheet, .loot-viewer) :is(button, a):is(.primary, .join-button) {
  background: linear-gradient(180deg, #A83A27, #7E2618) !important; color: #FFF4E2 !important;
  border: 1px solid #D8B56A !important; border-radius: 4px !important; letter-spacing: .1em;
  box-shadow: inset 0 1px 0 rgba(255, 220, 190, .35), 0 8px 18px -10px rgba(184, 67, 47, .9) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"]:not(#_id-boost-1):not(#_id-boost-2) :is(#mainContent, #drawer, #membershipGate, #appearanceModal, .login-modal, .avatar-sheet, .loot-viewer) :is(button, a):is(.primary, .join-button) {
  background: #476341 !important; color: #FFFDF6 !important; border: 0 !important;
  box-shadow: 0 4px 0 #34502F, 0 10px 18px -8px rgba(52, 80, 47, .6) !important; }
:root[data-appearance="epic"][data-appearance="epic"]:not(#_id-boost-1):not(#_id-boost-2) :is(#mainContent, #drawer, #membershipGate, #appearanceModal, .login-modal, .avatar-sheet, .loot-viewer) :is(button, a):is(.primary, .join-button) {
  background: linear-gradient(180deg, #FF9440 0%, #FF6A00 100%) !important; color: #1A0B00 !important;
  border: 1px solid #FFB070 !important; box-shadow: 0 0 24px -6px rgba(255, 122, 26, .75), inset 0 1px 0 rgba(255, 255, 255, .4) !important; }
:root[data-appearance="maple"][data-appearance="maple"]:not(#_id-boost-1):not(#_id-boost-2) :is(#mainContent, #drawer, #membershipGate, #appearanceModal, .login-modal, .avatar-sheet, .loot-viewer) :is(button, a):is(.primary, .join-button) {
  background: #00FFCC !important; color: #03140F !important; border: 0 !important; border-radius: 0 !important;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
  box-shadow: 0 0 22px -4px rgba(0, 255, 204, .7) !important; }

/* Phones: lighter blur keeps the glass look while scrolling long lists smoothly. */
@media (max-width: 720px) {
  :root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#partyList .party-panel, #lootList .loot-card, #characterList .character-card) {
    backdrop-filter: blur(8px) saturate(130%); -webkit-backdrop-filter: blur(8px) saturate(130%); }
}

/* ═════════════ v145 · character sheet: the stat panel on 我的角色, one skin per world ═════════════ */
/* Shared structure (every theme): the panel spans the card under avatar / name / actions. */
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stats {
  grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 4px 0 0; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat {
  position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 10px 12px; margin: 0; overflow: hidden; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat dt { margin: 0; font-size: .74rem; line-height: 1.2; opacity: .82; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd {
  margin: 0; font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd span { font-size: .72em; margin-left: 1px; opacity: .8; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd em { font-style: normal; font-size: .8rem; font-weight: 600; opacity: .6; }
/* 無視防禦 is a true 0–100 %, so it gets a bar. */
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .stat-ied::after {
  content: ''; position: absolute; left: 12px; right: 12px; bottom: 7px; height: 4px; border-radius: 4px;
  background: linear-gradient(90deg, var(--bar, currentColor) calc(var(--pct, 0) * 1%), var(--bar-track, rgba(127, 127, 127, .22)) 0); }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .stat-ied { padding-bottom: 18px; }
@media (max-width: 720px) {
  :root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* The form's two groups. */
:root[data-appearance][data-appearance] .character-fieldset { border: 0; margin: 0 0 14px; padding: 0; min-width: 0; }
:root[data-appearance][data-appearance] .character-fieldset legend { padding: 0; margin: 0 0 8px; font-size: .8rem; font-weight: 800; letter-spacing: .08em; }

/* 史詩電競 — HUD readouts: glass tiles, glowing numerals, a segmented energy bar. */
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat {
  background: rgba(10, 14, 24, .55); border: 1px solid rgba(148, 163, 184, .16); border-radius: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dt { color: #BCC6D8; }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd { color: #FFC48A; text-shadow: 0 0 14px rgba(255, 122, 26, .45); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .stat-power dd { color: #E8EEF8; text-shadow: 0 0 14px rgba(232, 238, 248, .25); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied {
  --bar: #00FF66; --bar-track: rgba(0, 255, 102, .12); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied::after {
  height: 5px; border-radius: 0; box-shadow: 0 0 8px rgba(0, 255, 102, .45);
  -webkit-mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px); mask: repeating-linear-gradient(90deg, #000 0 8px, transparent 8px 10px); }
:root[data-appearance="epic"][data-appearance="epic"] .character-fieldset legend { color: #FF9440; }

/* 東方冒險 — an attribute scroll: gold-ruled lacquer tiles, serif gilt numerals, a cinnabar brush stroke. */
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-stats { gap: 0; border-top: 1px solid rgba(216, 181, 106, .35); border-bottom: 1px solid rgba(216, 181, 106, .35); }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat {
  background: transparent; border-radius: 0; padding: 12px 14px 12px; align-items: center; text-align: center; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat + .character-stat { border-left: 1px solid rgba(216, 181, 106, .22); }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dt { color: #CDB78E; font-family: 'Noto Serif TC', serif; letter-spacing: .2em; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd { color: #F4D591; font-family: 'Noto Serif TC', serif; font-weight: 900; text-shadow: 0 0 16px rgba(216, 181, 106, .35); }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied { --bar: #B8432F; --bar-track: rgba(216, 181, 106, .14); padding-bottom: 20px; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied::after { left: 18%; right: 18%; height: 5px; border-radius: 6px 2px 6px 2px; filter: drop-shadow(0 0 3px rgba(184, 67, 47, .5)); }
:root[data-appearance="classic"][data-appearance="classic"] .character-fieldset legend { color: #EBCB8B; font-family: 'Noto Serif TC', serif; letter-spacing: .25em; }

/* 暖白繪本 — journal stickers: each number on its own pastel sticker, gently tilted. */
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-stat {
  border-radius: 18px; border: 2px solid #FFFFFF; box-shadow: 0 3px 0 rgba(71, 99, 65, .14), 0 8px 14px -10px rgba(71, 99, 65, .4);
  transition: transform .35s cubic-bezier(.34, 1.56, .64, 1); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .stat-level { background: #EAF3E4; transform: rotate(-1.5deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .stat-power { background: #FBF1CF; transform: rotate(1deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .stat-boss { background: #FBE3DC; transform: rotate(-1deg); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied { background: #E1EFF5; transform: rotate(1.5deg); --bar: #6FA8C0; --bar-track: rgba(111, 168, 192, .22); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-stat:hover { transform: rotate(0) scale(1.05); }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dt { color: #607058; font-weight: 700; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd { color: #354B3A; font-weight: 900; }
:root[data-appearance="cloud"][data-appearance="cloud"] .character-fieldset { background: #FFFEFA; border: 2px dashed rgba(122, 154, 130, .5); border-radius: 18px; padding: 12px 14px 4px; }
:root[data-appearance="cloud"][data-appearance="cloud"] .character-fieldset legend { color: #476341; padding: 0 6px; }

/* 霓虹戰術 — telemetry: chamfered readouts, monospace values, a ticked mint gauge. */
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-stat {
  background: rgba(0, 255, 204, .05); border: 1px solid rgba(0, 255, 204, .22); border-radius: 0;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dt { color: #8FA3BF; letter-spacing: .08em; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd {
  color: #00FFCC; font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; text-shadow: 0 0 12px rgba(0, 255, 204, .45); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied { --bar: #00FFCC; --bar-track: rgba(0, 255, 204, .12); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied::after {
  border-radius: 0; height: 6px;
  background: linear-gradient(90deg, var(--bar) calc(var(--pct, 0) * 1%), var(--bar-track) 0),
              repeating-linear-gradient(90deg, rgba(7, 11, 18, .9) 0 1px, transparent 1px 10%);
  background-blend-mode: normal; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .stat-ied::before {
  content: ''; position: absolute; left: 12px; right: 12px; bottom: 7px; height: 6px; pointer-events: none;
  background: repeating-linear-gradient(90deg, transparent 0 calc(10% - 1px), rgba(7, 11, 18, .95) calc(10% - 1px) 10%); }
:root[data-appearance="maple"][data-appearance="maple"] .character-fieldset legend { color: #00FFCC; letter-spacing: .12em; }
/* Numbers are never cut off: a long value wraps instead of ending in "…". */
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd {
  white-space: normal !important; overflow: visible !important; text-overflow: clip !important; overflow-wrap: anywhere; line-height: 1.15; }
@media (max-width: 720px) {
  :root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-stat dd { font-size: 1.05rem; }
}

/* ═════════════ v146 · character emblem: class-family weapon + level ribbon, one frame per world ═════════════ */
:root[data-appearance][data-appearance] #mainContent #characterList .character-card { grid-template-columns: 78px minmax(0, 1fr) auto !important; }
@media (max-width: 720px) {
  :root[data-appearance][data-appearance] #mainContent #characterList .character-card { grid-template-columns: 64px minmax(0, 1fr) !important; }
}
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-emblem {
  position: relative; width: 68px !important; height: 68px !important; min-height: 0 !important; align-self: center !important;
  display: grid !important; place-items: center; padding: 0 !important; margin: 0 0 8px !important; border: 0 !important;
  background: none; box-shadow: none; font-size: 0; transform: none; }
/* The emblem replaces the old initial tile, including theme decorations drawn with pseudo-elements. */
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-emblem::before,
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-emblem::after { content: none !important; display: none !important; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-class-icon { width: 32px; height: 32px; position: relative; z-index: 1; margin-top: -4px; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-initial { position: relative; z-index: 1; font-size: 28px; font-weight: 900; line-height: 1; margin-top: -4px; }
:root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-level {
  position: absolute; left: 50%; bottom: -8px; transform: translateX(-50%); z-index: 2; white-space: nowrap;
  font-size: 11px; font-weight: 800; line-height: 1; padding: 3px 7px; font-variant-numeric: tabular-nums; }
@media (max-width: 720px) {
  :root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-emblem { width: 58px !important; height: 58px !important; }
  :root[data-appearance][data-appearance] #mainContent :is(#characterList, #homeAdventurer) .character-class-icon { width: 28px; height: 28px; }
}

/* 史詩電競 — a glowing hex badge. */
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 72 72'%3E%3Cpath d='M36 3l29 16.5v33L36 69 7 52.5v-33z' fill='%23141925' stroke='%23FF6B3D' stroke-opacity='.8' stroke-width='1.6'/%3E%3Cpath d='M36 9.5l23.5 13.3v26.4L36 62.5 12.5 49.2V22.8z' fill='none' stroke='%23FFB070' stroke-opacity='.28'/%3E%3C/svg%3E") center / contain no-repeat !important;
  filter: drop-shadow(0 0 10px rgba(255, 122, 26, .35)); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent #characterList :is(.character-class-icon, .character-initial) { color: #FFD2A8; filter: drop-shadow(0 0 6px rgba(255, 122, 26, .75)); }
:root[data-appearance="epic"][data-appearance="epic"] #mainContent :is(#characterList, #homeAdventurer) .character-level { background: #FF6A00; color: #1A0B00; border-radius: 5px; box-shadow: 0 0 10px rgba(255, 122, 26, .6); }

/* 東方冒險 — a round gilt seal on lacquer. */
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem {
  border-radius: 50%; background: radial-gradient(circle at 35% 30%, #5A231B, #2A120E 70%) !important;
  box-shadow: 0 0 0 1.5px #D8B56A, 0 0 0 4px #1C0F0C, 0 0 0 5px rgba(216, 181, 106, .45), 0 8px 18px -8px #000 !important; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent #characterList :is(.character-class-icon, .character-initial) { color: #F4D591; font-family: 'Noto Serif TC', serif; }
:root[data-appearance="classic"][data-appearance="classic"] #mainContent :is(#characterList, #homeAdventurer) .character-level {
  background: #9E3524; color: #FFF1DA; border: 1px solid #D8B56A; border-radius: 2px; font-family: 'Noto Serif TC', serif; letter-spacing: .06em; }

/* 暖白繪本 — a round sticker, one pastel per class family. */
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem {
  --sticker: #EEF0E6; border-radius: 50%; background: var(--sticker) !important; transform: rotate(-5deg) !important;
  box-shadow: 0 0 0 3px #FFFFFF, 0 4px 0 3px rgba(71, 99, 65, .16), 0 10px 16px -8px rgba(71, 99, 65, .45) !important; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem[data-job-class="warrior"] { --sticker: #FBE3DC; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem[data-job-class="magician"] { --sticker: #ECE4F6; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem[data-job-class="archer"] { --sticker: #E4F1DC; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem[data-job-class="thief"] { --sticker: #DDEDF5; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem[data-job-class="pirate"] { --sticker: #FBF0CC; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent #characterList :is(.character-class-icon, .character-initial) { color: #3E5A39; }
:root[data-appearance="cloud"][data-appearance="cloud"] #mainContent :is(#characterList, #homeAdventurer) .character-level { background: #476341; color: #FFFDF6; border-radius: 999px; transform: translateX(-50%) rotate(5deg); }

/* 霓虹戰術 — a chamfered target frame. */
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-emblem {
  background:
    linear-gradient(#00FFCC, #00FFCC) top right / 14px 2px no-repeat, linear-gradient(#00FFCC, #00FFCC) top right / 2px 14px no-repeat,
    linear-gradient(#00FFCC, #00FFCC) bottom left / 14px 2px no-repeat, linear-gradient(#00FFCC, #00FFCC) bottom left / 2px 14px no-repeat,
    rgba(0, 255, 204, .07) !important;
  outline: 1px solid rgba(0, 255, 204, .35); outline-offset: -1px;
  clip-path: polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px);
  overflow: visible; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent #characterList :is(.character-class-icon, .character-initial) { color: #00FFCC; filter: drop-shadow(0 0 5px rgba(0, 255, 204, .7)); }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent :is(#characterList, #homeAdventurer) .character-level {
  background: #00FFCC; color: #03140F; border-radius: 0; font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; }

/* ═════════════ v147 · 公會總覽: the member's adventurer on top, quieter empty states ═════════════ */
/* Signed in: the theme's welcome headline gives way to the active character; the art stays. */
:root[data-appearance][data-appearance] #mainContent .hero-card.is-personal :is(.classic-welcome, .maple-welcome, .cloud-welcome, .epic-welcome) { display: none !important; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer {
  position: relative; z-index: 2; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center;
  column-gap: 18px; row-gap: 14px; max-width: min(640px, 64%); margin: 6px 0 22px; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer[hidden] { display: none; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-id small { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: .85rem; opacity: .85; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-id h2 { margin: 4px 0 0; font-size: clamp(1.8rem, 1.3rem + 1.5vw, 2.6rem); font-weight: 900; line-height: 1.1; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stats { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-emblem { margin: 0 0 8px !important; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-actions button { min-height: 40px; white-space: nowrap; }
:root[data-appearance][data-appearance] #mainContent .home-adventurer-empty { grid-column: 1 / -1; display: grid; gap: 6px; justify-items: start; }
:root[data-appearance][data-appearance] #mainContent .home-adventurer-empty strong { font-size: 1.6rem; font-weight: 900; }
:root[data-appearance][data-appearance] #mainContent .home-adventurer-empty p { margin: 0 0 6px; opacity: .8; }
@media (max-width: 849px) {
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer { max-width: none; grid-template-columns: auto minmax(0, 1fr); }
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-actions { grid-column: 1 / -1; }
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-actions button { width: 100%; }
}
@media (max-width: 520px) {
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stat { padding: 8px; }
  :root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stat dd { font-size: .98rem; }
}
/* 我的冒險待辦: nothing to do → one line instead of four empty cards. */
:root[data-appearance][data-appearance] #mainContent #guildTasks.is-clear { padding-block: 16px !important; }
:root[data-appearance][data-appearance] #mainContent #guildTasks.is-clear .ops-heading p { display: none; }
:root[data-appearance][data-appearance] #mainContent #guildTasks.is-clear #guildTaskContent { display: block !important; margin-top: 8px; }
:root[data-appearance][data-appearance] #mainContent .ops-all-clear { display: flex; align-items: center; gap: 10px; margin: 0; font-weight: 700; opacity: .9; }
:root[data-appearance][data-appearance] #mainContent .ops-all-clear b { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; font-size: .9rem; border: 1.5px solid currentColor; }
/* The three counters become one slim strip; the empty raid notice spans the row. */
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] .stat-grid { gap: 10px !important; margin-block: 10px 26px !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] .stat-grid > button { min-height: 0 !important; padding: 10px 16px !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] .stat-grid strong { font-size: 1.5rem !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] #homePartyList > .home-data-empty { grid-column: 1 / -1 !important; }
/* v147 fixes: the adventurer panel owns 切換角色 when signed in (guests keep 使用說明);
   names stay on one line and the stat tiles size themselves to the hero's text column. */
:root[data-appearance][data-appearance] #mainContent .hero-card.is-personal #heroSecondaryAction { display: none !important; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-id { min-width: 0; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-id h2 {
  font-size: clamp(1.5rem, 1.1rem + 1.1vw, 2.2rem) !important; white-space: nowrap; text-overflow: ellipsis; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stats { grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)) !important; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .character-stat dd { font-size: 1.1rem; }
/* The action sits under the stats so the name gets the full width; a narrow hero lets a long
   name use two lines rather than cutting it off. */
:root[data-appearance][data-appearance] #mainContent #homeAdventurer { grid-template-columns: auto minmax(0, 1fr) !important; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-actions { grid-column: 1 / -1; }
:root[data-appearance][data-appearance] #mainContent #homeAdventurer .home-adventurer-id h2 {
  white-space: normal !important; overflow: hidden; text-overflow: clip !important;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
:root[data-appearance="maple"][data-appearance="maple"] #mainContent #homeAdventurer .character-stat dd { font-size: .98rem; letter-spacing: -.02em; }
/* Phones have one column: when the adventurer is shown, the theme insignia would sit on top of the
   stats, so it steps aside (desktop keeps it beside the panel); the 東方 illustration becomes a backdrop. */
@media (max-width: 849px) {
  :root[data-appearance][data-appearance] #mainContent .hero-card.is-personal :is(.epic-insignia, .maple-insignia) { display: none !important; }
  :root[data-appearance="classic"][data-appearance="classic"] #mainContent .hero-card.is-personal .hero-mascots { opacity: .22 !important; }
}

/* ═════════════ v148 · 公會總覽: one calm column for every world ═════════════
   The four themes had four different grids (two columns, side strips) whose uneven heights left
   holes. Every world now reads top to bottom: me → to-dos → raids (with their counters) → guides → feedback. */
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"].active {
  display: flex !important; flex-direction: column !important; gap: 22px !important;
  grid-template-columns: none !important; grid-template-areas: none !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > * {
  grid-column: auto !important; grid-area: auto !important; width: 100% !important; max-width: none !important;
  margin-block: 0 !important; align-self: stretch !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .hero-card { order: 1; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > #guildTasks { order: 2; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > #feedbackBoard { order: 3; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .section-block:not(.guide-preview) { order: 4; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid { order: 5; margin-top: -10px !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .guide-preview { order: 6; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .feedback-home-entry { order: 7; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > [hidden] { display: none !important; }
/* Raid counters read as a slim strip under the raid list they describe. */
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid {
  display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; height: auto !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button {
  display: flex !important; align-items: center !important; gap: 10px;
  flex-direction: row !important; min-height: 0 !important; height: auto !important; padding: 12px 18px !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button small { display: none !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button strong { order: 2; font-size: 1.35rem !important; line-height: 1 !important; margin: 0 !important; }
/* Guides: the list keeps its natural height; feedback is a slim banner, not a tall card. */
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .guide-preview { height: auto !important; min-height: 0 !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .feedback-home-entry {
  min-height: 0 !important; height: auto !important; padding: 16px 20px !important; }
@media (max-width: 720px) {
  :root[data-appearance][data-appearance] #mainContent .page[data-view="home"].active { gap: 16px !important; }
  :root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid { gap: 8px !important; }
  :root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button { padding: 10px 12px !important; font-size: .85rem; }
}
/* Counters read as "招募中 3 │ 報名人次 9 │ 攻略書庫 1": label and number together. */
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button {
  justify-content: center !important; gap: 12px !important; }
:root[data-appearance][data-appearance] #mainContent .page[data-view="home"] > .stat-grid > button span { margin: 0 !important; opacity: .85; }
