.property-draft { margin-top: 1rem; }
.property-draft, #tab-property { min-width: 0; max-width: 100%; }
.property-access-block { display: none !important; }
.property-access-pill { display: none !important; }
.property-access-pill-public, .property-access-pill-private { padding: 0.38rem 0.55rem; font-size: inherit; }
.property-access-pill-public { background: #1a3a6b; color: #fff; }
.property-access-pill-private { background: #3a1a1a; color: #fff; }
.property-access-public, .property-access-private { appearance: none; display: inline-block; border: 0; padding: 0.38rem 0.55rem; font: inherit; color: #fff; cursor: pointer; }
.property-access-public { background: #1a3a6b; }
.property-access-private { background: #3a1a1a; }
.property-access-public:not(.is-active), .property-access-private:not(.is-active) { opacity: 0.62; }
.property-access-public.is-active, .property-access-private.is-active { box-shadow: inset 0 0 0 2px rgba(255,255,255,0.72); }
.property-access-divider { color: #f0d879; padding: 0 0.12rem; }
.property-gm-note { max-width: 100%; color: #999; font-size: 0.72rem; line-height: 1.45; overflow-wrap: anywhere; word-break: break-word; margin: 0.45rem 0 0; }
#tab-property > p { max-width: 100%; font-size: 0.95rem; line-height: 1.5; overflow-wrap: anywhere; word-break: break-word; }
.property-page-label { color: #b9aa00; font-size: 0.7rem; font-weight: bold; letter-spacing: 0.1em; text-transform: uppercase; }
.property-page-title { color: #e0cfc0; margin: 0.2rem 0 0.35rem; font-size: 1.45rem; }
.property-page-description { color: #999; font-size: 0.84rem; line-height: 1.55; margin: 0 0 1rem; }
.property-page-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.35rem; padding: 0.25rem 0 0.7rem; margin-bottom: 0.9rem; border-bottom: 1px solid #2b2b2b; }
.property-page-nav button { min-width: 0; border: 1px solid #333; border-radius: 999px; background: #151515; color: #888; padding: 0.3rem 0.35rem; font-size: 0.7rem; font-weight: bold; cursor: pointer; white-space: nowrap; }
.property-page-nav button:hover, .property-page-nav button.active { color: #b9aa00; border-color: #b9aa00; background: #1e1b0b; }
.property-page-nav button.future { opacity: 0.55; }
.property-draft-tools { display: flex; gap: 0.55rem; align-items: center; flex-wrap: wrap; margin: 0.8rem 0; }
.property-draft-search { flex: 1 1 220px; min-width: 0; border: 1px solid #3b3510; border-radius: 7px; background: #0e0e0e; color: #e0cfc0; padding: 0.55rem 0.7rem; font: inherit; font-size: 0.82rem; }
.property-draft-search:focus { outline: 2px solid rgba(185,170,0,0.35); outline-offset: 1px; }
.property-draft-cap { color: #777; font-size: 0.72rem; white-space: nowrap; }
.property-armory-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(250px, 0.85fr); gap: 0.85rem; align-items: start; }
.property-canvas { min-height: 0; position: relative; overflow: visible; border: 1px solid #6d5c16; border-radius: 12px; background: radial-gradient(circle at 50% 20%, #423619 0, #1c180c 38%, #0c0c0c 80%); box-shadow: inset 0 0 38px rgba(0,0,0,0.55), 0 0 0 3px rgba(185,170,0,0.08); padding: 0.65rem; }
.property-canvas-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.35rem; color: #f0d879; text-transform: uppercase; }
.property-canvas-heading-haven { display: flex; align-items: baseline; gap: 0.35rem; }
.property-canvas-heading-haven span, .property-canvas-heading-title { font-size: 0.55rem; font-weight: bold; letter-spacing: 0.08em; }
.property-canvas-heading-haven strong { font-size: 0.72rem; letter-spacing: 0.04em; }
.property-canvas-kicker { color: #b9aa00; font-size: 0.64rem; font-weight: bold; letter-spacing: 0.12em; text-transform: uppercase; }
.property-safe-haven-control { position: absolute; z-index: 20; top: 0.55rem; right: 0.65rem; color: #d8d0bd; font-size: 0.62rem; letter-spacing: 0; text-transform: none; }
.property-safe-haven-control summary { list-style: none; max-width: 155px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border: 1px solid #6d5c16; border-radius: 5px; background: #151515; color: #f0d879; padding: 0.24rem 0.42rem; cursor: pointer; }
.property-safe-haven-control summary::-webkit-details-marker { display: none; }
.property-safe-haven-control summary::after { content: '▾'; float: right; margin-left: 0.7rem; color: #f0d879; }
.property-safe-haven-control[open] summary::after { content: '▴'; }
.property-safe-haven-options { position: absolute; z-index: 20; top: calc(100% + 0.25rem); right: 0; min-width: 145px; padding: 0.25rem; border: 1px solid #6d5c16; border-radius: 6px; background: #151515; box-shadow: 0 5px 14px rgba(0,0,0,0.45); }
.property-safe-haven-option { display: block; width: 100%; border: 0; border-radius: 4px; background: transparent; color: #d8d0bd; padding: 0.38rem 0.45rem; cursor: pointer; font: inherit; text-align: left; }
.property-safe-haven-option:hover, .property-safe-haven-option.selected { background: #332c0c; color: #f0d879; }
.property-canvas-pickers { margin: 0.15rem 0 0.45rem; }
.property-canvas-pickers-bottom { margin: 0.45rem 0 0.15rem; }
.property-canvas-picker-title { color: #f0d879; font-size: 0.55rem; font-weight: bold; letter-spacing: 0.08em; line-height: 1.2; text-align: center; text-transform: uppercase; }
.property-canvas-stage { width: 100%; aspect-ratio: 2304 / 3312; box-sizing: border-box; position: relative; margin-top: 0.25rem; background-position: center; background-size: 100% 100%; border: 1px solid rgba(240,216,121,0.5); border-radius: 9px; overflow: hidden; }
.property-canvas-layer-stack { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.property-canvas-composition { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; transform: translate(-50%, -50%); transform-origin: center center; }
.property-canvas-layer { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: fill; object-position: center; pointer-events: none; }
.property-canvas-layer-character-0 { z-index: 1; }
.property-canvas-layer-character-0.property-character-occluded-by-armor { clip-path: inset(0 0 40% 0); }
.property-canvas-layer-character-1 { z-index: 2; }
.property-canvas-layer-character-2 { z-index: 3; }
.property-canvas-layer-companion { z-index: 4; }
.property-canvas-layer-companion.companion-drake { z-index: 0; }
.property-canvas-layer-armament { z-index: 5; }
.property-canvas-layer-armament.armor-boots { z-index: 1; }
.property-canvas-layer-armament.armor-core { z-index: 2; }
.property-canvas-layer-armament.armor-gloves { z-index: 3; }
.property-canvas-layer-armament.weapon-taw { z-index: 4; }
.property-canvas-layer-character-hand-left, .property-canvas-layer-character-hand-right { z-index: 2.5; }
.property-canvas-layer-character-hand-right { transform: scaleX(-1); }
.property-canvas-layer-armament.armor-helm { transform: translateY(-0.8%); }
.property-canvas-portrait { position: absolute; z-index: 1; top: 34%; left: 29%; width: 42%; height: 31%; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(240,216,121,0.65); border-radius: 9px; background: rgba(8,10,10,0.6); box-shadow: 0 0 25px rgba(0,0,0,0.45); }
.property-canvas-portrait-label { color: #f0d879; text-align: center; font-size: 0.72rem; line-height: 1.45; letter-spacing: 0.04em; text-transform: uppercase; }
.property-canvas-portrait-label span { display: block; color: #d8d0bd; font-size: 0.62rem; letter-spacing: 0; text-transform: none; margin-top: 0.3rem; }
.property-canvas-orbit { position: static; width: auto; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; gap: 0.3rem; }
.property-canvas-orbit.companions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.property-canvas-orbit-title { display: none; }
.property-companion-instruction { margin-top: 0.42rem; margin-bottom: 0.5rem; color: #8f7440; font-size: 0.68rem; font-weight: 600; letter-spacing: 0.015em; line-height: 1.35; text-align: center; }
.property-orbit-piece, .property-orbit-piece img { -webkit-touch-callout: none; user-select: none; }
.property-long-press-overlay { position: fixed; z-index: 1000; inset: 0; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(0,0,0,0.78); }
.property-long-press-card { position: relative; width: min(66vw, 220px); box-sizing: border-box; border: 1px solid #262626; border-radius: 9px; background: #161616; color: #e0cfc0; box-shadow: 0 10px 35px rgba(0,0,0,0.65); overflow: hidden; text-align: left; }
.property-long-press-close { position: absolute; z-index: 1; top: 0.3rem; right: 0.35rem; width: 1.8rem; height: 1.8rem; border: 1px solid #6d5c16; border-radius: 50%; background: #151515; color: #f0d879; font-size: 1.25rem; line-height: 1; cursor: pointer; }
.property-long-press-art { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 3 / 4; border-bottom: 1px solid #262626; background: #0c0c0c; overflow: hidden; }
.property-long-press-art img { display: block; width: 100%; height: 100%; object-fit: contain; }
.property-long-press-placeholder { color: #444; font-size: 2rem; }
.property-long-press-meta { padding: 0.4rem 0.5rem; }
.property-long-press-name { color: #e0cfc0; font-size: 0.76rem; font-weight: bold; line-height: 1.25; }
.property-long-press-rank { margin-top: 0.15rem; color: #b9aa00; font-size: 0.66rem; line-height: 1.25; }
.property-long-press-note { margin-top: 0.15rem; color: #8a7f00; font-size: 0.66rem; line-height: 1.25; }
.property-rank-common { --property-rank-color: #6b6a6a; }
.property-rank-uncommon { --property-rank-color: #008601; }
.property-rank-rare { --property-rank-color: #0058aa; }
.property-rank-unique { --property-rank-color: #c57500; }
.property-rank-heroic { --property-rank-color: #be3f00; }
.property-rank-elite { --property-rank-color: #be0500; }
.property-rank-legendary { --property-rank-color: #8c06a3; }
.property-rank-divine { --property-rank-color: #92793a; }
.property-long-press-card[class*="property-rank-"] { border-color: var(--property-rank-color); }
.property-long-press-card[class*="property-rank-"] .property-long-press-name,
.property-long-press-card[class*="property-rank-"] .property-long-press-rank,
.property-long-press-card[class*="property-rank-"] .property-long-press-note { color: var(--property-rank-color); }
.property-armory-card[class*="property-rank-"],
.property-card-index-item[class*="property-rank-"],
.property-orbit-piece[class*="property-rank-"] { border-color: var(--property-rank-color); }
.property-armory-card[class*="property-rank-"] .property-armory-card-name,
.property-card-index-item[class*="property-rank-"] .property-card-index-name { color: var(--property-rank-color); }
.property-orbit-piece { width: 100%; aspect-ratio: 3 / 4; min-height: 0; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; overflow: hidden; padding: 0; border: 1px solid rgba(240,216,121,0.45); border-radius: 6px; background: #161616; color: #d8d0bd; cursor: pointer; text-align: center; }
.property-orbit-piece img { display: block; flex: 1 1 0; min-height: 0; width: 100%; height: 0; object-fit: contain; object-position: center; background: #0c0c0c; }
.property-orbit-piece span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.5rem; line-height: 1.1; }
.property-orbit-meta { min-height: 0.62rem; color: #b9aa00; font-size: 0.39rem; font-weight: bold; line-height: 1; }
.property-orbit-piece.property-subdued { opacity: 0.76; filter: saturate(0.78); }
.property-orbit-piece.property-highlighted { opacity: 1; border-color: #f0d879; box-shadow: 0 0 0 2px rgba(240,216,121,0.28) !important; filter: drop-shadow(0 0 6px rgba(245,214,89,0.65)); }
.property-canvas-placeholder { color: #817947; text-align: center; font-size: 0.86rem; line-height: 1.5; max-width: 240px; padding: 1rem; border: 1px dashed #635a25; border-radius: 9px; }
.property-canvas-caption { border-top: 1px solid rgba(185,170,0,0.25); padding-top: 0.65rem; }
.property-canvas-caption strong { display: block; color: #f0d879; font-size: 1rem; }
.property-canvas-caption > span { color: #999; display: block; font-size: 0.74rem; line-height: 1.45; margin-top: 0.22rem; }
.property-character-picker { margin-top: 0.55rem; }
.property-character-picker-tiers, .property-character-picker-thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.3rem; }
.property-character-picker-tiers { margin-top: 0.42rem; }
.property-character-picker-tier { color: #f0d879; font-size: 0.68rem; font-weight: bold; letter-spacing: 0.08em; text-align: center; text-shadow: 0 1px 2px #000; text-transform: uppercase; }
.property-character-picker-tier.basic { grid-column: 1 / span 1; padding-left: 0.15rem; text-align: left; }
.property-character-picker-tier.pro { grid-column: 3 / span 3; color: #d7a8ee; opacity: 1; padding-left: 0.15rem; text-align: left; }
.property-character-picker-thumbs { margin-top: 0.2rem; }
.property-character-picker-thumb { min-width: 0; width: 100%; aspect-ratio: 5 / 7; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; overflow: hidden; padding: 0.18rem; border: 1px solid #8e7a45; border-radius: 6px; background: #b8ae99; color: #302b22; cursor: pointer; opacity: 0.68; text-align: center; }
.property-character-picker-thumb img { display: block !important; visibility: visible !important; flex: 1 1 auto; min-height: 0; width: 100%; height: 100%; object-fit: contain; object-position: center; border-radius: 4px; background: #b8ae99; }
.property-character-picker-thumb.selected { border-color: #f0d879; box-shadow: 0 0 0 2px rgba(240,216,121,0.22) !important; opacity: 1; }
.property-character-picker-thumb.pro { opacity: 0.48; }
.property-character-picker-thumb.pro.selected { border-color: #d7a8ee; box-shadow: 0 0 0 2px rgba(215,168,238,0.4) !important; opacity: 1; }
.property-character-picker-thumb.unavailable { cursor: not-allowed; filter: grayscale(0.75); opacity: 0.65; }
.property-character-picker-thumb.unavailable img { opacity: 1; }
body.lawful-mode .property-character-picker-tier { color: #5d4d00; text-shadow: none; }
body.lawful-mode .property-character-picker-tier.pro { color: #634276; }
body.lawful-mode .property-character-picker-thumb { border-color: #b8aa7e; background: #e6dfcf; color: #514a3c; }
body.lawful-mode .property-character-picker-thumb img { background: #e6dfcf; }
.property-card-index { background: #121212; border: 1px solid #2f2b16; border-radius: 10px; padding: 0.8rem; }
.property-card-index h4 { color: #e0cfc0; margin: 0 0 0.35rem; font-size: 0.86rem; }
.property-card-index p { color: #777; font-size: 0.74rem; line-height: 1.45; margin: 0 0 0.7rem; }
.property-card-index-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem; max-height: 375px; overflow-y: auto; padding-right: 0.2rem; }
.property-armory-row { margin-top: 1.05rem; }
.property-armory-row-head { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.42rem; }
.property-armory-row-head h4 { color: #b9aa00; font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase; margin: 0; }
.property-armory-row-head span { color: #666; font-size: 0.68rem; }
.property-armory-row-controls { display: flex; align-items: center; gap: 0.25rem; }
.property-armory-row-controls button { border: 1px solid #4d4313; border-radius: 999px; background: #151515; color: #b9aa00; padding: 0.12rem 0.42rem; font-size: 0.68rem; line-height: 1; cursor: pointer; }
.property-armory-row-controls button:hover { border-color: #f0d879; color: #f0d879; }
.property-armory-row-controls button:disabled { opacity: 0.35; cursor: default; }
.property-card-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.45rem; }
.property-armory-card { min-width: 0; position: relative; padding: 0.28rem; color: #aaa; background: #191919; border: 1px solid #363636; border-radius: 7px; cursor: pointer; text-align: center; transition: opacity 0.15s, border-color 0.15s, transform 0.15s; }
.property-armory-card:hover { border-color: #9f8e2a; transform: translateY(-1px); }
.property-armory-card.owned { color: #e0cfc0; }
.property-armory-card.unowned { opacity: 0.34; }
.property-armory-card.selected { border-color: #f0d879; box-shadow: 0 0 0 2px rgba(240,216,121,0.2) !important; }
.property-armory-card.readied::after { content: 'READIED'; position: absolute; top: 0.25rem; right: 0.25rem; color: #201b08; background: #d9bf4d; border-radius: 3px; font-size: 0.48rem; font-weight: bold; padding: 0.12rem 0.2rem; }
.property-armory-card-art { height: 90px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle, #3a3218, #0d0d0d 72%); border-radius: 5px; overflow: hidden; }
.property-armory-card-art img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.property-armory-card-art.placeholder { color: #5f582f; font-size: 1.1rem; }
.property-companion-card-meta { display: block; min-height: 0.85rem; overflow: hidden; color: #8f7440; font-size: 0.52rem; font-weight: bold; line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.property-companion-card-top { margin-bottom: 0.18rem; color: #b9aa00; }
.property-companion-card-bottom { margin-top: 0.2rem; }
.property-armory-row[data-property-row="Companion Cards"] .property-armory-card-art { height: 108px; }
.property-armory-row[data-property-row="Companion Cards"] .property-armory-card-art img { object-fit: contain; object-position: center; }
.property-armory-card-name { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-top: 0.3rem; font-size: 0.63rem; font-weight: bold; }
.property-armory-card-ref { display: block; color: #82762c; font: 0.56rem ui-monospace, Menlo, monospace; margin-top: 0.12rem; }
.property-armory-card-state { display: block; color: #8f7440; font-size: 0.57rem; line-height: 1.25; margin-top: 0.12rem; }
.property-card-index-item { display: block; min-width: 0; padding: 0.45rem; border: 1px solid #2d2d2d; border-radius: 6px; background: #181818; cursor: pointer; text-align: left; }
.property-card-index-item:hover, .property-card-index-item.selected { border-color: #b9aa00; }
.property-card-index-name { color: #d3c78e; font-size: 0.67rem; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.property-card-index-meta { display: block; color: #777; font-size: 0.58rem; margin-top: 0.1rem; }
.property-search-message { color: #b9aa00; font-size: 0.76rem; line-height: 1.45; padding: 0.55rem 0.7rem; margin-top: 0.55rem; border-left: 2px solid #b9aa00; background: #1b1809; }
.property-container-page { background: #121212; border: 1px solid #3b3211; border-radius: 10px; padding: 0.9rem; }
.property-container-note { color: #999; font-size: 0.8rem; line-height: 1.55; margin: 0 0 0.8rem; }
.property-container-size { color: #b9aa00; font-size: 0.7rem; border: 1px solid #4d4313; border-radius: 999px; padding: 0.15rem 0.45rem; }
body.lawful-mode .property-page-title, body.lawful-mode .property-canvas-caption strong { color: #5d4d00; }
body.lawful-mode .property-draft-search { background: #f7f5f0; border-color: #d5cda8; color: #333; }
body.lawful-mode .property-card-index, body.lawful-mode .property-container-page { background: #fbfaf7; border-color: #d8d0bd; }
body.lawful-mode .property-armory-card, body.lawful-mode .property-card-index-item { background: #f6f1e5; border-color: #d8d0bd; }
body.lawful-mode .property-canvas { background: radial-gradient(circle at 50% 20%, #fff9df 0, #eee5ce 45%, #d8ceb6 100%); }
@media (max-width: 700px) { .property-armory-layout { grid-template-columns: 1fr; } .property-canvas { min-height: 0; } .property-card-index-list { max-height: none; } }
@media (max-width: 600px) {
    #tab-property { overflow-x: hidden; }
    #tab-property h3 { font-size: 1.8rem; line-height: 1.1; margin-top: 0; }
    #tab-property > p { font-size: 0.95rem !important; }
    .property-access-pill { font-size: 10px !important; }
    .property-access-pill-public, .property-access-pill-private { font-size: 10px !important; padding: 0.38rem 0.55rem; }
    .property-gm-note { font-size: 12px !important; }
    .property-page-title { font-size: 1.25rem; }
    .property-page-nav button { font-size: 11px; }
}
@media (max-width: 430px) { .property-card-row { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.26rem; } .property-armory-card { padding: 0.2rem; } .property-armory-card-art { height: 76px; } .property-armory-card-name { font-size: 0.55rem; } .property-armory-card-ref, .property-armory-card-state { font-size: 0.49rem; } }