/* Character systems are direct inventory-style entries, each with its own destination. */
/* Class abilities share the armory's iron surfaces and readable effect hierarchy. */
.sanctuary-ui .d4-systems-dialog { width: min(1060px,calc(100vw - 32px)); max-height: calc(100dvh - 40px); border-color: #796954; background: #131110; box-shadow: inset 0 0 0 3px #080707,0 18px 80px #000d; }
.sanctuary-ui .d4-systems-dialog::backdrop { background: #050403df; backdrop-filter: none; }
.sanctuary-ui .d4-systems-dialog-header { padding: 16px 22px; background: linear-gradient(#29231e,#161310); border-color: #76634b; }
.sanctuary-ui .d4-systems-dialog-header small { display: block; margin-bottom: 4px; font-size: 11px; color: #a99576; letter-spacing: 3px; }
.sanctuary-ui .d4-systems-dialog-header h2 { font: 24px var(--sanctuary-heading); letter-spacing: 3px; color: #e2d2b4; }
.sanctuary-ui .d4-systems-dialog-header button { width: 34px; height: 34px; color: #cbbca2; background: #110f0d; }
.sanctuary-ui .d4core-clone .d4-systems-dialog .d4-specialization-view { grid-template-rows: 48px auto; border: 0 !important; background: #12100f !important; box-shadow: none !important; }
.sanctuary-ui .d4core-clone .d4-systems-dialog .d4-specialization-view::before { display: none !important; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs { height: 48px; padding: 0 20px; justify-content: flex-start; gap: 2px; background: #171411; border-bottom: 1px solid #574a3a; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs::before { display: none; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button { display: flex; justify-content: center; align-items: center; flex: 0 1 170px; min-width: 0; padding: 10px 16px; background: transparent; border: 0; color: #aa9d8a; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button span,.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button small { display: none; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button b { font: 14px var(--sanctuary-heading); letter-spacing: 2px; white-space: nowrap; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button.is-active { background: linear-gradient(#55231c,#301611); color: #e2d0ac; box-shadow: inset 0 -2px #aa8253; }
.sanctuary-ui .d4-systems-dialog .d4-specialization-tabs button.is-active::after { display: none; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-panel { padding: 0 20px 14px; background: linear-gradient(120deg,#211a14aa,#100e0ddd),url('/public/img/d4-s14-ui/background-barbarian-medium.jpg') center/cover; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-panel > .d4core-mini-panel-title { margin: 0; min-height: 90px; padding: 18px 8px; border: 0; border-bottom: 1px solid #67564077; background: transparent !important; color: #dccbae; box-shadow: none; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-heading-mark { transform: none; width: 42px; height: 42px; border: 1px solid #6e5c45; background: #120f0c; box-shadow: inset 0 0 0 3px #080706; color: #c7ac7e; }
.d4core-class-mechanic-heading-mark svg { width: 28px; height: 28px; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-heading h2 { color: #e0ccb0; font: 21px var(--sanctuary-heading); }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-heading p { margin-top: 6px; color: #b0a28e; font-size: 12px; line-height: 1.6; }
.sanctuary-ui .d4-systems-dialog .d4core-expertise-rank { color: #8e7e69; border: 0; background: none; font-size: 10px; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-screen { grid-template-columns: minmax(230px,.85fr) minmax(0,1.6fr); min-height: 510px; margin-top: 18px; border: 0; background: #0b090780; box-shadow: none; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique { padding: 30px 24px; border-color: #5e4d3677; background: radial-gradient(ellipse at 50% 25%,#73432422,transparent 65%); }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique > small { color: #a9977b; font: 12px var(--sanctuary-heading); letter-spacing: 3px; border-color: #78614566; padding-bottom: 12px; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique > button { width: 90px; height: 90px; margin-top: 25px; border: 4px double #98764e; border-radius: 0; background: radial-gradient(ellipse,#4c241a,#100d0a); box-shadow: inset 0 0 0 3px #080604,0 4px 20px #0008; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique > button::before { display: none; }
.d4-barbarian-technique > button img { width: 56px; height: 56px; object-fit: contain; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique > strong { margin-top: 20px; font: 19px var(--sanctuary-heading); color: #dec79f; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-technique > p { margin-top: 16px; font-size: 13px; line-height: 1.9; color: #c1b6a5; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-list { padding: 10px 18px; gap: 7px; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-list > button { min-height: 60px; padding: 10px 14px 10px 70px; border-color: #504335; background: linear-gradient(90deg,#2c241d,#15120f); box-shadow: inset 0 0 0 2px #0b0907; grid-template-rows: auto 4px; row-gap: 8px; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-list > button.is-selected { border-color: #b28b57; background: linear-gradient(90deg,#63291d,#24140f); box-shadow: inset 3px 0 #b28b57; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-list > button:is(:hover,:focus-visible) { border-color: #ad8c62; outline: 1px solid #ad8c6266; outline-offset: 1px; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-icon { left: 10px; width: 44px; height: 44px; border: 1px solid #68543d; border-radius: 0; background: #100d0b; box-shadow: inset 0 0 0 2px #080706; }
.d4-barbarian-expertise-icon img { width: 30px; height: 30px; object-fit: contain; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-icon b { display: none; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-copy strong { font: 14px var(--sanctuary-heading); }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-copy i { border: 0; }
.sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-copy i em { background: linear-gradient(90deg,#715732,#bb9c64); box-shadow: none; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-stage { min-height: 320px; margin-top: 18px; padding: 100px 24px 28px; gap: 18px; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-crest { width: 58px; height: 58px; top: 18px; transform: translateX(-50%); border-color: #8b7150; background: #18110c; box-shadow: inset 0 0 0 3px #0a0705; }
.d4core-class-mechanic-crest svg { width: 36px; height: 36px; color: #b89c70; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-slot { min-height: 106px; clip-path: none; border-color: #756047; background: linear-gradient(120deg,#2a2118eb,#100d0bf2); box-shadow: inset 0 0 0 2px #090705; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon { transform: none; border: 1px solid #94764f; background: radial-gradient(ellipse,#44332155,#0c0907); box-shadow: inset 0 0 0 3px #070504; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon img,.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon em,.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon b { transform: none; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon em { display: none; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-icon b { font-size: 24px; color: #b49a74; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-slot.is-filled { border-color: #b3925e; box-shadow: inset 3px 0 #a48654; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-copy small { font-size: 11px; color: #bca47f; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-copy strong { font: 17px var(--sanctuary-heading); color: #e0d1b9; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-copy i { font-size: 11px; color: #a99c87; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-details { padding: 10px 4px; gap: 12px; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-details article { border: 0; border-top: 1px solid #705a3e77; padding: 16px 12px; background: #100d0a88; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-details p,.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-option-grid p { font-size: 13px; line-height: 1.85; color: #c1b6a5; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-picker { width: min(850px,calc(100vw - 48px)); background: #15110e; border-color: #8b7150; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-picker > header { background: linear-gradient(#33281e,#1b1510); border-color: #796044; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-option-grid > button { padding: 16px; background: #201912; border: 1px solid #5e4d38; box-shadow: inset 0 0 0 2px #100c08; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-option-grid > button.is-selected { background: #402319; border-color: #ba955e; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-option-grid strong { font: 17px var(--sanctuary-heading); color: #ddc8a5; }
.sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-source { padding-top: 14px; color: #827462; font-size: 10px; }
@media(min-width:900px) {
 .sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-stage.is-necromancer { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .sanctuary-ui .d4-systems-dialog .is-necromancer .d4core-class-mechanic-slot { grid-template-columns: 1fr; justify-items: center; text-align: center; min-height: 170px; }
}
@media(max-width:650px) {
 .sanctuary-ui .d4-systems-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); }
 .sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-panel { padding: 0 10px 10px; }
 .sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-screen { grid-template-columns: 1fr; }
 .sanctuary-ui .d4-systems-dialog .d4-barbarian-technique { padding: 16px; border: 0; }
 .sanctuary-ui .d4-systems-dialog .d4-barbarian-expertise-list { padding: 10px; }
 .sanctuary-ui .d4-systems-dialog .d4core-class-mechanic-stage { grid-template-columns: minmax(0,1fr); padding: 95px 10px 20px; }
 .sanctuary-ui .d4-systems-dialog .d4core-expertise-rank { display: none; }
}
.d4-character-system-tabs { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; margin-top: 12px; border-top: 1px solid #676665; border-bottom: 1px solid #474645; background: linear-gradient(#100f0eac,#181716c9); }
.sanctuary-ui .d4-character-system-tab { position: relative; display: flex; align-items: center; gap: 12px; min-width: 0; min-height: 62px; padding: 8px 12px; border: 0; background: transparent; text-align: left; color: #cbbd9c; box-shadow: none; }
.d4-character-system-tab + .d4-character-system-tab { border-left: 1px solid #74674655; }
.d4-character-system-emblem { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; background: radial-gradient(ellipse,#71604333,transparent 72%); }
.d4-character-system-emblem img { width: 38px; height: 38px; object-fit: contain; filter: grayscale(.8) brightness(.8); }
.d4-character-system-copy { min-width: 0; }
.d4-character-system-copy strong { display: block; font: 16px var(--sanctuary-heading); letter-spacing: 1px; color: #ded0ae; }
.d4-character-system-copy small { display: block; margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; line-height: 1.5; color: #9c9b9a; }
.sanctuary-ui .d4-character-system-tab:hover { background: linear-gradient(#4f211c55,#30181155); }
.d4-character-system-tab:hover::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: #ac8a59; }
.d4-character-system-tab:hover .d4-character-system-emblem img,.d4-character-system-tab.is-equipped .d4-character-system-emblem img { filter: none; }
.d4-character-system-tab:focus { outline: none; }
.d4-character-system-tab:focus-visible { outline: 1px solid #c1a873; outline-offset: -3px; }
@media(max-width:500px) {
 .sanctuary-ui .d4-character-system-tab { gap: 6px; padding: 8px 5px; }
 .d4-character-system-emblem { flex-basis: 32px; width: 32px; }
 .d4-character-system-emblem img { width: 30px; height: 30px; }
 .d4-character-system-copy strong { font-size: 14px; }
 .d4-character-system-copy small { font-size: 10px; }
}

/* War plans: named activity seals, an iron-framed map and the current activity's rewards. */
.sanctuary-ui .d4core-layout.is-warplan-workbench .d4-warplan-panel { padding: 0; background: transparent !important; }
.sanctuary-ui .d4-warplan-heading { min-height: 85px; padding: 16px 20px; border: 1px solid #5f5e5d; background: var(--sanctuary-stone); box-shadow: inset 0 0 0 3px #0c0b0a; }
.d4-warplan-eyebrow { display: block; color: #a29b85; font-size: 11px; letter-spacing: 2px; }
.sanctuary-ui .d4-warplan-heading h2 { margin-top: 4px; font: 25px var(--sanctuary-heading); letter-spacing: 2px; color: #e1d5b6; }
.sanctuary-ui .d4-warplan-budget { gap: 9px; color: #aba48e; font-size: 12px; }
.sanctuary-ui .d4-warplan-budget strong { font: 23px var(--sanctuary-heading); color: #dcc18b; }
.sanctuary-ui .d4-warplan-tabs { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 7px; margin: 12px 0; padding: 0; overflow: visible; }
.sanctuary-ui .d4-warplan-tab { width: 100%; min-width: 0; grid-template-columns: 40px minmax(0,1fr); grid-template-rows: 1fr 1fr; column-gap: 9px; row-gap: 2px; align-items: center; justify-items: start; padding: 10px; border: 1px solid #4a4948; background: #100f0ecd; color: #c0b79f; box-shadow: inset 0 0 0 2px #0b0a09; }
.sanctuary-ui .d4-warplan-tab-icon { grid-row: 1 / 3; width: 40px; border: 0; border-radius: 0; background: none; box-shadow: none; }
.sanctuary-ui .d4-warplan-tab img { width: 36px; height: 36px; }
.sanctuary-ui .d4-warplan-tab:not(.is-active) img { filter: grayscale(.55) brightness(.8); }
.d4-warplan-tab-name { font: 13px var(--sanctuary-heading); text-align: left; white-space: nowrap; }
.sanctuary-ui .d4-warplan-tab-progress { color: #91908f; font-size: 11px; }
.sanctuary-ui .d4-warplan-tab.is-active { background: linear-gradient(110deg,#5d261bcc,#211811ef); border-color: #a88d60; color: #efdebb; }
.sanctuary-ui .d4-warplan-tab.is-active .d4-warplan-tab-icon { background: none; border: 0; box-shadow: none; }
.sanctuary-ui .d4-warplan-tab.is-active .d4-warplan-tab-progress { color: #d6bd8d; }
.sanctuary-ui .d4-warplan-tab:hover { border-color: #b6a277; }
.d4-warplan-workspace { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 12px; align-items: start; }
.sanctuary-ui .d4-warplan-board { height: auto; min-height: 0; margin: 0; border: 1px solid #666564; border-radius: 0; background: linear-gradient(#0c0b0a99,#0c0b0ac9),var(--sanctuary-stone); background-size: cover; box-shadow: inset 0 0 0 3px #0b0a09,inset 0 0 0 4px #393837; }
.sanctuary-ui .d4-warplan-board::before { inset: 9px; border: 1px solid #73727129; background: none; mask-image: none; opacity: 1; }
.sanctuary-ui .d4-warplan-board::after { display: none; }
.d4-warplan-board-heading { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin: 0 18px; padding: 16px 0; border-bottom: 1px solid #525150; }
.sanctuary-ui .d4-warplan-board h3 { position: static; transform: none; text-align: left; color: #d6c7a3; font: 20px var(--sanctuary-heading); }
.d4-warplan-board-heading > span { font-size: 11px; color: #a49e87; }
.sanctuary-ui .d4-warplan-stage { position: relative; inset: auto; overflow: auto; scrollbar-color: #646362 #11100f; }
.sanctuary-ui .d4-warplan-canvas { position: relative; left: auto; top: auto; margin: 0 auto; }
.sanctuary-ui .d4-warplan-line { opacity: .9; box-shadow: none; background: linear-gradient(#83828166,#1a1918,#6c6b6a44); }
.sanctuary-ui .d4-warplan-line.is-enabled { opacity: 1; background: linear-gradient(#aea07d,#4e4632,#1c1b1a); }
.sanctuary-ui .d4-warplan-line.is-active { opacity: 1; background: linear-gradient(#d59b6d,#a13221,#441009); box-shadow: 0 1px 2px #000; }
.sanctuary-ui .d4-warplan-node.is-muted img { opacity: .8; filter: grayscale(.65) brightness(.65); }
.sanctuary-ui .d4-warplan-node.is-enabled img { opacity: 1; filter: grayscale(.2) brightness(.94); }
.sanctuary-ui .d4-warplan-node:is(.is-selected,.is-active:hover) { filter: none; }
.sanctuary-ui .d4-warplan-node.is-active:not(.root)::after { content: ''; position: absolute; inset: 10px; border: 1px solid #b66242; border-radius: 50%; box-shadow: 0 0 0 2px #250e07; pointer-events: none; }
.sanctuary-ui .d4-warplan-node.choice.is-active::after { inset: 9px; border-radius: 0; transform: rotate(45deg); }
.sanctuary-ui .d4-warplan-node:focus-visible { outline: 1px solid #c9b37d; outline-offset: 2px; border-radius: 50%; filter: none; }
.sanctuary-ui .d4-warplan-tab:focus-visible { outline: 2px solid #c9b37d; outline-offset: 2px; }
.sanctuary-ui .d4-warplan-tooltip { z-index: 30; width: min(380px,calc(100vw - 24px)); max-height: min(440px,calc(100vh - 24px)); border: 1px solid #9b8357; border-radius: 0; background: linear-gradient(120deg,#1c1b1af5,#0a0908fa); box-shadow: inset 0 0 0 3px #0a0908, inset 0 0 0 4px #444342,0 14px 30px #000b; padding: 18px 20px; }
.d4-warplan-tooltip-heading { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.d4-warplan-tooltip-heading img { width: 38px; height: 38px; object-fit: contain; }
.sanctuary-ui .d4-warplan-tooltip strong { font: 21px/1.4 var(--sanctuary-heading); color: #e0c799; }
.sanctuary-ui .d4-warplan-tooltip em { padding-bottom: 10px; border-bottom: 1px solid #51472f; font-size: 11px; font-weight: 400; color: #b6a783; }
.sanctuary-ui .d4-warplan-tooltip p { font-size: 14px; line-height: 1.85; color: #d1ccba; }
.sanctuary-ui .d4-warplan-tooltip small { display: block; border-top: 1px solid #51472f; padding-top: 10px; color: #b6a783; font-size: 11px; }
.d4-warplan-summary { padding: 22px 18px; min-height: 420px; border: 1px solid #636261; background: var(--sanctuary-stone); background-size: cover; box-shadow: inset 0 0 0 3px #0c0b0a,inset 0 0 0 4px #363534; }
.d4-warplan-summary h3 { margin: 6px 0 12px; font: 23px var(--sanctuary-heading); color: #dfd2af; }
.d4-warplan-summary-scope { font-size: 11px; color: #9d9c9b; padding-bottom: 15px; border-bottom: 1px solid #525150; }
.d4-warplan-empty { padding: 26px 5px; text-align: center; }
.d4-warplan-empty img { width: 64px; height: 64px; object-fit: contain; margin: 0 auto 18px; opacity: .65; filter: grayscale(.6); }
.d4-warplan-empty strong { color: #c5b691; font: 15px var(--sanctuary-heading); }
.d4-warplan-empty p,.d4-warplan-summary-note { font-size: 12px; line-height: 1.9; color: #9c9b9a; margin-top: 12px; }
.d4-warplan-summary-list { max-height: 620px; overflow-y: auto; scrollbar-color: #646362 #11100f; }
.d4-warplan-summary-list article { padding: 16px 0; border-bottom: 1px solid #a6976626; }
.d4-warplan-summary-list h4 { color: #d4b97f; font: 17px var(--sanctuary-heading); margin-bottom: 8px; }
.d4-warplan-summary-list p { font-size: 13px; color: #c0bdab; line-height: 1.85; }
.sanctuary-ui .d4-warplan-message { max-width: none; margin: 8px 0; padding: 10px 12px; background: #1b1a19; color: #c5b488; border-color: #8c7447; }
.sanctuary-ui .d4-warplan-message.is-error { background: #29130f; color: #e0a18d; border-color: #8b3e2e; }
@media(max-width:1150px) {
 .d4-warplan-workspace { grid-template-columns: minmax(0,1fr); }
 .sanctuary-ui .d4-warplan-tab { grid-template-columns: 1fr; grid-template-rows: auto; justify-items: center; gap: 6px; padding: 9px 4px; }
 .sanctuary-ui .d4-warplan-tab-icon { grid-row: auto; }
 .d4-warplan-summary { min-height: 0; }
}
@media(max-width:600px) {
 .sanctuary-ui .d4-warplan-tabs { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
 .sanctuary-ui .d4-warplan-heading { padding: 14px; flex-wrap: wrap; gap: 12px; }
 .sanctuary-ui .d4-warplan-budget { flex-wrap: wrap; margin-left: 0; }
 .d4-warplan-board-heading { align-items: start; flex-direction: column; gap: 8px; }
 .sanctuary-ui .d4-warplan-stage { touch-action: pan-x pan-y; }
}

/* Mercenary contracts: iron frames, restrained crimson selection, readable skill inspection. */
.sanctuary-ui .d4-mercenary-panel { padding: 0 !important; border: 0 !important; background: transparent !important; }
.sanctuary-ui .d4core-merc-layout { grid-template-columns: minmax(0, 1fr) 330px; gap: 14px; align-items: stretch; }
.sanctuary-ui :is(.d4core-merc-board,.d4core-merc-support) { min-width: 0; min-height: 0; padding: 20px; border: 1px solid #666564; border-radius: 0; background: var(--sanctuary-stone); background-size: cover; box-shadow: inset 0 0 0 3px #0c0b0a, inset 0 0 0 4px #363534; }
.d4-merc-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 60px; padding-bottom: 15px; border-bottom: 1px solid #545352; }
.d4-merc-eyebrow { display: block; font-size: 11px; letter-spacing: 2px; color: #a39a83; }
.sanctuary-ui .d4-merc-heading h2 { margin-top: 5px; font-family: var(--sanctuary-heading); font-size: 27px; font-weight: 700; letter-spacing: 2px; color: #e3d8ba; }
.d4-merc-investment { display: grid; justify-items: end; gap: 3px; color: #a9a18d; font-size: 11px; }
.d4-merc-investment strong { font: 27px var(--sanctuary-heading); color: #d3bc87; }
.d4-merc-seal { color: #887448; font-size: 25px; padding-right: 8px; }
.sanctuary-ui .d4core-merc-roster { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 16px 0; }
.sanctuary-ui .d4core-merc-roster.is-support { grid-template-columns: repeat(3,minmax(0,1fr)); }
.sanctuary-ui .d4core-merc-portrait-tile { position: relative; width: 100%; display: flex; justify-content: start; align-items: center; gap: 9px; padding: 5px; border: 1px solid #494847; color: #b4ae9e; background: #0b0a09b3; box-shadow: inset 0 0 0 2px #0b0a09; }
.sanctuary-ui .d4core-merc-face { width: 48px; flex: 0 0 48px; filter: none; }
.sanctuary-ui .d4core-merc-portrait-tile b { font-family: var(--sanctuary-heading); font-size: 13px; font-weight: 700; }
.sanctuary-ui .d4core-merc-portrait-tile:not(.is-active) .d4core-merc-face { filter: grayscale(.7) brightness(.8); }
.sanctuary-ui .d4core-merc-portrait-tile.is-active { border-color: #b09a67; color: #eee0bb; background: linear-gradient(90deg,#61271bd9,#251711e8); box-shadow: inset 0 0 0 2px #170f0a; }
.sanctuary-ui .d4core-merc-portrait-tile.is-active::after { content: ''; position: absolute; inset: auto 18% -1px; height: 2px; background: #bba16a; }
.sanctuary-ui .is-support .d4core-merc-portrait-tile { flex-direction: column; gap: 4px; padding: 6px 2px; }
.sanctuary-ui .is-support .d4core-merc-face { width: 48px; }
.d4-merc-tree-caption { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 2px; border-top: 1px solid #464544; border-bottom: 1px solid #464544; color: #d4c4a0; font: 15px var(--sanctuary-heading); }
.d4-merc-tree-caption small { font: 11px/1.5 sans-serif; color: #969594; }
.sanctuary-ui .d4core-merc-skilltree { width: 100%; max-width: 960px; height: auto; min-height: 420px; aspect-ratio: 8 / 5; margin: 0 auto; border-radius: 0; background: radial-gradient(ellipse at 50% 40%,#30281b44,transparent 65%),linear-gradient(#0b0a09a8,#0a090899); }
.sanctuary-ui .d4core-merc-skilltree::before { inset: 12px; border: 1px solid #88734820; background: none; opacity: 1; }
.d4-merc-branch { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.d4-merc-branch line { stroke: #686766; stroke-width: 2; }
.d4-merc-branch.is-active line { stroke: #b64731; stroke-width: 3; }
.sanctuary-ui .d4core-merc-node { border-color: #696867; background-color: #161514; box-shadow: 0 0 0 3px #0b0a09,0 0 0 4px #403f3e; }
.sanctuary-ui .d4core-merc-node.square { width: 46px; }
.sanctuary-ui .d4core-merc-node.passive { width: 29px; border: 1px solid #656463; overflow: visible; }
.sanctuary-ui .d4core-merc-node img { opacity: .8; filter: grayscale(.55) brightness(.8); transition: none; }
.sanctuary-ui .d4core-merc-node.passive img { border-radius: 50%; }
.sanctuary-ui .d4core-merc-node.is-active { filter: none; border-color: #b24d35; box-shadow: 0 0 0 2px #240c08,0 0 0 3px #a04a32; }
.sanctuary-ui .d4core-merc-node.is-active img { filter: none; opacity: 1; }
.sanctuary-ui .d4core-merc-node:hover { border-color: #d5c28d; }
.sanctuary-ui .d4core-merc-node.is-selected { box-shadow: 0 0 0 2px #340e08,0 0 0 3px #c3935d; }
.sanctuary-ui .d4core-merc-node span { top: calc(100% + 7px); left: 50%; transform: translateX(-50%); width: 90px; height: auto; clip: auto; overflow: visible; color: #bcb29a; font: 11px/1.4 var(--sanctuary-heading); text-shadow: 0 2px 2px #000; pointer-events: none; }
.sanctuary-ui .d4core-merc-node.passive span { display: none; }
.sanctuary-ui .d4core-merc-node-info { position: static; display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; width: 100%; min-height: 120px; padding: 16px; border: 1px solid #5d523c; border-radius: 0; background: linear-gradient(110deg,#1b1a19ee,#0c0b0aeb); box-shadow: inset 0 0 0 3px #0c0b0a; }
.d4core-merc-node-info > img { width: 48px; height: 48px; border: 1px solid #857354; padding: 3px; background: #0a0908; }
.sanctuary-ui .d4core-merc-node-info strong { margin-top: 5px; color: #e2c999; font: 19px var(--sanctuary-heading); }
.sanctuary-ui .d4core-merc-node-info p { color: #c4bfad; font-size: 13px; line-height: 1.8; }
.sanctuary-ui .d4core-merc-subtitle { display: flex; align-items: center; gap: 10px; margin-top: 22px; padding-bottom: 10px; border-bottom: 1px solid #4a4948; font: 15px var(--sanctuary-heading); color: #c8ba97; }
.d4core-merc-subtitle > span { color: #85734d; }
.sanctuary-ui .d4core-merc-skillbar { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.sanctuary-ui .d4core-merc-icon-button { display: flex; align-items: center; gap: 8px; width: 100%; aspect-ratio: auto; min-height: 49px; padding: 6px; border: 1px solid #454443; box-shadow: none; background: #0c0b0a99; color: #beb8a6; text-align: left; }
.sanctuary-ui .d4core-merc-icon-button img { width: 32px; height: 32px; flex: 0 0 32px; }
.d4core-merc-icon-button > span { font-size: 12px; }
.sanctuary-ui .d4core-merc-icon-button.is-active { border-color: #a58c59; color: #e7d7b0; background: linear-gradient(90deg,#522317bb,#1c1811); box-shadow: inset 0 0 0 2px #160e08; }
.sanctuary-ui .d4core-merc-selected-line { min-height: 60px; border: 0; padding: 4px 0; color: #aaa693; font-size: 12px; line-height: 1.8; }
.sanctuary-ui .d4core-merc-triggers { gap: 7px; }
.sanctuary-ui .d4core-merc-trigger { grid-template-columns: 16px minmax(0,1fr); min-height: 52px; padding: 9px 10px; border: 1px solid #464544; background: #0c0b0a80; gap: 12px; }
.sanctuary-ui .d4core-merc-trigger span { width: 11px; height: 11px; background: #0c0b0a; border: 1px solid #757473; transform: rotate(45deg); filter: none; }
.sanctuary-ui .d4core-merc-trigger p { font-size: 12px; line-height: 1.7; }
.sanctuary-ui .d4core-merc-trigger.is-active { border-color: #8c7650; background: linear-gradient(90deg,#412218aa,#191817); color: #e0d2ad; }
.sanctuary-ui .d4core-merc-trigger.is-active span { background: #bba16a; box-shadow: inset 0 0 0 2px #372719; }
.d4-merc-order-status { margin-top: 20px; border-top: 1px solid #464544; padding-top: 15px; color: #aa9b76; font-size: 11px; line-height: 1.6; }
.sanctuary-ui .d4core-merc-build-row { justify-content: start; gap: 14px; margin-top: 10px; padding: 12px 5px; border-color: #4a4948; color: #8f8e8d; font-size: 12px; }
.sanctuary-ui .d4core-merc-build-row h3 { font: 14px var(--sanctuary-heading); color: #c7b994; }
.d4core-merc-build-row small { margin-left: auto; }
.sanctuary-ui .d4-mercenary-panel button:focus { outline: none; }
.sanctuary-ui .d4-mercenary-panel button:focus-visible { outline: 2px solid #bba16a; outline-offset: 4px; }
.sanctuary-ui :is(.d4core-merc-portrait-tile,.d4core-merc-icon-button,.d4core-merc-trigger):hover { border-color: #baaa7d; }
@media (max-width:1100px) {
 .sanctuary-ui .d4core-merc-layout { grid-template-columns: minmax(0,1fr) 290px; gap: 10px; }
 .sanctuary-ui :is(.d4core-merc-board,.d4core-merc-support) { padding: 15px; }
 .sanctuary-ui .d4core-merc-portrait-tile { flex-direction: column; gap: 4px; }
}
@media (max-width:800px) {
 .sanctuary-ui .d4core-merc-layout { grid-template-columns: minmax(0,1fr); }
 .sanctuary-ui .d4core-merc-skilltree { min-height: 400px; height: auto; }
 .sanctuary-ui .d4core-merc-node.square { width: 38px; }
 .sanctuary-ui .d4core-merc-node.passive { width: 25px; }
 .sanctuary-ui .d4core-merc-node span { width: 66px; font-size: 10px; }
 .sanctuary-ui .d4core-merc-node-info { min-height: 135px; padding: 13px; gap: 10px; }
 .sanctuary-ui .d4core-merc-build-row { flex-wrap: wrap; gap: 7px 12px; }
 .d4core-merc-build-row small { width: 100%; margin-left: 0; }
}

/* Sanctuary UI: shared game-menu surfaces.
   Reference evidence and scope: docs/ui-sanctuary.md.
   Kept separate from legacy planner geometry so combat and tree state stay intact. */
:root {
  --sanctuary-ink: #100f0f;
  --sanctuary-panel: #1c1b1a;
  --sanctuary-border: #57524d;
  --sanctuary-bone: #e1dbcf;
  --sanctuary-muted: #a7a19a;
  --sanctuary-gold: #b7a082;
  --sanctuary-red: #701b1a;
  --sanctuary-heading: "Palatino Linotype", "Noto Serif SC", "Source Han Serif SC", "Songti SC", SimSun, serif;
  --sanctuary-stone: linear-gradient(110deg, #1b1918eb, #101011f0), url("/public/img/d4-s14-ui/background-barbarian-medium.jpg");
}

/* Paragon: a stone workbench with a retractable glyph drawer. */
.d4-paragon-summary-scope,.d4-paragon-summary-note,.d4-paragon-summary-empty { font-size:11px; line-height:1.8; color:#999897; }
.d4-paragon-summary-count { display:flex; align-items:baseline; gap:10px; margin:14px 0 20px; }
.d4-paragon-summary-count b { font-size:32px; color:#e0c68c; font-family:var(--sanctuary-heading); }
.d4-paragon-summary-count span { font-size:11px; color:#a7a28f; }
.sanctuary-ui .d4-paragon-sidebar .d4-paragon-summary-heading { font-size:14px; margin:18px 0 10px; padding-top:14px; border-top:1px solid #4c4b4a; }
.d4-paragon-summary-rows > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:8px 0; border-bottom:1px solid #ffffff0a; }
.d4-paragon-summary-rows dt { color:#bebba9; font-size:12px; }
.d4-paragon-summary-rows dd { color:#e7d29f; font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.d4-paragon-summary-note { margin-top:13px; }
.d4-paragon-summary-effect { margin:14px 0; padding-left:10px; border-left:2px solid #9c7846; }
.d4-paragon-summary-effect h4 { font-size:13px; color:#d6ac72; margin-bottom:7px; }
.d4-paragon-summary-effect p { font-size:11px; line-height:1.9; color:#b5b1a1; white-space:pre-line; }
.d4-paragon-summary-effect[data-kind="socket"] { border-color:#8a7899; }
.sanctuary-ui .d4-paragon-management { position:absolute; z-index:19; top:12px; right:12px; bottom:12px; width:min(320px,calc(100% - 24px)); padding:18px; overflow:auto; border:1px solid #817153; background:var(--sanctuary-stone) center / cover; box-shadow:inset 0 0 0 3px #0a0908,0 10px 28px #000a; color:#c7bfae; scrollbar-width:thin; }
.d4-paragon-management h3 { color:#e2cfaa; font-family:var(--sanctuary-heading); font-size:23px; }
.sanctuary-ui .d4-paragon-management[aria-hidden="true"] { display:none!important; }
.sanctuary-ui .d4-paragon-management button:disabled,.sanctuary-ui .d4-paragon-picker-actions button:disabled { opacity:.4; cursor:default; }
.sanctuary-ui .d4-paragon-board-tabs button[aria-current="true"] { border-color:#c3a36b; color:#f2dfb9; background:linear-gradient(#543226,#251711); }
.d4-paragon-management > .space-y-2 { display:none; }
.d4-paragon-management select { color:#e2d4b5; background:#121110; border:1px solid #5a5958; }
.sanctuary-ui .d4-paragon-preview-mode { top:12px; right:12px; bottom:12px; width:min(320px,calc(100% - 24px)); height:auto; max-height:calc(100% - 24px); grid-template-rows:auto minmax(0,1fr) auto; background:var(--sanctuary-stone) center / cover; border-color:#817153; box-shadow:inset 0 0 0 3px #0a0908,0 10px 28px #000a; }
.sanctuary-ui .d4-paragon-preview-head { padding:16px; background:transparent; box-shadow:none; }
.sanctuary-ui .d4-paragon-preview-head p { color:#a79b80; font-weight:400; letter-spacing:2px; font-size:10px; }
.sanctuary-ui .d4-paragon-preview-head h2 { font-family:var(--sanctuary-heading); font-size:18px; margin-top:6px; color:#e2cfaa; }
.sanctuary-ui .d4-paragon-preview-selector { padding:14px 16px; background:transparent; border:0; }
.sanctuary-ui .d4-paragon-preview-selector > p,.sanctuary-ui .d4-paragon-preview-selector > h3 { display:none; }
.sanctuary-ui .d4-paragon-preview-cycle { margin:0 0 14px; }
.d4-paragon-board-choice { display:block; font-size:11px; color:#aca38e; }
.d4-paragon-board-choice select { display:block; width:100%; min-height:40px; margin-top:7px; padding:6px 10px; border:1px solid #7b6a4b; color:#e2cfaa; background:#151413; font-family:var(--sanctuary-heading); font-size:17px; }
.sanctuary-ui .d4-paragon-preview-legendary { margin-top:16px; padding:14px 0; }
.sanctuary-ui .d4-paragon-preview-legendary p { font-size:12px; line-height:1.9; }
.sanctuary-ui .d4-paragon-preview-orientation { margin-top:14px; }
.sanctuary-ui .d4-paragon-picker-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px; box-shadow:none; background:#0f0e0d; }
.sanctuary-ui .d4-paragon-picker-actions button { min-height:34px; padding:7px 10px; white-space:nowrap; word-break:keep-all; font-size:12px; }
.sanctuary-ui .d4-paragon-picker-actions button.is-primary { grid-column:1/-1; min-height:39px; background:linear-gradient(#713120,#3c170f); border-color:#9d674a; color:#f2ddae; letter-spacing:2px; }
.d4-glyph-details { margin-top:14px; font-size:12px; color:#d7cbb3; }
.d4-glyph-details label { display:flex; align-items:center; gap:6px; }
.d4-glyph-details input { width:62px; min-height:32px; padding:4px 6px; color:#f0dfbc; border:1px solid #776647; background:#100f0e; font-variant-numeric:tabular-nums; }
.d4-glyph-details h4 { margin:16px 0 5px; padding-top:12px; border-top:1px solid #4c4b4a; font-family:var(--sanctuary-heading); font-size:14px; color:#d6be8c; }
.d4-glyph-effect { margin:8px 0; line-height:1.85; white-space:pre-line; }
.d4-glyph-radius,.d4-glyph-requirement { margin:8px 0; font-size:11px; line-height:1.6; color:#a5a18e; }
.d4-glyph-details .d4-glyph-legendary { color:#d99b65; }
.d4-glyph-details .is-locked { color:#908f8e; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-map { background:linear-gradient(#100f0e88,#0b0a0999),url('/public/img/d4-paragon/paragon-view-bg.webp') center / cover!important; box-shadow:inset 0 0 60px #0009!important; }
/* The camera can reveal nodes outside its original SVG viewport. Only the
   stationary map may clip paint; clipping this scaled layer cuts boards off. */
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-map .d4-tree-transform { height:calc(100% - 36px); margin-top:36px; contain:layout style; overflow:visible; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-composite-svg { width:100%!important; height:100%; min-height:0!important; min-width:0!important; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-sidebar { background:var(--sanctuary-stone) center / cover!important; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-sidebar::before { display:none; }
.sanctuary-ui .is-paragon-workbench .d4-paragon-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; padding:7px 12px; min-height:46px; margin:0; border:0; border-bottom:1px solid #504f4e; background:#151413; box-shadow:none; }
.sanctuary-ui .d4-paragon-toolbar > strong { color:#c5b999; letter-spacing:2px; font-family:var(--sanctuary-heading); }
.sanctuary-ui .d4-paragon-toolbar > span { font-size:12px; color:#a7a495; }
.sanctuary-ui .d4-paragon-toolbar b { margin-left:5px; font-size:18px; font-variant-numeric:tabular-nums; color:#e3d1a7; }
.sanctuary-ui .d4-paragon-toolbar .d4-skill-tools { margin-left:auto; }
.sanctuary-ui .is-paragon-workbench .d4-paragon-panel { position:relative; padding:0; border:1px solid #525150; background:#131211; }
.sanctuary-ui .d4-paragon-panel > .d4core-canvas-actions { display:none; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-fragment { display:grid; grid-template-columns:minmax(0,1fr); position:relative; gap:0; margin:0; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .is-inspector-open .d4-paragon-fragment { grid-template-columns:236px minmax(0,1fr); }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-map { grid-column:1; grid-row:1; height:calc(100dvh - 240px); min-height:360px; max-height:none; padding:0!important; border:0!important; border-radius:0; background:linear-gradient(#100f0e66,#0b0a0977),url('/public/img/d4-paragon/paragon-view-bg.webp') center / cover; box-shadow:inset 0 0 60px #0009; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .is-inspector-open .d4-paragon-map { grid-column:2; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-sidebar { display:none!important; grid-column:1; grid-row:1; height:calc(100dvh - 240px); min-height:360px; overflow:auto; padding:16px; border:0; border-right:1px solid #595857; background:var(--sanctuary-stone) center / cover; scrollbar-width:thin; }
.sanctuary-ui .d4core-layout.is-paragon-workbench .is-inspector-open .d4-paragon-sidebar { display:block!important; }
.d4-paragon-inspector-heading { display:flex; align-items:center; justify-content:space-between; padding-bottom:12px; margin-bottom:20px; border-bottom:1px solid #595857; color:#ddd2b9; font-family:var(--sanctuary-heading); letter-spacing:2px; }
.d4-paragon-inspector-heading button { width:28px; height:28px; border:1px solid #545352; color:#c7bba2; background:#141312; font-size:20px; }
.sanctuary-ui .d4-paragon-sidebar h3 { font-family:var(--sanctuary-heading); color:#dfd2af; font-size:22px; }
.sanctuary-ui .d4-paragon-sidebar button,.sanctuary-ui .d4-paragon-sidebar select { border-radius:0; }
.sanctuary-ui .d4-paragon-sidebar select { background:#121110; border:1px solid #61605f; color:#d9c9a6; }
.sanctuary-ui .d4-paragon-legacy-selection,.sanctuary-ui .d4-paragon-legacy-summary { display:none; }
.sanctuary-ui .d4-paragon-board-tabs { position:absolute; z-index:3; top:12px; left:12px; right:12px; display:flex; flex-wrap:nowrap; gap:4px; overflow-x:auto; margin:0; padding:2px; pointer-events:auto; }
.sanctuary-ui .d4-paragon-board-tabs button { flex-shrink:0; border-radius:0; border:1px solid #62583e; background:linear-gradient(#302a1fee,#151413ee); padding:7px 15px; font-family:var(--sanctuary-heading); color:#d5c5a0; box-shadow:inset 0 0 0 2px #0e0d0c; }
.sanctuary-ui .d4-paragon-board-tabs button:hover { border-color:#b69a63; color:#f0dfb7; }
.sanctuary-ui .paragon-node-group:focus { outline:none; }
.sanctuary-ui .paragon-node-group:focus-visible .paragon-node-hitbox { stroke:#d2bc81; stroke-width:1.5px; }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"] { --paragon-tone:#d0c6ac; border-color:var(--paragon-tone); }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"][data-rarity="magic"] { --paragon-tone:#8badca; }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"][data-rarity="rare"] { --paragon-tone:#d2b36f; }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"][data-rarity="legendary"] { --paragon-tone:#d99260; }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"][data-rarity="socket"] { --paragon-tone:#b59ace; }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"] h3 { color:var(--paragon-tone); }
.sanctuary-ui .d4-tree-tooltip[data-tree-kind="paragon"] .d4-tooltip-emblem { border-color:var(--paragon-tone); }
.d4-tooltip-paragon-art { width:64px; height:64px; background-repeat:no-repeat; transform:scale(.65625); transform-origin:top left; }
@media (max-width:900px) {
  .sanctuary-ui .d4core-layout.is-paragon-workbench .is-inspector-open .d4-paragon-fragment { grid-template-columns:minmax(0,1fr); }
  .sanctuary-ui .d4core-layout.is-paragon-workbench .is-inspector-open .d4-paragon-map { grid-column:1; }
  .sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-sidebar { position:absolute; z-index:8; top:0; left:0; width:min(288px,calc(100% - 32px)); box-shadow:12px 0 25px #0008; }
  .sanctuary-ui .d4-paragon-toolbar { gap:6px 12px; }
  .sanctuary-ui .d4-paragon-toolbar .d4-skill-tools { flex-wrap:wrap; }
}
@media (max-width:600px) {
  .sanctuary-ui .d4-paragon-toolbar .d4-skill-tools { width:100%; margin-left:0; }
  .sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-map,.sanctuary-ui .d4core-layout.is-paragon-workbench .d4-paragon-sidebar { height:calc(100dvh - 275px); }
  .d4-tooltip-paragon-art { transform:scale(.46875); }
}
html { scrollbar-color: #626160 #0c0e0e; scrollbar-width: thin; }
/* Skill inspection follows the in-game plaque: emblem, title, rank band,
   readable effect text, and a separate command footer. No backdrop blur. */
.sanctuary-ui .d4-tree-tooltip {
  width: min(350px, calc(100vw - 24px)); max-height: calc(100dvh - 48px); overflow: visible;
  padding: 0; border: 1px solid #797877; border-radius: 0;
  background: linear-gradient(#141312f5,#0b0a09fa), url('/public/img/d4-s14-ui/background-barbarian-medium.jpg') center / cover;
  box-shadow: 0 12px 28px #000b, inset 0 0 0 3px #070605, inset 0 0 0 4px #4a4948;
  pointer-events: auto; overscroll-behavior: contain; scrollbar-width: thin; color: #d7d0c0;
}
.sanctuary-ui .d4-tooltip-content { max-height: calc(100dvh - 50px); padding: 34px 22px 0; overflow: auto; overscroll-behavior: contain; }
.sanctuary-ui .d4-tooltip-emblem { position: absolute; z-index: 1; top: -24px; left: calc(50% - 27px); width: 54px; height: 54px; margin: 0; padding: 5px; border: 1px solid #a08a61; background: linear-gradient(135deg,#3d3c3b,#100f0e 45%,#30291d); box-shadow: inset 0 0 0 2px #0a0908,0 2px 6px #000; pointer-events: none; }
.sanctuary-ui .d4-tooltip-emblem img { width: 100%; height: 100%; object-fit: contain; }
.sanctuary-ui .d4-tree-tooltip [hidden] { display: none !important; }
.sanctuary-ui .d4-tree-tooltip-kicker { text-align: center; color: #969594; font-size: 11px; font-weight: 500; letter-spacing: 3px; }
.sanctuary-ui .d4-tree-tooltip h3 { margin: 4px 0 13px; text-align: center; font-size: 24px; font-weight: 700; line-height: 1.4; letter-spacing: 2px; color: #ece3cf; }
.sanctuary-ui .d4-tree-tooltip-meta { justify-content: center; gap: 6px 18px; margin: 0 -8px; padding: 7px 6px; border-block: 1px solid #5e5d5c; background: linear-gradient(90deg,transparent,#69686730,transparent); }
.sanctuary-ui .d4-tree-tooltip-meta span,.sanctuary-ui .d4-tree-tooltip-tags span { border: 0; border-radius: 0; background: none; padding: 0; font-size: 12px; font-weight: 500; }
.sanctuary-ui .d4-tree-tooltip-meta span { color: #d0c6ac; }
.sanctuary-ui .d4-tree-tooltip-meta span:last-child { color: #949392; }
.sanctuary-ui .d4-tree-tooltip[data-state=invested] .d4-tree-tooltip-meta span:last-child { color: #d4a77d; }
.sanctuary-ui .d4-tree-tooltip-tags { gap: 5px 0; margin: 12px 0 0; }
.sanctuary-ui .d4-tree-tooltip-tags span { color: #b0afae; font-size: 12px; }
.sanctuary-ui .d4-tree-tooltip-tags span + span::before { content: ' · '; color: #71706f; white-space: pre; }
.sanctuary-ui .d4-tree-tooltip-description { margin: 13px 0 19px; font-size: 14px; line-height: 1.85; white-space: pre-wrap; overflow-wrap: anywhere; color: #c6c5b8; }
.sanctuary-ui .d4-tree-tooltip-description strong { color: #e4cf9f; font-weight: 600; font-variant-numeric: tabular-nums; }
.sanctuary-ui .d4-tree-tooltip-action { margin: 0 -18px; padding: 11px 14px 13px; border-top: 1px solid #545352; color: #b5ac91; background: #03060485; font-size: 11px; font-weight: 400; line-height: 1.8; text-align: center; }
@media(max-width:600px) {
 .sanctuary-ui .d4-tree-tooltip { width: calc(100vw - 24px); max-height: min(440px,52dvh); padding: 0; }
 .sanctuary-ui .d4-tooltip-content { max-height: min(438px,52dvh - 2px); padding: 25px 20px 0; }
 .sanctuary-ui .d4-tooltip-emblem { width: 42px; height: 42px; left: calc(50% - 21px); top: -20px; }
 .sanctuary-ui .d4-tree-tooltip h3 { font-size: 21px; margin-bottom: 9px; }
 .sanctuary-ui .d4-tree-tooltip-description { font-size: 14px; line-height: 1.75; }
}
body.sanctuary-ui { background: #080a0a; color: var(--sanctuary-bone); font-family: "Microsoft YaHei", "PingFang SC", system-ui, sans-serif; }
.sanctuary-ui [x-cloak] { display: none !important; }
.sanctuary-ui :is(a, button, input, select, textarea, summary):focus-visible { outline: 2px solid #e5d2a2; outline-offset: 3px; }
.sanctuary-ui :is(button, a) { -webkit-tap-highlight-color: transparent; }
.sanctuary-ui button:not(:disabled), .sanctuary-ui summary { cursor: pointer; }
.sanctuary-ui :is(h1,h2,h3) { font-family: var(--sanctuary-heading); color: var(--sanctuary-bone); text-shadow: 0 2px 3px #000; }
.sanctuary-ui .text-d4-gold { color: #c8b58c; }
.sanctuary-ui .text-d4-ash { color: #bab7ad; }
.sanctuary-ui .d4-page-bg { min-height: calc(100svh - 64px); background: var(--sanctuary-stone); background-size: cover; }
.sanctuary-ui .d4-page-bg::before { background: linear-gradient(180deg, #0000, #0005); }
.sanctuary-header { position: relative; z-index: 45; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 64px; padding: 0 28px; border-top: 3px solid #2c2b2a; border-bottom: 1px solid #585756; background: var(--sanctuary-stone); background-position: center 15%; box-shadow: inset 0 -3px #080a0a, 0 3px 15px #0008; }
.sanctuary-brand { display: flex; align-items: center; gap: 12px; width: fit-content; }
.sanctuary-brand > span { color: #ac3b32; font: 32px/1 Georgia, serif; letter-spacing: -5px; padding-right: 5px; text-shadow: 0 1px #d07d58, 0 3px 8px #000; }
.sanctuary-brand strong { color: #dfdbcf; font: 19px/1 Georgia, serif; letter-spacing: 2px; }
.sanctuary-brand strong span { color: #aaa798; }
.sanctuary-nav { display: flex; align-self: stretch; gap: 2px; padding: 7px 0; }
.sanctuary-nav a { min-width: 88px; display: grid; place-items: center; color: #bdb9ad; font-family: var(--sanctuary-heading); font-size: 16px; letter-spacing: 3px; border: 1px solid transparent; transition: background 120ms, color 120ms; }
.sanctuary-nav a:hover { color: #fff0d4; background: #ffffff08; }
.sanctuary-nav a[aria-current=page] { color: #f1e3ca; border-color: #794039; background: linear-gradient(180deg,#60221f,#451410); box-shadow: inset 0 0 0 2px #180d0c, inset 0 -3px #a04a3a, 0 2px 6px #0009; }
.sanctuary-account { justify-self: end; font-size: 14px; color: #b8b1a0; }
.sanctuary-account span { margin-left: 14px; color: #c8b58c; }
.sanctuary-ui :is(.d4-panel,.d4-panel-strong,.d4-portal-sidebar,.d4-database-card,.d4-tool-entry,.d4-topbar) { border: 1px solid var(--sanctuary-border); border-radius: 0; background: var(--sanctuary-stone); background-position: center; background-size: cover; box-shadow: inset 0 0 0 3px #080a0a, inset 0 0 0 4px #ffffff05, 0 8px 24px #0005; }
.sanctuary-ui :is(.d4-panel,.d4-topbar,.d4-portal-sidebar)::before { opacity: .25; }
.sanctuary-ui .d4-topbar h1 { font-size: clamp(24px, 3vw, 34px); }
.sanctuary-ui .d4-topbar .d4-brand { display: none; }
.sanctuary-ui :is(.d4-section-label,.d4-database-kind) { color: #ae9f83; letter-spacing: .14em; }
.sanctuary-ui :is(.d4-field,textarea,input:not([type=checkbox]):not([type=radio]),select) { background-color: #101313; border-color: #535251; border-radius: 0; color: #d6d1c4; box-shadow: inset 0 2px 5px #0006; }
.sanctuary-ui :is(.d4-button-primary,.d4-button-secondary,.d4-nav-link,.d4-filter-link,.d4-data-tab,.d4-sidebar-link) { border-radius: 0; text-shadow: 0 1px 2px #000; transition: background 140ms, border-color 140ms; }
.sanctuary-ui :is(.d4-button-primary,.d4-button-secondary) { border: 1px solid #747372; box-shadow: inset 0 0 0 2px #090b0b, inset 0 0 0 3px #ffffff09, 0 3px 5px #0008; color: #e5ddca; min-height: 42px; }
.sanctuary-ui .d4-button-primary { background: linear-gradient(180deg,#782923,#471210); border-color: #986052; }
.sanctuary-ui .d4-button-primary:hover { background: linear-gradient(180deg,#963a30,#5d1914); border-color: #b99070; color: #fff1d6; }
.sanctuary-ui .d4-button-secondary { background: linear-gradient(#3b3a39,#242322); }
.sanctuary-ui :is(.d4-filter-link,.d4-sidebar-link,.d4-data-tab) { background: #0c0f0f80; color: #bdb7a9; border-color: #494847; }
.sanctuary-ui :is(.d4-filter-link,.d4-sidebar-link,.d4-data-tab).is-active { background: linear-gradient(90deg,#521c17,#271412); border-color: #825046; color: #ecddc4; }
.sanctuary-ui .d4-tag { border-color: #504f4e; background: #ffffff05; border-radius: 0; color: #b6b5a9; }
.sanctuary-ui .d4-database-card { border-top: 2px solid #876e44; padding: 24px; }
.sanctuary-ui .d4-database-card h2 { color: #d4b27d; }
.sanctuary-ui .d4-database-card > p:last-child { font-size: 12px; letter-spacing: 0; }

/* Camp: a character selection screen with the selected class as the focal point. */
.sanctuary-camp { min-height: calc(100svh - 64px); display: grid; grid-template-columns: 294px minmax(0,1fr); grid-template-rows: 1fr auto; background: #0d0f0f; }
.sanctuary-roster { z-index: 2; display: flex; flex-direction: column; border-right: 1px solid #555453; padding: 27px 17px 18px; background: var(--sanctuary-stone); box-shadow: 10px 0 35px #0007; }
.sanctuary-panel-heading { text-align: center; padding-bottom: 21px; border-bottom: 1px solid #51504f; margin-bottom: 13px; }
.sanctuary-panel-heading p { font-size: 12px; letter-spacing: 6px; color: #a49677; margin-bottom: 8px; }
.sanctuary-panel-heading h1 { font-size: 23px; letter-spacing: 3px; }
.sanctuary-class-list { display: grid; gap: 5px; }
.sanctuary-class-choice { display: grid; grid-template-columns: 43px 1fr 16px; align-items: center; gap: 10px; width: 100%; min-height: 60px; padding: 8px 12px; border: 1px solid #444342; text-align: left; color: #c6c2b6; background: linear-gradient(90deg,#201f1ec9,#17161580); box-shadow: inset 0 0 0 2px #090b0b; }
.sanctuary-class-choice:hover { border-color: #94876b; background-color: #3a3326; }
.sanctuary-class-choice[aria-pressed=true] { border-color: #987655; background: linear-gradient(90deg,#62231cdb,#261411d9); box-shadow: inset 0 0 0 2px #170b08, inset 3px 0 #b57b54, 0 0 14px #661c151e; color: #f3dfbd; }
.sanctuary-class-choice strong { display: block; font: 17px/1.45 var(--sanctuary-heading); letter-spacing: 2px; }
.sanctuary-class-choice small { display: block; font-size: 12px; color: #9f9e9d; margin-top: 1px; }
.sanctuary-class-seal { font: 21px/1 Georgia,serif; color: #a69676; text-align: center; border-right: 1px solid #5a5958; padding: 5px 8px 5px 0; }
.sanctuary-choice-mark { color: #a8784c; font-size: 9px; opacity: 0; }
.sanctuary-class-choice[aria-pressed=true] .sanctuary-choice-mark { opacity: 1; }
.sanctuary-roster-return { display: flex; justify-content: space-between; margin-top: auto; padding: 22px 10px 0; font-size: 14px; color: #b5a78b; }
.sanctuary-character-stage { min-width: 0; position: relative; min-height: 650px; }
.sanctuary-character { position: relative; min-height: 100%; overflow: hidden; height: 100%; isolation: isolate; background: #181716; }
.sanctuary-character-art { position: absolute; right: 0; top: 0; width: 72%; height: 100%; object-fit: cover; object-position: center 22%; filter: saturate(.67) brightness(.76); }
.sanctuary-character.is-barbarian .sanctuary-character-art { object-fit: contain; object-position: center; background: #181716; }
.sanctuary-character::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: linear-gradient(90deg,#101313 0%,#101313e0 21%,#10131335 48%,#0000 72%),linear-gradient(0deg,#070909 0%,#07090900 35%,#07090900 80%,#07090990); }
.sanctuary-character-copy { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; width: 47%; padding: clamp(65px,12vh,150px) 0 65px clamp(28px,4vw,65px); }
.sanctuary-eyebrow { font: 13px/1.5 Georgia,serif; letter-spacing: 5px; color: #969594; margin-bottom: 16px; }
.sanctuary-character-copy h2 { font-size: clamp(35px,4vw,58px); font-weight: 500; letter-spacing: 6px; line-height: 1.35; }
.sanctuary-character-intro { font: 17px/1.9 var(--sanctuary-heading); color: #d1c7b3; margin-top: 24px; }
.sanctuary-rule { width: 100%; height: 13px; margin: 25px 0; background: url("/public/img/d4-s14-ui/large-line.webp") center / 100% auto no-repeat; opacity: .65; }
.sanctuary-character-description { font-size: 14px; line-height: 2; color: #aaa9a8; max-width: 340px; }
.sanctuary-character-traits { color: #b4a180; font-size: 13px; margin-top: 25px; }
.sanctuary-ui .sanctuary-enter { width: min(100%,290px); margin-top: 38px; display: flex; justify-content: center; gap: 50px; font: 18px/1.5 var(--sanctuary-heading); letter-spacing: 3px; padding: 13px 20px; }
.sanctuary-character-builds { color: #9d9c9b; font-size: 13px; padding: 17px 0; }
.sanctuary-character-builds:hover { color: #e3cda8; }
.sanctuary-camp-footer { grid-column: 1/-1; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 15px 30px; border-top: 1px solid #4c4b4a; color: #8c8b8a; font-size: 12px; background: var(--sanctuary-stone); letter-spacing: 1px; }
.sanctuary-camp-footer i { margin: 0 12px; font-size: 8px; color: #9d8357; }
.sanctuary-camp-footer nav { display: flex; gap: 30px; font-size: 14px; color: #b6b2a5; }

/* Planner: remove portal chrome, use compact game tabs and an equipment / attributes split. */
.sanctuary-ui .d4core-layout.is-planner-workbench,
.sanctuary-ui .d4core-layout.is-planner-workbench .d4core-main { min-height: calc(100svh - 64px); background: transparent; width: 100%; max-width: 1680px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud { padding: 12px 24px; background: var(--sanctuary-stone) !important; border-bottom: 1px solid #4a4948; box-shadow: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud > .flex { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud > .flex > .min-w-0 { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud h1 { font: 22px/1.4 var(--sanctuary-heading); letter-spacing: 3px; color: #d8d0bd; text-shadow: 0 2px 2px #000; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud h1 + p { color: #969594; font-size: 12px; margin: 1px 0 0; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chips { margin: 0; gap: 5px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chip { min-height: 32px; padding: 4px 9px; border: 1px solid transparent; border-radius: 0; background: transparent; color: #aaa99d; font-size: 14px; box-shadow: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chip::before { display: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chip.is-active { color: #ddc5a2; background: #5b241947; border-color: #805447; box-shadow: inset 0 -2px #8b4b36; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-actions { align-self: center; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-action { min-height: 36px; padding: 6px 18px; border: 1px solid #646362; border-radius: 0; background: linear-gradient(#3b3a39,#242322); box-shadow: inset 0 0 0 2px #0d0c0b; color: #d8d2c0; font-size: 14px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-action.is-active { background: linear-gradient(#732820,#42140f); border-color: #8c5d4b; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4core-content-wrap { grid-template-columns: minmax(0,1fr); gap: 0; padding: 10px 24px 24px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4core-social-rail { display: none; }
.sanctuary-ui .d4core-clone .d4-workbench-tabs { justify-content: center; gap: 3px; min-height: 40px; border-bottom: 1px solid #565554; padding: 0 0 8px; }
.sanctuary-ui .d4core-clone .d4-workbench-tabs .d4-mode-tab { border: 1px solid #4c4b4a; min-height: 38px; padding: 7px 30px; color: #b5b2a5; background: linear-gradient(#2a2928,#1c1b1a); box-shadow: inset 0 0 0 2px #0e0d0c; }
.sanctuary-ui .d4core-clone .d4-workbench-tabs .d4-mode-tab span:first-child { font: 16px/1.4 var(--sanctuary-heading); letter-spacing: 2px; }
.sanctuary-ui .d4core-clone .d4-workbench-tabs .d4-mode-tab.is-active { background: linear-gradient(#70261e,#3f140f); border-color: #8b5c49; color: #eee0c5; box-shadow: inset 0 0 0 2px #240e09, inset 0 -3px #9d5540; }
.sanctuary-ui .d4core-clone .d4core-module-strip { margin-top: 0; background: #151413; border: 1px solid #434241; border-radius: 0; box-shadow: none; padding: 9px 14px; }
.sanctuary-ui .d4-build-strip-title strong { color: #c4bcaa; }
.sanctuary-ui .d4-build-strip-metric b,.sanctuary-ui .d4-skill-point-summary b { color: #c7b18a; }
.sanctuary-ui .d4-build-strip-title small { color: #989796; }
.sanctuary-ui .d4core-clone .d4-armory-panel,
.sanctuary-ui .d4core-clone .d4-command-panel { background: var(--sanctuary-stone) !important; border: 1px solid #545352 !important; border-radius: 0; padding: 13px; box-shadow: inset 0 0 0 3px #0c0b0a,0 5px 20px #0005 !important; }
.sanctuary-ui .d4core-clone .d4-armory-panel::before,.sanctuary-ui .d4core-clone .d4-command-panel::before { display: none; }
.sanctuary-ui .d4core-clone .d4-armory-panel > .mb-4 { margin-bottom: 10px; padding: 0 4px; }
.sanctuary-ui .d4core-clone .d4-armory-panel h2 { font-size: 18px; letter-spacing: 3px; color: #d6ccba; }
.sanctuary-ui .d4core-armory-actions button { border-radius: 0; color: #b6b2a6; border-color: #555453; font-size: 13px; min-height: 32px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero { height: 510px !important; min-height: 510px !important; border-color: #424140 !important; box-shadow: inset 0 0 40px #0008 !important; }
.sanctuary-ui .d4core-clone .d4-paper-doll-hero::before { display: none; }
.sanctuary-ui .d4core-clone .d4-paper-doll-hero .d4-paper-doll-character { background-color: #151413; background-size: contain; filter: saturate(.64) brightness(.86) !important; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot { width: 66px !important; height: 72px !important; padding: 3px; border-radius: 0; border-color: #656463; background: linear-gradient(135deg,#282726cc,#0d0c0beb); box-shadow: inset 0 0 0 2px #0a0908,0 2px 5px #0009; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot:hover { border-color: #d3c194; box-shadow: inset 0 0 0 2px #0a0908,0 0 12px #b09c4840; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-slot-icon { width: 37px; height: 37px; opacity: .8; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-slot-title { font-size: 12px; line-height: 18px; color: #c6c4b6; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-slot-grade { display: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-slot-power { font-size: 12px; color: #c8b389; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-slot-helm { top: 3%; }
.sanctuary-ui .d4-overview-systems-entry { margin-top: 10px; min-height: 50px; border-radius: 0; background: linear-gradient(#2d2c2b,#191817); border-color: #5c5b5a; color: #d0c9b5; }
.sanctuary-ui .d4-overview-systems-entry strong { font: 15px/1.5 var(--sanctuary-heading); }
.sanctuary-ui .d4-action-hud { border-radius: 0; background: #151413; border-color: #5c5b5a; padding: 10px; }
.sanctuary-ui .d4-action-slot { width: 48px; height: 48px; border-radius: 0; border-color: #767574; background: linear-gradient(#2b2a29,#151413); box-shadow: inset 0 0 0 2px #090807; }
.sanctuary-ui .d4-action-key { color: #d4cdb9; font: 12px/1.3 Georgia,serif; }
.sanctuary-ui .d4-action-empty { color: #7b7a79; }
.sanctuary-stats-heading { display: flex; align-items: center; gap: 16px; justify-content: center; border-bottom: 1px solid #565554; padding: 7px 8px 15px; margin-bottom: 7px; }
.sanctuary-stats-heading h2 { font-size: 19px; letter-spacing: 4px; }
.sanctuary-stats-heading span { font-size: 9px; color: #9a8963; }
.sanctuary-ui #planner-stats-fragment > p { font-size: 12px; color: #959493; }
.sanctuary-ui #planner-stats-fragment > .grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 18px; }
.sanctuary-ui .d4core-clone .d4-stat-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 6px; min-height: 0; padding: 12px 6px; border: 0; border-bottom: 1px solid #454443; border-radius: 0; background: transparent !important; box-shadow: none; animation: none; }
.sanctuary-ui .d4-stat-card > p { margin: 0; font-size: 14px; }
.sanctuary-ui .d4-stat-card > p:nth-child(2) { color: #d8c99f; font: 23px/1.4 Georgia,serif; font-variant-numeric: tabular-nums; }
.sanctuary-ui .d4-stat-card > p:nth-child(3) { color: #8f8e8d; font-size: 12px; }
.sanctuary-ui .d4-stat-card .d4-stat-card-delta { justify-self: end; color: #b2b1b0; border: 0; background: none; padding: 0; font-size: 12px; }
.sanctuary-ui .d4-stat-domains { margin-top: 15px; gap: 16px; }
.sanctuary-ui .d4-stat-domain { background: #0d0c0b4d; padding: 15px 13px; border: 1px solid #454443; border-radius: 0; }
.sanctuary-ui .d4-stat-domain h2 { font-size: 17px; margin-top: 0; color: #d3c6a8; letter-spacing: 2px; }
.sanctuary-ui .d4-stat-domain-kicker { display: none; }
.sanctuary-ui .d4-auto-dps-badge { background: none; border: 0; color: #9e9d9c; padding: 0; font-size: 12px; }
.sanctuary-ui .d4-damage-section-heading { border-bottom: 1px solid #484746; padding-bottom: 7px; color: #b6ad97; }
.sanctuary-ui .d4-damage-factors { margin-top: 16px; }
.sanctuary-ui .d4-stat-metric-grid,.sanctuary-ui .d4-toughness-summary,.sanctuary-ui .d4-toughness-types { gap: 0 16px; margin-top: 8px; }
.sanctuary-ui .d4-stat-line { padding: 9px 1px; border: 0; border-bottom: 1px solid #3b3a39; border-radius: 0; background: transparent !important; font-size: 14px; gap: 12px; }
.sanctuary-ui .d4-stat-line span { color: #b6b5b4; }
.sanctuary-ui .d4-stat-line :is(b,strong) { color: #c9b78c; font-variant-numeric: tabular-nums; }
.sanctuary-ui .d4-skill-dps-empty { border: 0; border-left: 2px solid #5f5e5d; background: #ffffff03; padding: 10px 14px; }
.sanctuary-ui .d4-skill-dps-empty strong { color: #b5af9c; font-size: 14px; }
.sanctuary-ui .d4-skill-dps-empty span { font-size: 12px; color: #959493; }
.sanctuary-ui .d4-toughness-note { font-size: 12px; color: #989796; line-height: 1.8; }
.sanctuary-ui .d4-equipment-hover-tooltip { border-radius: 0; background: linear-gradient(150deg,#2a160c,#0d0c0b 42%); border: 1px solid #ac7d3d; box-shadow: inset 0 0 0 3px #100b06,0 12px 35px #000d; color: #d0c9b9; }
.sanctuary-ui .d4-equipment-hover-heading strong { font-family: var(--sanctuary-heading); letter-spacing: 1px; }
.sanctuary-ui .d4-equipment-hover-tooltip.is-rare { border-color: #b4a451; }
.sanctuary-ui .d4-equipment-hover-tooltip.is-unique { border-color: #ba997a; background: linear-gradient(150deg,#30251b,#0d0c0b 45%); }
.sanctuary-ui .d4-equipment-hover-tooltip.is-mythic { border-color: #a580bb; background: linear-gradient(150deg,#28192d,#0d0c0b 45%); }
.sanctuary-ui .d4core-layout.is-board-workbench .d4core-content-wrap { grid-template-columns: minmax(0,1fr); }
.sanctuary-ui .d4core-layout.is-board-workbench .d4core-build-variants { display: none; }
.sanctuary-ui .d4core-layout.is-board-workbench .d4-skill-map { min-height: 480px; height: calc(100svh - 265px); border-radius: 0; }
.sanctuary-ui .d4core-layout.is-board-workbench .d4-skill-panel { background: #161514 !important; }
.sanctuary-ui .d4-skill-map { touch-action: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-actions { flex-shrink: 0; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-action { white-space: nowrap; }

/* Responsive layout keeps real controls accessible; only decoration is omitted. */
/* Skills: keep the board and its controls within one viewport. */
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-planner-hud { padding: 8px 16px; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-planner-hud h1 { font-size: 19px; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-planner-hud h1 + p { display: none; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4core-content-wrap { padding: 5px 12px 12px; gap: 0; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .planner-shell { gap: 0; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-workbench-tabs { min-height: 40px; padding: 3px 0 6px; margin: 0; }
.sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-workbench-tabs .d4-mode-tab { min-height: 32px; padding: 4px 22px; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0; padding: 7px 12px; min-height: 46px; border: 0; border-bottom: 1px solid #51504f; box-shadow: none; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-point-summary { gap: 12px; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-point-summary > span:first-of-type { display: none; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-point-summary b { font-size: 18px; color: #e3d1a7; font-variant-numeric: tabular-nums; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-order-toggle { margin-left: auto; }
.d4-skill-tools { display: flex; gap: 4px; }
.d4-skill-tools button { min-width: 34px; min-height: 32px; padding: 4px 10px; font-size: 12px; color: #cdc5b4; border: 1px solid #5c5b5a; background: linear-gradient(#2d2c2b,#191817); box-shadow: inset 0 0 0 2px #0c0b0a; }
.d4-skill-tools button:hover { color: #ffedc7; border-color: #aa8c5f; }
.d4-skill-sync-status { font-size: 12px; color: #b2b1b0; }
.d4-skill-sync-status:empty { display: none; }
.d4-skill-sync-status.is-error { flex-basis: 100%; order: 5; color: #f0a291; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-content-panel.d4-skill-panel { border: 1px solid #51504f; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-map { height: var(--skill-canvas-height,calc(100dvh - 220px)); min-height: 360px; }
.sanctuary-ui .d4core-layout.is-skill-workbench .planner-board-command { padding: 0; border: 0; }
.sanctuary-ui .d4-skill-svg-s14 .skill-rank-text { font-size: 18px !important; fill: #f2dfb4; paint-order: stroke; stroke: #0b0a09; stroke-width: 4px; stroke-linejoin: round; }
.sanctuary-ui .d4-skill-svg-s14 .skill-rank-badge { transform: scale(1); opacity: 0; }
.sanctuary-ui .d4-skill-svg-s14 .skill-rank-badge.skill-rank-visible { opacity: .95; }
.sanctuary-ui .d4-skill-svg-s14 .skill-node-label { font-size: 18px; fill: #d8cdb9; stroke: #0b0a09; stroke-width: 5px; }
.sanctuary-ui .d4-skill-svg-s14 g:is(.is-selected,:hover,:focus-within) .skill-node-label { opacity: 1 !important; }
.sanctuary-ui .d4-skill-svg-s14 g[data-skill-node-type="activeSkill"] .skill-node-label { opacity: .85 !important; }
.sanctuary-ui .d4-skill-svg-s14 .skill-node-icon.skill-node-locked { opacity: .48; }
/* SVG focus must not acquire a browser-specific rectangular outline. Mouse
   selection uses the existing allocated frame; keyboard focus gets a gold ring. */
.sanctuary-ui .d4-skill-svg .skill-node-control:focus,
.sanctuary-ui .d4-skill-svg .skill-node-hitbox:focus { outline: 0 !important; box-shadow: none !important; }
.sanctuary-ui .d4-skill-svg .skill-node-hitbox:focus:not(:focus-visible) { stroke: transparent !important; }
.sanctuary-ui .d4-skill-svg .skill-node-hitbox[role="presentation"] { pointer-events: none; stroke: none !important; }
.sanctuary-ui .d4-skill-svg .skill-node-hitbox:focus-visible { stroke: #c4ad7a !important; stroke-width: 1.5px; stroke-dasharray: 3 4; }
/* Preserve hitboxes, accessibility and geometry; omit offscreen decoration. */
.sanctuary-ui .d4-skill-svg-s14 .skill-node-control[data-viewport-culled]:not(:focus-within) > :not(.skill-node-hitbox),
.sanctuary-ui .d4-skill-svg-s14 .skill-edge[data-viewport-culled] { visibility: hidden; }
/* Small upgrade branches keep a readable metal rim at every zoom level.
   Plain strokes avoid adding filters or animated effects to the moving tree. */
.sanctuary-ui .d4-skill-svg-s14 :is(.skill-branch-rim-shadow,.skill-branch-rim) { fill: none; pointer-events: none; vector-effect: non-scaling-stroke; stroke-linejoin: miter; }
.sanctuary-ui .d4-skill-svg-s14 .skill-branch-rim-shadow { stroke: #0a0908; stroke-width: 4px; }
.sanctuary-ui .d4-skill-svg-s14 .skill-branch-rim { stroke: #797877; stroke-width: 1.5px; }
.sanctuary-ui .d4-skill-svg-s14 g.skill-node-investable .skill-branch-rim { stroke: #bba378; }
.sanctuary-ui .d4-skill-svg-s14 g.skill-node-invested .skill-branch-rim { stroke: #ce7250; stroke-width: 2px; }
.sanctuary-ui .d4-skill-svg-s14 g:is(:hover,:focus-within,.is-selected) .skill-branch-rim { stroke: #f0d6a0; }
.sanctuary-ui .d4-skill-svg-s14 .skill-edge:not(.skill-edge-invested):not(.skill-edge-investable):not(.skill-edge-trunk) { opacity: .48; }
.sanctuary-ui .d4-skill-svg-s14 .skill-edge-investable .skill-edge-highlight { stroke: #c3ab7e; opacity: .8; }
.sanctuary-ui .d4-skill-svg-s14 .skill-edge-invested .skill-edge-metal { stroke: #92271e; stroke-width: 8px; }
.sanctuary-ui .d4-skill-svg-s14 .skill-edge-invested .skill-edge-highlight { stroke: #e09e72; stroke-width: 1.7px; }
.sanctuary-ui .d4-skill-input-legend { color: #c3bcaa; background: #0e0d0cd9; border: 1px solid #4f4e4d; border-radius: 0; font-size: 12px; padding: 7px 10px; }
.sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-map:is(.is-panning,.is-transforming) :is(.skill-node-frame,.skill-node-icon,.skill-invested-halo,.skill-junction-link-overlay) { filter: none !important; }
@media (max-width:767px) {
 .sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4-planner-hud { padding: 6px 10px; }
 .sanctuary-ui .d4core-layout:is(.is-skill-workbench,.is-paragon-workbench) .d4core-content-wrap { padding: 2px 6px 8px; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-toolbar { gap: 6px 10px; padding: 6px 8px; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-point-summary { gap: 8px; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-point-summary > span { font-size: 12px; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-tools { order: 3; margin-left: auto; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-sync-status { order: 4; }
 .sanctuary-ui .d4core-layout.is-skill-workbench .d4-skill-map { min-height: 360px; }
 .sanctuary-ui .d4-skill-svg-s14 .skill-rank-text { font-size: 24px !important; }
 .sanctuary-ui .d4-skill-svg-s14 .skill-node-label { font-size: 22px; }
 .sanctuary-ui .d4-skill-input-legend { left: 6px; right: 6px; bottom: 6px; gap: 3px 10px; font-size: 11px; }
}
@media (min-width:1024px) {
  .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 12px; }
}
@media (min-width:1400px) {
  .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero { height: 590px !important; }
}
@media (max-width:1100px) {
  .sanctuary-header { grid-template-columns: auto 1fr auto; padding: 0 18px; gap: 15px; }
  .sanctuary-nav { justify-self: center; }
  .sanctuary-nav a { min-width: 65px; }
  .sanctuary-camp { grid-template-columns: 250px minmax(0,1fr); }
  .sanctuary-character-copy { width: 53%; padding-left: 25px; }
  .sanctuary-character-art { width: 80%; right: -8%; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud > .flex > .min-w-0 { gap: 8px 20px; }
}
@media (max-width:767px) {
  .sanctuary-header { grid-template-columns: 1fr auto; padding: 10px 16px 0; gap: 8px; }
  .sanctuary-brand strong { font-size: 17px; }
  .sanctuary-brand > span { font-size: 25px; }
  .sanctuary-account { font-size: 12px; }
  .sanctuary-nav { grid-column: 1/-1; grid-row: 2; width: 100%; justify-content: center; padding: 3px 0 7px; }
  .sanctuary-nav a { flex: 1; min-width: 0; min-height: 38px; font-size: 14px; }
  .sanctuary-camp { grid-template-columns: minmax(0,1fr); }
  .sanctuary-roster { border-right: 0; border-bottom: 1px solid #555453; padding: 18px 15px 12px; }
  .sanctuary-panel-heading { display: flex; gap: 14px; align-items: center; text-align: left; padding-bottom: 12px; margin-bottom: 10px; }
  .sanctuary-panel-heading h1 { font-size: 20px; letter-spacing: 1px; }
  .sanctuary-panel-heading p { font-size: 12px; margin: 0; letter-spacing: 2px; }
  .sanctuary-class-list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
  .sanctuary-class-choice { display: flex; justify-content: center; min-height: 43px; padding: 7px 2px; }
  .sanctuary-class-choice strong { font-size: 14px; letter-spacing: 0; }
  .sanctuary-class-seal,.sanctuary-class-choice small,.sanctuary-choice-mark { display: none; }
  .sanctuary-roster-return { padding: 12px 0 0; font-size: 13px; }
  .sanctuary-character-stage { min-height: 560px; }
  .sanctuary-character-copy { width: 62%; padding: 45px 0 28px 22px; }
  .sanctuary-character-copy h2 { font-size: 34px; letter-spacing: 3px; }
  .sanctuary-character-art { width: 100%; right: -18%; object-position: center; }
  .sanctuary-character::after { background: linear-gradient(90deg,#11100fed,#11100f9e 43%,#11100f00 80%),linear-gradient(0deg,#0c0b0a,#0c0b0a00 60%); }
  .sanctuary-character-intro { font-size: 16px; margin-top: 18px; }
  .sanctuary-rule { margin: 15px 0; }
  .sanctuary-character-description { font-size: 14px; line-height: 1.85; }
  .sanctuary-character-traits { font-size: 12px; line-height: 1.8; }
  .sanctuary-ui .sanctuary-enter { margin-top: 24px; gap: 20px; font-size: 16px; }
  .sanctuary-camp-footer { flex-direction: column; padding: 15px; gap: 12px; }
  .sanctuary-camp-footer nav { gap: 22px; font-size: 13px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud { padding: 12px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud > .flex { align-items: flex-start; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud h1 { font-size: 19px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chips { gap: 2px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chip { padding: 4px 7px; font-size: 12px; min-height: 32px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-actions { flex-direction: column; gap: 5px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-hud-action { padding: 6px 12px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4core-content-wrap { padding: 8px 10px 20px; }
  .sanctuary-ui .d4core-clone .d4-workbench-tabs { overflow-x: auto; justify-content: flex-start; gap: 3px; }
  .sanctuary-ui .d4core-clone .d4-workbench-tabs .d4-mode-tab { flex: 1 0 auto; padding: 7px 12px; }
  .sanctuary-ui .d4core-clone .d4-workbench-tabs .d4-mode-tab span:first-child { font-size: 14px; letter-spacing: 0; }
  .sanctuary-ui .d4core-clone .d4-armory-panel,.sanctuary-ui .d4core-clone .d4-command-panel { padding: 10px; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero { height: 510px !important; min-height: 510px !important; }
  .sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot { width: 57px !important; height: 68px !important; }
  .sanctuary-ui .d4-stat-card > p { font-size: 12px; }
  .sanctuary-ui .d4-stat-card > p:nth-child(2) { font-size: 21px; }
  .sanctuary-ui .d4-stat-line { font-size: 13px; }
  .sanctuary-ui .d4-stat-domain { padding: 12px 8px; }
  .sanctuary-ui .d4-portal-sidebar > .d4-brand,.sanctuary-ui .d4-portal-sidebar > nav { display: none; }
  .sanctuary-ui .d4-portal-sidebar { padding: 14px; }
  .sanctuary-ui .d4-portal-sidebar > div { margin-top: 0; border: 0; padding-top: 0; }
  .sanctuary-ui .d4-portal-sidebar > div > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .sanctuary-ui *, .sanctuary-ui *::before, .sanctuary-ui *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Flat iron dialog frame and compact catalog, following the live inventory reference. */
.sanctuary-header { z-index: 5; }
.sanctuary-ui .d4-equipment-modal { background: #030605d9; backdrop-filter: none; }
.sanctuary-ui .d4-equipment-dialog { padding: 7px; border: 1px solid #81807f; background: var(--sanctuary-stone); box-shadow: inset 0 0 0 3px #0a0908, inset 0 0 0 4px #484746,0 20px 80px #000d; }
.sanctuary-ui .d4-equipment-dialog::before,.sanctuary-ui .d4-equipment-dialog::after { display: none; }
.sanctuary-ui .d4-equipment-dialog-header,.sanctuary-ui .d4-equipment-dialog-footer { background: var(--sanctuary-stone); border-color: #5f5e5d; }
.sanctuary-ui .d4-equipment-dialog-header h2 { font-size: 22px; letter-spacing: 2px; color: #e1d5b9; }
.sanctuary-ui .d4-equipment-dialog-header > div > span,.sanctuary-ui .d4-equipment-column-title > span { display: none; }
.sanctuary-ui .d4-equipment-dialog-header a { font-size: 12px; color: #a9a48f; }
.sanctuary-ui .d4-equipment-dialog-scroll,.sanctuary-ui .d4-equipment-catalog { background: linear-gradient(#161514da,#0f0e0dea),var(--d4-equipment-class-bg) center / cover; }
.sanctuary-ui .d4-equipment-column-title { justify-content: center; font-family: var(--sanctuary-heading); border-bottom-color: #555453; }
.sanctuary-ui .d4-equipment-column-title strong { font-size: 17px; letter-spacing: 3px; }
.sanctuary-ui .d4-equipment-dialog-footer button { min-height: 38px; border-radius: 0; box-shadow: inset 0 0 0 2px #0d0c0b; }
.sanctuary-ui .d4-equipment-dialog-footer button.is-primary { background: linear-gradient(#70271d,#40160f); border-color: #956e50; color: #eedcb9; }
.sanctuary-ui .d4-equipment-catalog-card { border-radius: 0; box-shadow: inset 0 0 0 2px #060a05; }
.sanctuary-ui .d4-equipment-catalog-card:hover { transform: none; }
.sanctuary-ui .d4-equipment-catalog-card::after { display: none; }
.sanctuary-ui .d4core-clone .d4-stat-domain { border-color: #494847 !important; background: #0d0c0b66 !important; }
.sanctuary-ui .d4-level-control :is(input,button) { color: #d0bd93; }
.sanctuary-ui .d4-level-control input { width: 48px; }
.sanctuary-ui .d4-skill-tooltip { border-radius: 0; }
.sanctuary-account-page > section { position: relative; z-index: 1; }
.sanctuary-account-page button[type=submit] { background: linear-gradient(#70271d,#40160f); border: 1px solid #956e50; color: #eedcb9; box-shadow: inset 0 0 0 2px #140b07; }
.sanctuary-ui .d4-topbar nav { display: none; }
.sanctuary-ui .d4-portal-sidebar > .d4-brand,.sanctuary-ui .d4-portal-sidebar > nav { display: none; }
.sanctuary-ui .d4-portal-sidebar > div:first-of-type { margin-top: 0; border-top: 0; padding-top: 0; }
@media (max-width:767px) {
 .sanctuary-ui .d4core-layout.is-planner-workbench .d4-class-chips { flex-wrap: wrap; overflow: visible; gap: 3px; padding-bottom: 0; }
 .sanctuary-ui .d4-build-context-controls { flex-wrap: nowrap; align-items: start; gap: 10px; }
 .sanctuary-ui .d4-build-strip-title { display: none; }
 .sanctuary-ui .d4-build-strip-summary { gap: 8px; }
 .sanctuary-ui .d4-build-strip-metric { font-size: 12px; gap: 3px; }
 .sanctuary-ui .d4-build-strip-metric b { font-size: 12px; }
 .sanctuary-ui .d4-build-strip-metric::before { margin-right: 0; }
 .sanctuary-ui .d4-build-strip-metric:nth-child(2) { display: none; }
 .sanctuary-ui .d4-difficulty-control { display: grid; grid-template-columns: 1fr; gap: 4px; min-width: 0; flex: 1; }
 .sanctuary-ui .d4-difficulty-control select { min-width: 0; width: 100%; height: 34px; font-size: 13px; }
 .sanctuary-ui .d4-difficulty-control small { grid-column: 1; white-space: normal; font-size: 12px; line-height: 1.5; }
 .sanctuary-ui .d4-difficulty-control > span { display: none; }
 .sanctuary-ui .d4-level-control { gap: 3px; font-size: 12px; }
 .sanctuary-ui .d4-level-control :is(button,input) { height: 34px; min-height: 34px; }
 .sanctuary-ui .d4-level-control small { display: none; }
 .sanctuary-ui .d4core-clone .d4core-module-strip { gap: 10px; padding: 10px; }
 .sanctuary-ui .d4-equipment-dialog { padding: 4px; width: calc(100vw - 12px); min-height: 0; max-height: calc(100dvh - 12px); }
 .sanctuary-ui .d4-equipment-dialog-header { padding: 12px; }
 .sanctuary-ui .d4-equipment-dialog-header h2 { font-size: 19px; }
 .sanctuary-ui .d4-equipment-dialog-scroll { padding: 12px; }
 .sanctuary-ui .d4-equipment-dialog-footer { padding: 10px; }
}

/* Equipment: recessed iron sockets; rarity colors appear only on equipped items. */
body.sanctuary-ui { background: #101010; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero { background: radial-gradient(ellipse at 50% 38%,#302820,#151313 65%,#100f0f) !important; border: 0 !important; box-shadow: none !important; }
.sanctuary-ui .d4core-clone .d4-paper-doll-hero .d4-paper-doll-character { background-color: transparent; filter: brightness(.96) !important; inset: 0 auto !important; left: 50% !important; transform: translateX(-50%) !important; width: auto; height: 100%; aspect-ratio: 1184 / 1592; mask-image: linear-gradient(90deg,transparent,#000 17% 83%,transparent); }
.sanctuary-ui .d4core-clone .d4-paper-doll-hero .d4-paper-doll-character.is-warlock { width: 100%; aspect-ratio: auto; }
.sanctuary-ui .d4-paper-doll::after { background: radial-gradient(ellipse,transparent 48%,#0807078a); background-size: auto; mix-blend-mode: normal; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot { --slot-edge:#605a52; --slot-well:#1e1b18; clip-path: none; border: 1px solid var(--slot-edge); background: linear-gradient(145deg,var(--slot-well),#100f0e) !important; box-shadow: inset 0 0 0 2px #0a0909,inset 0 0 14px #0009,0 2px 5px #000a; padding: 4px 4px 18px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-equipment-slot::before { inset: 3px; border: 1px solid #ffffff12; background: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-equipment-slot::after,.sanctuary-ui .d4-equipment-slot .d4-slot-frame { display: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot .d4-slot-title { position: absolute; inset: auto 3px 2px; font-size: 10px; line-height: 16px; font-weight: 400; color: #a49c90; background: #0c0a0999; letter-spacing: 1px; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot.is-empty .d4-slot-icon { width: 29px; height: 33px; opacity: .45; filter: grayscale(1) brightness(.95); }
.sanctuary-ui .d4-equipment-slot.is-empty .d4-slot-power { display: none; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot.is-equipped .d4-slot-icon { width: 100%; height: 100%; object-fit: contain; filter: none; opacity: 1; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot[data-rarity='传奇'] { --slot-edge:#ad6d40; --slot-well:#563018; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot[data-rarity='暗金'] { --slot-edge:#b8a183; --slot-well:#403324; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot[data-rarity='神话暗金'] { --slot-edge:#a37fba; --slot-well:#3d244d; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot[data-rarity='稀有'] { --slot-edge:#a69953; --slot-well:#38311b; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot:is(:hover,.is-selected) { border-color: #d7c6a9; box-shadow: inset 0 0 0 2px #211914,0 0 0 1px #a38d6a; }
.sanctuary-ui .d4core-clone .d4-command-panel { background: linear-gradient(#1d1b19ee,#121112f7),var(--sanctuary-stone) !important; border-color: #58514a !important; }
.sanctuary-ui .d4core-clone .d4-stat-domain { background: #100f0f88 !important; border: 0 !important; border-top: 1px solid #58514a !important; box-shadow: none !important; padding: 18px 10px; }
.sanctuary-ui .sanctuary-stats-heading { border-color: #625950; }
.sanctuary-ui .d4-stat-card > p:nth-child(2) { color: #e5dbca; }
.sanctuary-ui .d4-stat-card .d4-stat-card-delta { color: #a99f90; }
.sanctuary-ui .d4-stat-domain .d4-stat-line > span:last-child,.sanctuary-ui .d4-stat-line :is(b,strong) { color: #ddd6c9; }
.sanctuary-ui .d4core-clone .d4-stat-line { border-bottom-color: #403a3480; }
.sanctuary-ui .d4-stat-domain h2 { color: #d7c4a7; }
.sanctuary-ui .d4-action-hud { background: #171515; border-color: #504942; }
.sanctuary-ui .d4-action-slot { background: linear-gradient(#282321,#111010); border-color: #655d53; }
.sanctuary-ui .d4-character-system-tabs { background: #161414aa; border-color: #585049; }

/* One armory surface: recessed sockets, a continuous footer and a compact skill tray. */
/* Character attributes emphasize totals; calculation details remain available on demand. */
.d4-stats-view-switch { display: flex; justify-content: center; gap: 2px; margin: 15px auto 7px; }
.sanctuary-ui .d4-stats-view-switch button { min-width: 76px; min-height: 32px; border: 1px solid #534a40; background: #151311; color: #a89e90; font-size: 12px; }
.sanctuary-ui .d4-stats-view-switch button[aria-pressed='true'] { color: #e3cfaa; border-color: #947959; background: linear-gradient(#4a2720,#291815); box-shadow: inset 0 0 0 2px #160e0b; }
.d4-stats-mode-note { margin: 0 0 12px; text-align: center; font-size: 11px; color: #988d80; }
.d4-stats-headline { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.sanctuary-ui .d4core-clone .d4-stats-headline .d4-stat-card { display: flex; flex-direction: column; justify-content: center; min-height: 92px; gap: 3px; padding: 8px; border: 0; background: radial-gradient(ellipse at 50% 100%,#70503522,transparent 75%) !important; }
.sanctuary-ui .d4-stats-headline .d4-stat-card > p:nth-child(2) { font: 36px/1.25 Georgia,serif; color: #e7d6b3; }
.sanctuary-ui .d4-stats-headline .d4-stat-card > p:nth-child(3) { display: none; }
.sanctuary-ui .d4-stats-headline .d4-stat-card-delta { font-size: 11px; }
.d4-stats-headline.is-compare { gap: 4px 12px; }
.sanctuary-ui .d4core-clone .d4-stats-headline.is-compare .d4-stat-card { min-height: 94px; }
.d4-stats-vitals { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 24px; padding: 12px 8px; border-top: 1px solid #6c5a4266; border-bottom: 1px solid #6c5a4266; }
.sanctuary-ui .d4core-clone .d4-stats-vitals .d4-stat-line { border: 0; padding: 8px 0; }
.sanctuary-ui .d4-stats-vitals .d4-stat-line > span:last-child { color: #e2d8c7; font-size: 17px; font-variant-numeric: tabular-nums; }
.sanctuary-ui .d4-stats-disclosure > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 34px; cursor: pointer; list-style: none; color: #c4b59c; }
.d4-stats-disclosure > summary::-webkit-details-marker { display: none; }
.d4-stats-disclosure > summary::after { content: '+'; flex: 0 0 18px; text-align: center; color: #aa9171; font: 18px Georgia,serif; }
.d4-stats-disclosure[open] > summary::after { content: '−'; }
.sanctuary-ui .d4-stats-disclosure > summary:focus-visible { outline: 1px solid #bd9c71; outline-offset: 3px; }
.sanctuary-ui .d4core-clone #planner-stats-fragment .d4-stat-domain { padding: 10px 8px; background: none !important; }
.sanctuary-ui #planner-stats-fragment .d4-stat-domains { gap: 8px; margin-top: 12px; }
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2 { font-size: 16px; letter-spacing: 1px; }
.sanctuary-ui #planner-stats-fragment .d4-auto-dps-badge { max-width: 185px; font-size: 10px; color: #93887a; }
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-empty { margin-top: 12px; padding: 12px 14px; background: #08070755; border-left-color: #6e5840; }
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-empty > span { font-size: 12px; line-height: 1.7; }
.d4-stats-skill-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; width: fit-content; margin-top: 10px; padding: 6px 10px; border: 1px solid #69533e; background: #332018; color: #dec5a1; font-size: 12px; }
.d4-stats-skill-link:hover { border-color: #b7986e; background: #49291e; }
.sanctuary-ui .d4-stats-disclosure .d4-stat-line { border-bottom-color: #403a3440; }
.d4-formula-details { margin: 10px 8px 0; border-top: 1px solid #51433455; font-size: 11px; }
.d4-formula-details p { padding: 6px 0; color: #9b9285; line-height: 1.8; }
.d4-formula-details a { color: #c6ab81; }
.sanctuary-ui #planner-stats-fragment .is-defense .d4-toughness-types { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px 14px; margin-top: 12px; border: 0; padding: 0; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; padding: 7px 9px; border: 0; border-left: 2px solid #746d63; background: #ffffff03 !important; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line:nth-child(2) { border-left-color: #ad6247; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line:nth-child(3) { border-left-color: #a79662; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line:nth-child(4) { border-left-color: #7292a6; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line:nth-child(5) { border-left-color: #7c8857; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line:nth-child(6) { border-left-color: #877291; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-types .d4-stat-line > span:last-child { font-size: 13px; }
.sanctuary-ui #planner-stats-fragment .d4-toughness-note { margin-top: 9px; font-size: 10px; }
@media(max-width:500px) {
 .sanctuary-ui #planner-stats-fragment .is-defense .d4-toughness-types { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .d4-stats-vitals { column-gap: 14px; }
 .sanctuary-ui .d4-stats-vitals .d4-stat-line { font-size: 12px; }
 .sanctuary-ui .d4-stats-headline .d4-stat-card > p:nth-child(2) { font-size: 30px; }
}
.sanctuary-ui .d4core-clone .d4-armory-panel { align-self: start; background: linear-gradient(145deg,#201d1b,#121111 55%) !important; }
.sanctuary-ui .d4core-clone .d4-armory-panel > .mb-4 { padding: 0 5px 10px; margin-bottom: 0; border-bottom: 1px solid #74655755; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot { width: 60px !important; height: 66px !important; backdrop-filter: none; box-shadow: inset 0 0 0 2px #090808,inset 0 0 14px #0009,0 1px 0 #ffffff12; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot.is-empty { --slot-edge: #4c4640; --slot-well: #1a1715; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot .d4-slot-title { background: transparent; color: #b0a79a; }
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot.is-empty .d4-slot-icon { opacity: .6; }
.sanctuary-ui .d4-paper-doll-hero .d4-slot-amulet { top: 18%; }
.sanctuary-ui .d4-paper-doll-hero .d4-slot-ring-1 { top: 33%; }
.sanctuary-ui .d4-paper-doll-hero .d4-slot-ring-2 { top: 48%; }
.sanctuary-ui .d4-armory-panel .d4-character-system-tabs { position: relative; z-index: 6; display: flex; justify-content: center; gap: 12px; margin-top: 0; padding: 10px 8px 2px; border: 0; background: linear-gradient(#121010,#15121288); }
.sanctuary-ui .d4-armory-panel .d4-character-system-tab { flex: 0 1 162px; justify-content: center; gap: 10px; min-height: 42px; padding: 4px 12px; border: 1px solid #63574a; background: linear-gradient(#302b25,#1b1815 48%,#141211); box-shadow: inset 0 0 0 2px #100e0c,inset 0 3px #ffffff0a,0 2px 3px #0009; }
.sanctuary-ui .d4-armory-panel .d4-character-system-tab:hover,.sanctuary-ui .d4-armory-panel .d4-character-system-tab:focus-visible { border-color: #ab9371; background: linear-gradient(#403329,#251a15); }
.sanctuary-ui .d4-armory-panel .d4-character-system-tab::after { display: none; }
.sanctuary-ui .d4-armory-panel .d4-character-system-emblem { flex: 0 0 28px; width: 28px; height: 28px; color: #c3b499; background: none; }
.sanctuary-ui .d4-armory-panel .d4-character-system-emblem svg { width: 25px; height: 25px; filter: drop-shadow(0 1px 1px #000); }
.sanctuary-ui .d4-armory-panel .d4-character-system-emblem img { width: 28px; height: 28px; filter: grayscale(.35) brightness(1.15); }
.sanctuary-ui .d4-armory-panel .d4-character-system-copy strong { font-size: 14px; color: #d1c2a8; letter-spacing: 2px; white-space: nowrap; }
.sanctuary-ui .d4-armory-panel .d4-character-system-tab.is-equipped { border-bottom-color: #b49762; }
.d4-system-entry-hint { position: absolute; z-index: 20; bottom: calc(100% + 10px); left: 0; width: 250px; max-width: 70vw; padding: 14px 16px; border: 1px solid #81705a; background: linear-gradient(135deg,#231e19,#0e0c0b); box-shadow: inset 0 0 0 3px #090807,0 6px 20px #000b; text-align: left; pointer-events: none; }
.is-talisman .d4-system-entry-hint { left: auto; right: 0; }
.d4-system-entry-hint b { display: block; margin-bottom: 9px; padding-bottom: 8px; border-bottom: 1px solid #77624a66; font: 16px var(--sanctuary-heading); color: #e3d1ad; }
.d4-system-entry-hint > span { display: block; color: #b9b0a3; font: 12px/1.7 sans-serif; }
.sanctuary-ui .d4-armory-panel .d4-action-hud { min-height: 76px; margin-top: 0; padding: 14px 8px 8px; border: 0; background: linear-gradient(#15121288,#0e0d0d); box-shadow: inset 0 -1px #65594d55; }
.sanctuary-ui .d4-armory-panel .d4-action-hud::before,.sanctuary-ui .d4-armory-panel .d4-action-hud::after { display: none; }
.sanctuary-ui .d4-armory-panel .d4-action-slots { width: max-content; max-width: 100%; grid-template-columns: repeat(6,minmax(0,48px)); gap: 9px; border: 0; padding: 0; }
.sanctuary-ui .d4-armory-panel .d4-action-key { top: auto; bottom: 2px; right: 2px; border: 0; min-width: 12px; color: #b5aa97; background: #0b0a09cc; font-size: 10px; line-height: 13px; font-weight: 400; }
@media(min-width:1024px) {
 .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) > .d4-armory-panel { display: flex; flex-direction: column; align-self: start; }
 .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) > .d4-armory-panel > .mb-4,
 .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) > .d4-armory-panel > .d4-character-system-tabs,
 .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) > .d4-armory-panel > .d4-action-hud { flex-shrink: 0; }
 .sanctuary-ui .d4core-layout.is-planner-workbench .planner-shell:not(.is-focused-view) .d4-paper-doll-hero { flex: none; height: clamp(440px,calc(100dvh - 310px),580px) !important; min-height: 440px !important; }
 .sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view) .d4-paper-doll-character { max-width: 100%; }
}
@media(max-width:767px) {
 .sanctuary-ui .d4core-layout.is-planner-workbench .d4-paper-doll-hero .d4-equipment-slot { width: 54px !important; height: 64px !important; }
 .sanctuary-ui .d4-armory-panel .d4-action-slots { grid-template-columns: repeat(6,minmax(0,42px)); gap: 6px; }
 .sanctuary-ui .d4-armory-panel .d4-action-slot { width: 42px; height: 44px; }
}
.sanctuary-ui .d4-equipment-dialog-scroll,.sanctuary-ui .d4-equipment-catalog { background: linear-gradient(#191615e8,#100e0eef),var(--d4-equipment-class-bg) center / cover; }
/* Keep primary results ahead of optional analysis. */
.sanctuary-ui #planner-stats-fragment .sanctuary-stats-heading{display:none}
.sanctuary-ui #planner-stats-fragment .d4-stat-domains{margin-top:10px;gap:10px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{padding:8px 0;gap:6px}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain{padding:12px 0}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-ranking{margin-top:10px}
@media(min-width:1024px){.sanctuary-ui .planner-shell:not(.is-focused-view)>.d4-armory-panel{position:sticky;top:12px}}
/* Open, compact desktop analysis: offense and defense share the available width. */
@media(min-width:1200px){
.sanctuary-ui #planner-stats-fragment .d4-stat-domains{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:16px}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain{min-width:0;margin:0;padding:10px 0}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2{font-size:15px;margin:0}
.sanctuary-ui #planner-stats-fragment .d4-auto-dps-badge{display:none}
.sanctuary-ui #planner-stats-fragment .d4-toughness-summary{display:grid;grid-template-columns:1fr;margin-top:10px;gap:3px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px;gap:4px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-note{font-size:11px;line-height:1.5;margin-top:8px}
.sanctuary-ui #planner-stats-fragment .d4-stat-line{padding:5px 0;font-size:12px;gap:6px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-winner{padding:10px;gap:8px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-icon{width:44px;height:44px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-identity strong{font-size:17px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-values{margin-top:8px;gap:8px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-values strong{font-size:20px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row{padding:6px 8px;min-height:36px}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card{min-height:66px;padding:4px}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card>p:nth-child(2){font-size:28px;margin:0}
.sanctuary-ui #planner-stats-fragment .d4-stats-mode-note{margin:4px 0;font-size:11px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{grid-template-columns:repeat(2,minmax(0,1fr));padding:4px 0}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals .d4-stat-line{padding:3px 0}
}
@media(min-width:1200px){
.sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view){grid-template-columns:minmax(340px,.85fr) minmax(0,1.65fr)!important}
}
@media(min-width:1200px){
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-winner{grid-template-columns:44px minmax(0,1fr);padding:8px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-identity{gap:3px;min-height:0}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-identity small{font-size:11px;line-height:1.4}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-values>div{padding:6px;gap:2px;min-height:0}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row{padding:4px 6px;gap:6px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-name small{font-size:10px;line-height:1.3}
.sanctuary-ui #planner-stats-fragment .d4-stats-disclosure{margin-top:8px}
}
/* Character overview finish: charcoal, worn brass and restrained blood-red selection. */
.sanctuary-ui .planner-shell:not(.is-focused-view)>.d4-armory-panel,
.sanctuary-ui .planner-shell:not(.is-focused-view)>.d4-command-panel{border-color:#5e5042;background:linear-gradient(135deg,#211c18f2,#100f0ff5 60%);box-shadow:inset 0 0 0 3px #090808,0 6px 18px #0005}
.sanctuary-ui .planner-shell:not(.is-focused-view)>.d4-armory-panel>.mb-4{border-bottom:1px solid #66503b;padding-bottom:10px;margin-bottom:8px}
.sanctuary-ui .overview-panel-tabs{gap:0;border-bottom:1px solid #66503b;padding-bottom:0;margin-bottom:12px}
.sanctuary-ui .overview-panel-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;color:#aaa092;padding:10px 20px;letter-spacing:2px}
.sanctuary-ui .overview-panel-tabs button[aria-pressed='true']{color:#ead7b1;border-bottom-color:#b28b53;background:linear-gradient(0deg,#6b211b80,transparent)}
.sanctuary-ui .overview-panel-tabs button:focus-visible{outline:2px solid #c1a16e;outline-offset:-3px}
.sanctuary-ui #planner-stats-fragment .d4-stats-view-switch{justify-content:flex-end;gap:0}
.sanctuary-ui #planner-stats-fragment .d4-stats-view-switch button{border-color:#4b4137;min-width:64px;color:#b8ae9c;background:#100e0d}
.sanctuary-ui #planner-stats-fragment .d4-stats-view-switch button[aria-pressed='true']{color:#f0ddbb;border-color:#a17b50;background:linear-gradient(#54221c,#2a1512)}
.sanctuary-ui #planner-stats-fragment .d4-stats-mode-note{text-align:right;color:#a19789}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline{background:linear-gradient(90deg,#7b3a1412,transparent,#8d754111);border-bottom:1px solid #705338;padding:6px 0}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card>p:nth-child(2){font-variant-numeric:tabular-nums;color:#efdbb1;text-shadow:0 2px 10px #000}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{border-top:0;border-bottom-color:#554536}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2{display:flex;align-items:center;gap:9px;color:#ddc79f;letter-spacing:2px}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2::before{content:'';width:5px;height:5px;transform:rotate(45deg);background:#a77b4a;flex:none}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-ranking{border-color:#665039;background:linear-gradient(115deg,#281710,#100d0b)}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-values strong{color:#e2c181;font-variant-numeric:tabular-nums}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row{border-color:#4c392b;background:transparent}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row:nth-child(even){background:#ffffff03}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div{border:0;border-left:2px solid #685642;background:linear-gradient(90deg,#8d795011,transparent);padding:7px 9px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div:nth-child(2){border-left-color:#995b3d}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div:nth-child(3){border-left-color:#a28e56}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div:nth-child(4){border-left-color:#61798a}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div:nth-child(5){border-left-color:#77795a}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div:nth-child(6){border-left-color:#806781}
@media(min-width:1200px){.sanctuary-ui #planner-stats-fragment .is-defense{border-left:1px solid #5a473633;padding-left:16px}}
/* Reserved advertising rails sit outside the planner, never over its controls. */
.planner-workspace{position:relative}
.planner-ad-rail{display:none}
@media(min-width:1440px){
.sanctuary-ui .planner-workspace{padding-inline:184px!important;box-sizing:border-box}
.sanctuary-ui .planner-workspace>.d4core-layout.is-planner-workbench{width:100%;max-width:1680px;margin-inline:auto}
.planner-ad-rail{display:block;position:absolute;top:16px;bottom:16px;width:160px;z-index:1}
.planner-ad-rail.is-left{left:12px}.planner-ad-rail.is-right{right:12px}
.planner-ad-slot{position:sticky;top:16px;width:160px;height:600px;box-sizing:border-box;border:1px solid #494032;background:linear-gradient(180deg,#191613,#0f0e0d);color:#897b65}
.planner-ad-slot>span{display:block;padding:8px 10px;border-bottom:1px solid #332d25;font-size:10px;letter-spacing:2px}
.planner-ad-slot>div{height:calc(100% - 34px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.planner-ad-slot i{font-size:30px;font-style:normal;color:#66553b}.planner-ad-slot p{font-size:12px;letter-spacing:3px}.planner-ad-slot small{font-size:10px;letter-spacing:2px;color:#675f52}
.sanctuary-ui .d4core-layout.is-planner-workbench .d4core-content-wrap{padding-inline:12px}
.sanctuary-ui .d4core-layout.is-planner-workbench .d4-planner-hud{padding-inline:12px}
}
/* Full-width skill comparison, with compact headline metrics. */
@media(min-width:1200px){
.sanctuary-ui #planner-stats-fragment .d4-stat-domains{grid-template-columns:minmax(0,1fr);gap:10px}
.sanctuary-ui #planner-stats-fragment .is-defense{border-left:0;padding-left:0}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card{display:grid;grid-template-columns:auto auto;align-items:center;justify-content:center;column-gap:14px;row-gap:0;min-height:48px;padding:2px 8px}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card>p{margin:0}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card>p:nth-child(2){font-size:24px}
.sanctuary-ui #planner-stats-fragment .d4-stat-card-delta{grid-column:2;font-size:10px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-ranking{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-ranking:has(>.d4-skill-dps-winner:only-child){grid-template-columns:1fr}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-list{border-top:0;border-left:1px solid #59432e}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-winner{align-content:center;padding:12px;gap:10px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types>div{padding:5px 7px;font-size:11px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals .d4-stat-line{flex-wrap:wrap}
}
/* Readability pass, preserving the reserved advertising columns. */
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row{position:relative;isolation:isolate;overflow:hidden}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row{grid-template-columns:18px 24px minmax(0,1fr) auto}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row-icon{display:block;width:24px;height:24px;flex-shrink:0;border:1px solid #665039;background:#0c1010;overflow:hidden}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row-icon img{display:block;width:100%;height:100%;object-fit:contain}
.sanctuary-ui #planner-stats-fragment .d4-skill-relative-bar{position:absolute;left:0;bottom:0;height:2px;background:linear-gradient(90deg,#704522,#b18b50);pointer-events:none;z-index:-1}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-list::after{content:'细条：相对最高实战 DPS';display:block;padding:5px 9px;font-size:10px;color:#a39886;border-top:1px solid #443527}
.sanctuary-ui .d4core-clone .d4-equipment-slot .d4-slot-item-name{text-shadow:0 1px 2px #000,0 0 4px #000,0 0 8px #000;background:radial-gradient(ellipse,#080606aa,transparent 75%)}
.sanctuary-ui #planner-stats-fragment .d4-stat-domains{gap:4px}
.sanctuary-ui #planner-stats-fragment .is-defense{margin-top:0;padding-top:10px}
.sanctuary-ui #planner-stats-fragment .d4-damage-factors{padding-bottom:6px}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-row strong{font-variant-numeric:tabular-nums;letter-spacing:.25px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals .d4-stat-line{column-gap:10px}
/* Skill damage uses one vertical list at every viewport size. */
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-ranking{display:grid;grid-template-columns:minmax(0,1fr)}
.sanctuary-ui #planner-stats-fragment .d4-skill-dps-list{border-left:0;border-top:1px solid #59432e}
/* Three vertical work areas: character | attributes | ranked skills. */
@media(min-width:1200px){
.sanctuary-ui .d4core-clone .planner-shell:not(.is-focused-view){grid-template-columns:minmax(300px,.85fr) minmax(0,1.65fr)!important}
.sanctuary-ui #planner-stats-fragment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;align-content:start;align-items:start}
.sanctuary-ui #planner-stats-fragment>.d4-stats-view-switch,
.sanctuary-ui #planner-stats-fragment>.d4-stats-mode-note,
.sanctuary-ui #planner-stats-fragment>.d4-stats-headline,
.sanctuary-ui #planner-stats-fragment>.d4-formula-details{grid-column:1}
.sanctuary-ui #planner-stats-fragment>.d4-stat-domains{display:contents}
.sanctuary-ui #planner-stats-fragment .is-offense{grid-column:2;grid-row:1/6;margin:0;padding:10px 0 0 16px;border-left:1px solid #59432e;border-top:0}
.sanctuary-ui #planner-stats-fragment .is-defense{grid-column:1;grid-row:4;margin-top:10px}
.sanctuary-ui #planner-stats-fragment>.d4-formula-details{grid-row:5}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline{grid-template-columns:1fr}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{grid-template-columns:repeat(2,minmax(0,1fr))}
.sanctuary-ui #planner-stats-fragment .d4-toughness-summary{grid-template-columns:1fr;gap:4px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types{grid-template-columns:repeat(2,minmax(0,1fr))}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card{justify-content:space-between}
.sanctuary-ui #planner-stats-fragment .d4-stats-mode-note{text-align:left}
.sanctuary-ui #planner-stats-fragment .d4-stats-view-switch{justify-content:flex-start}
}
/* Stable right-hand attributes; only the middle column switches content. */
@media(min-width:1200px){
.sanctuary-ui .d4-command-panel.is-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:20px;align-content:start;align-items:start}
.sanctuary-ui .is-overview>.overview-panel-tabs{grid-column:1;grid-row:1;margin-bottom:12px}
.sanctuary-ui .is-overview>.overview-information{grid-column:1;grid-row:2/7;display:flex;flex-direction:column}
.sanctuary-ui .is-overview>.overview-persistent-stats,
.sanctuary-ui .is-overview>.overview-persistent-stats>div,
.sanctuary-ui .is-overview #planner-stats-fragment,
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stat-domains{display:contents}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-view-switch{grid-column:2;grid-row:1;align-self:center;justify-content:center}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-mode-note{grid-column:2;grid-row:1}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-headline{grid-column:2;grid-row:3}
.sanctuary-ui .is-overview #planner-stats-fragment .is-defense{grid-column:2;grid-row:4}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-formula-details{grid-column:2;grid-row:5}
.sanctuary-ui .is-overview #planner-stats-fragment .is-offense{grid-column:1;grid-row:2/7;border-left:0;padding:0;margin:0}
}
/* Separate equipment and analysis views, preserving the outer ad rails. */
.sanctuary-ui .d4-command-panel.is-overview{display:block}
.sanctuary-ui .is-overview>.overview-information{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sanctuary-ui .is-overview>.overview-persistent-stats,
.sanctuary-ui .is-overview>.overview-persistent-stats>div{display:block}
.sanctuary-ui .planner-shell:not(.is-focused-view):has(>.d4-armory-panel[style*="display: none"]){grid-template-columns:minmax(0,1fr)!important}
.sanctuary-ui .is-overview #planner-stats-fragment{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:12px 28px}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-view-switch{grid-column:1;grid-row:1}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-mode-note{grid-column:1;grid-row:1}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stats-headline{grid-column:1;grid-row:3}
.sanctuary-ui .is-overview #planner-stats-fragment .is-defense{grid-column:1;grid-row:4}
.sanctuary-ui .is-overview #planner-stats-fragment>.d4-formula-details{grid-column:1;grid-row:5}
.sanctuary-ui .is-overview #planner-stats-fragment .is-offense{grid-column:2;grid-row:1/7}
@media(max-width:900px){
.sanctuary-ui .is-overview>.overview-information{display:flex}
.sanctuary-ui .is-overview #planner-stats-fragment{display:flex;flex-direction:column}
.sanctuary-ui .is-overview #planner-stats-fragment>*{width:100%}
}
/* Reset explicit grid placement when the equipment column is removed. */
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview:not(.is-focused-view){grid-template-columns:minmax(0,1fr)!important}
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>.d4-command-panel,
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>.planner-global-tabs,
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>.d4-build-summary{grid-column:1/-1!important;grid-row:auto!important;width:100%;min-width:0}
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>nav,
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>header,
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>.d4core-build-status{grid-column:1/-1!important;grid-row:auto!important}
.sanctuary-ui .d4core-clone .planner-shell.is-data-overview>*{grid-column:1/-1!important;grid-row:auto!important}
.sanctuary-ui .d4-damage-detail-link{cursor:pointer;text-align:left;background:none;border:0;color:inherit;padding:0}
.sanctuary-ui .d4-damage-detail-link:hover{color:#f2d493;text-decoration:underline}
.sanctuary-ui .d4-damage-detail{width:min(1000px,94vw);max-height:88vh;margin:auto;padding:0;border:1px solid #8a6940;background:#151210;color:#d3c8b3;box-shadow:0 12px 70px #000b}
.sanctuary-ui .d4-damage-detail::backdrop{background:#000b}
.sanctuary-ui .d4-damage-detail>header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#211912;border-bottom:1px solid #745331}
.sanctuary-ui .d4-damage-detail h2{font-size:22px;color:#e1bd77;font-weight:800}
.sanctuary-ui .d4-damage-detail>header button{padding:8px 14px;border:1px solid #876640;background:#302117;color:#e9c989;cursor:pointer}
.sanctuary-ui .d4-damage-detail-body{padding:18px}
.sanctuary-ui .d4-damage-detail small{display:block;font-size:11px;color:#a99b85}
.sanctuary-ui .d4-damage-detail-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.sanctuary-ui .d4-damage-detail-summary>div{padding:12px;background:#241a12;border-left:2px solid #936a38}
.sanctuary-ui .d4-damage-detail-summary strong{font-size:22px;color:#e7c47e}
.sanctuary-ui .d4-damage-detail-note{font-size:12px;line-height:1.65;color:#b2a48e;margin:8px 0}
.sanctuary-ui .d4-damage-source-row{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(90px,1fr));gap:10px;padding:12px 8px;border-bottom:1px solid #493727;align-items:center}
.sanctuary-ui .d4-damage-source-row:nth-child(even){background:#ffffff03}
.sanctuary-ui .d4-damage-source-row strong{font-size:14px;color:#e2bd77;font-variant-numeric:tabular-nums}
.sanctuary-ui .d4-damage-source-row>details{grid-column:1/-1;font-size:12px;color:#b5a78f}
.sanctuary-ui .d4-damage-source-row summary,.sanctuary-ui .d4-damage-unresolved>summary{cursor:pointer;padding:4px 0;color:#c1a578}
.sanctuary-ui .d4-damage-source-row p{white-space:pre-wrap;line-height:1.7;padding:6px 0}
.sanctuary-ui .d4-damage-unresolved{margin-top:16px}
.sanctuary-ui .d4-damage-detail-title,.sanctuary-ui .d4-damage-source-name{display:flex;align-items:center;gap:10px}
.sanctuary-ui .d4-source-art{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#40301d,#0c0c0c);border:1px solid #876239;box-shadow:inset 0 0 6px #000}
.sanctuary-ui .d4-source-visual-legend{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#dbb777;margin:14px 0 6px}
.sanctuary-ui .d4-damage-method{font-size:11px;color:#9f927f;margin-bottom:10px}
.sanctuary-ui .d4-damage-method summary{cursor:pointer}
.sanctuary-ui .d4-source-impact-track{grid-column:1/-1;height:5px;background:#322a20;border-radius:2px;overflow:hidden}
.sanctuary-ui .d4-source-impact-track>span{display:block;height:100%;background:linear-gradient(90deg,#6c3422,#bd823b,#eed495);box-shadow:0 0 8px #d5a95b66}
.sanctuary-ui .d4-damage-source-row{gap:7px 12px;padding:10px 8px}
.sanctuary-ui .d4-damage-source-name strong{overflow-wrap:anywhere}
.sanctuary-ui .d4-source-hover{cursor:help;outline-offset:4px}
.sanctuary-ui .d4-source-hover:hover>.d4-source-art,.sanctuary-ui .d4-source-hover:focus>.d4-source-art{border-color:#e7c486;box-shadow:0 0 8px #c69a5555}
.sanctuary-ui .d4-source-tooltip{position:fixed;z-index:100;width:min(380px,calc(100vw - 20px));max-height:calc(100vh - 20px);overflow:auto;padding:14px;border:1px solid #ab8044;background:linear-gradient(135deg,#271c13,#100e0c);box-shadow:0 8px 30px #000c;text-align:left;font-size:12px;line-height:1.65;font-weight:400}
.sanctuary-ui .d4-source-tooltip>strong{display:block;font-size:16px;color:#edc980;margin:3px 0 8px}
.sanctuary-ui .d4-source-tooltip p{white-space:pre-wrap;padding:7px 0;color:#d7cbb6}
.sanctuary-ui .d4-source-tooltip-factors{border-top:1px solid #624a30}
.sanctuary-ui .d4-source-tooltip-result{display:flex;gap:14px;border-top:1px solid #624a30;padding:9px 0;color:#af9b7b}
.sanctuary-ui .d4-source-tooltip-result b{display:block;color:#e7bf78;font-size:15px}
@media(max-width:640px){.sanctuary-ui .d4-damage-source-row{grid-template-columns:repeat(3,minmax(0,1fr))}.sanctuary-ui .d4-damage-source-name{grid-column:1/-1}.sanctuary-ui .d4-damage-detail-summary{grid-template-columns:1fr}.sanctuary-ui .d4-damage-detail-body{padding:10px}}

/* Keep each analysis domain contiguous in both planner and reference builds. */
.sanctuary-ui #planner-stats-fragment,.sanctuary-ui .is-overview #planner-stats-fragment{display:block}
.sanctuary-ui #planner-stats-fragment>.d4-stat-domains,.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stat-domains{display:flex;flex-direction:column;gap:24px}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain,.sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain{width:100%;min-width:0;grid-column:auto;grid-row:auto;margin:0;padding:16px 0 0;border:0;border-top:1px solid #594b3a}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2{font-size:18px;margin:0 0 14px;color:#cbb583}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.sanctuary-ui #planner-stats-fragment .d4-stats-headline{margin:0 0 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sanctuary-ui #planner-stats-fragment .d4-toughness-types{grid-template-columns:repeat(3,minmax(0,1fr))}
.sanctuary-ui #planner-stats-fragment .d4-formula-details{margin-top:24px}
@media(max-width:600px){.sanctuary-ui #planner-stats-fragment .d4-stats-headline{grid-template-columns:1fr}.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{gap:10px 14px}.sanctuary-ui #planner-stats-fragment .d4-stat-line{flex-wrap:wrap;gap:4px}}

/* Use the available analysis width without mixing the three domains. */
.sanctuary-ui #planner-stats-fragment{container-type:inline-size}
.sanctuary-ui #planner-stats-fragment .is-utility{order:-1}
.sanctuary-ui #planner-stats-fragment .is-utility>h2{text-align:center}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain{padding-top:10px}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals .d4-stat-line{padding:5px 0;min-height:0}
.sanctuary-ui #planner-stats-fragment .d4-stats-vitals{gap:4px 16px}
.sanctuary-ui #planner-stats-fragment .d4-stat-domain h2{margin-bottom:10px}
@container(min-width:720px){
 .sanctuary-ui #planner-stats-fragment>.d4-stat-domains,.sanctuary-ui .is-overview #planner-stats-fragment>.d4-stat-domains{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain.is-offense,.sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain.is-offense{grid-column:1;grid-row:1}
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain.is-defense,.sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain.is-defense{grid-column:2;grid-row:1}
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain.is-utility,.sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain.is-utility{grid-column:1/-1;grid-row:1;display:grid;grid-template-columns:1fr 1fr;column-gap:24px}
 .sanctuary-ui #planner-stats-fragment .is-utility>h2{grid-column:1/-1;text-align:center}
 .sanctuary-ui #planner-stats-fragment .is-utility>.d4-stats-vitals{grid-column:1;grid-row:1}
 .sanctuary-ui #planner-stats-fragment .is-utility>div:last-child{grid-column:2;grid-row:2/4;margin:0!important;padding:0!important;border:0!important}
 .sanctuary-ui #planner-stats-fragment .is-utility>div:nth-of-type(2){grid-column:1!important;grid-row:3;margin:6px 0 0!important}
 .sanctuary-ui #planner-stats-fragment .d4-stats-headline{grid-template-columns:1fr;gap:4px;margin-bottom:8px}
 .sanctuary-ui #planner-stats-fragment .d4-stats-headline .d4-stat-card{min-height:40px}
 .sanctuary-ui #planner-stats-fragment .d4-skill-dps-winner{padding:10px;gap:6px}
 .sanctuary-ui #planner-stats-fragment .d4-toughness-summary{margin-top:10px}
 .sanctuary-ui #planner-stats-fragment .d4-toughness-types{margin-top:10px;gap:5px}
 .sanctuary-ui #planner-stats-fragment .d4-stat-line{flex-wrap:wrap}
}

/* Matching frames make the offense and defense columns read as a pair. */
@container(min-width:720px){
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain.is-offense,
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain.is-defense,
 .sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain.is-offense,
 .sanctuary-ui .is-overview #planner-stats-fragment .d4-stat-domain.is-defense{box-sizing:border-box;padding:12px;border:1px solid #4b4034;background:#181613;align-self:stretch}
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain>div:first-child:has(h2){min-height:32px}
 .sanctuary-ui #planner-stats-fragment .d4-stat-domain h2{font-size:17px;line-height:24px;margin:0 0 10px}
 .sanctuary-ui #planner-stats-fragment .is-utility>h2{justify-content:center}
 .sanctuary-ui #planner-stats-fragment .is-offense .d4-skill-dps-ranking{margin-top:0}
 .sanctuary-ui #planner-stats-fragment .d4-skill-dps-values{margin-top:4px;gap:5px}
 .sanctuary-ui #planner-stats-fragment .d4-skill-dps-values>p{font-size:11px!important;line-height:1.5}
 .sanctuary-ui #planner-stats-fragment .d4-stats-vitals .d4-stat-line{padding:4px 0}
 .sanctuary-ui #planner-stats-fragment .d4-stats-vitals{gap:2px 12px}
 .sanctuary-ui #planner-stats-fragment .is-defense .d4-stats-headline{border:1px solid #665039;padding:8px;background:linear-gradient(115deg,#281f16,#100d0b);margin-bottom:12px}
}

.sanctuary-ui #planner-stats-fragment .d4-defense-utility{border-top:1px solid #4b4034;margin-top:14px;padding-top:12px}
