/* Rain-worn paper, wet ink, oxidised copper. One stable frame across the home. */
:root { --inv-ink:#202927; --inv-edge:#6b756b; --inv-gold:#b9c4ad; --inv-paper:#e1ddcc; --inv-muted:#9ca89e; --journal-red:#ba7965; }
.base-wordmark .world-weather-readout { margin:8px 0 0; font:12px/1.5 'SimSun',serif; letter-spacing:1px; color:#d5d7bb; }
.game-dialog.inventory-dialog { background:repeating-linear-gradient(96deg,#ced0b803 0 1px,transparent 1px 7px),linear-gradient(120deg,#343d35,#252d29 56%,#202824); border:1px solid #8a978275; color:var(--inv-paper); box-shadow:0 24px 100px #0009,inset 5px 0 #72857220; }
.inventory-dialog::backdrop { background:#091411a6; backdrop-filter:blur(2px); }
.game-dialog.inventory-dialog>header { height:82px; min-height:82px; box-sizing:border-box; padding:16px 28px; background:#16231d55; border-bottom:1px solid #97a18a40; }
.game-dialog.inventory-dialog>header h2 { font:26px/1.4 'STKaiti','KaiTi','SimSun',serif; letter-spacing:5px; }
.game-dialog.inventory-dialog>header .panel-kicker { color:#a4b8a1; font-size:10px; letter-spacing:4px; margin:0 0 6px; }
.game-dialog.inventory-dialog .close-panel { width:34px; height:34px; border:1px solid #a9b49b50; color:#ddd7bf; }
.game-dialog.inventory-dialog .inventory-action { border-color:#84947a66; background:#46514355; color:#d9dfcf; border-radius:2px; transition:background .12s,border-color .12s; }
.game-dialog.inventory-dialog .inventory-action:hover { background:#64715a70; border-color:#a9b59c; }
.game-dialog.inventory-dialog .primary-action { background:#bbc2a3; color:#26372c; border-color:#ced2b4; }
.game-dialog.inventory-dialog .primary-action:hover { background:#d0d4b8; }
.game-dialog.inventory-dialog button:disabled { opacity:.42; cursor:default; }
.game-dialog.inventory-dialog .panel-kicker { color:#b0bda1; }
#base-panel.game-dialog { width:min(1160px,calc(100vw - 48px)); height:min(810px,calc(100dvh - 48px)); max-width:none; max-height:none; padding:0; overflow:hidden; }
#base-panel[open] { display:flex; flex-direction:column; }
#base-panel.game-dialog>header { position:relative; top:auto; background:#16231d55; }
#base-panel::backdrop { backdrop-filter:none; }
.journal-navigation { display:flex; flex:0 0 48px; align-items:stretch; gap:2px; padding:0 20px; overflow-x:auto; border-bottom:1px solid #9ca88a40; background:#1d292144; }
.journal-navigation .inventory-action { position:relative; border:0!important; background:transparent!important; padding:0 13px; white-space:nowrap; font:14px 'STKaiti','KaiTi','SimSun',serif; letter-spacing:1px; }
.journal-navigation [aria-current=true] { color:#e2debd!important; }
.journal-navigation [aria-current=true]::after { content:''; position:absolute; bottom:0; left:13px; right:13px; height:2px; background:var(--journal-red); }
#base-panel>.base-panel-content { flex:1; min-height:0; overflow:auto; padding:28px 32px; scrollbar-width:thin; scrollbar-color:#78876a #1c2821; }
#base-panel .base-economy-nav { display:none; }
#base-panel .base-panel-content h3 { font-family:'STKaiti','KaiTi','SimSun',serif; color:#e2ddc4; }
#base-panel .base-prose { color:#b9c4b5; max-width:780px; font-size:14px; line-height:1.9; }
#base-panel .base-recipes { grid-template-columns:1fr 1fr; gap:18px; }
#base-panel .base-recipes .recipe-row { border:1px solid #8b9a7540; padding:16px; background:#12261c25; }
#base-panel .base-recipes .recipe-info p { font-size:12px; }
#base-panel .base-recipes .recipe-info h3 { font-size:19px; }
.raid-intel-card,.grove-exchange-card { border-color:#8c99795c; background:#63704c15; }
.base-command-preview,.last-loadout-control { border-color:#81927255; }
.game-dialog .inventory-footer { min-height:42px; flex:0 0 auto; box-sizing:border-box; border-top:1px solid #98a48538; background:#17271d35; }
/* Left: possessions. Right: the thing being searched, or home storage. */
.game-dialog.inventory-dialog:has(.v07-inventory):not(#base-panel) { width:min(1080px,calc(100vw - 48px)); height:min(748px,calc(100dvh - 64px)); max-width:none; max-height:none; overflow:hidden; }
.game-dialog.inventory-dialog[open]:has(.v07-inventory):not(#base-panel) { display:flex; flex-direction:column; }
.game-dialog.field-inventory:has(.v07-inventory) { top:48px; margin:0 auto; height:min(720px,calc(100dvh - 80px)); }
.game-dialog.field-inventory:has(.v07-inventory)>header { height:72px; min-height:72px; }
.game-dialog.field-inventory .inventory-shell.v07-inventory { grid-template-rows:minmax(0,1fr) 136px 24px; }
.inventory-shell.v07-inventory,.v07-inventory.has-stash,.v07-inventory.has-external { flex:1; min-height:0; display:grid; width:auto; box-sizing:border-box; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:minmax(0,1fr) 154px 24px; grid-template-areas:'personal external' 'detail detail' 'status status'; gap:14px 26px; padding:20px 28px 10px; overflow:hidden; }
.journal-personal { grid-area:personal; min-height:0; overflow:auto; display:grid; grid-template-columns:254px minmax(100px,1fr); align-content:start; gap:12px 16px; padding:0 12px 4px 0; scrollbar-width:thin; }
.journal-personal>section[data-zone=inventory] { grid-column:1; grid-row:1/span 2; }
.journal-personal>section[data-zone=weapon] { grid-column:2; grid-row:1; }
.journal-personal>section[data-zone=armor] { grid-column:2; grid-row:2; }
.journal-personal>section[data-zone=secure] { grid-column:1/-1; grid-row:3; }
.v07-inventory:not(.has-external):not(.has-stash)::after { content:'灯下察物，雨中寻踪。\A靠近木匣或落地物，再看此处有何所得。'; white-space:pre-line; grid-area:external; align-self:center; text-align:center; padding:30px; color:#80967a; font:18px/2.4 'KaiTi','SimSun',serif; }
.v07-inventory .journal-personal>section { margin:0; }
.v07-inventory>.stock-pane,.v07-inventory>[data-external] { grid-area:external; min-height:0; overflow:auto; padding:0 0 4px 24px; border-left:1px solid #90a08045; scrollbar-width:thin; }
.v07-inventory .container-heading { height:26px; margin:0 0 10px; }
.v07-inventory .container-heading h3 { font:19px 'STKaiti','KaiTi','SimSun',serif; letter-spacing:3px; }
.v07-inventory .pack-grid { width:254px; max-width:100%; box-sizing:border-box; grid-auto-rows:56px; background:#101c1644; border:1px solid #8b99774f; outline:none; }
.v07-inventory [data-zone=secure] .pack-grid { width:134px; }
.v07-inventory .gear-slot { height:100px; min-height:0; padding:8px; background:#1b291f44; border-color:#8c9b7440; }
.v07-inventory .gear-slot .stock-grid { height:54px!important; min-height:54px!important; max-height:54px!important; }
.v07-inventory .gear-slot .inventory-item { min-height:54px; }
.v07-inventory .pack-cell { background:#acb58d06; border-color:#a5ad851a; }
.v07-inventory .inventory-item { background:#626b4930; border-color:#91a27766; border-radius:2px; }
.v07-inventory .pack-grid .inventory-item-name { font-size:10px; max-width:calc(100% - 8px); }
.v07-inventory .inventory-item.is-selected { outline:1px solid #c2c99e; box-shadow:inset 0 0 12px #bbc78e15; }
.v07-inventory .virtual-stock { height:310px; min-height:310px; max-height:none; }
.v07-inventory .is-unknown { background:repeating-linear-gradient(120deg,#424a3830 0 4px,#29362950 4px 7px)!important; border-color:#68765b80!important; }
.v07-inventory>.item-inspector { grid-area:detail; min-height:0; max-height:none; overflow:auto; display:grid; grid-template-columns:62px minmax(150px,190px) minmax(0,1fr) 220px; grid-auto-rows:min-content; gap:4px 18px; padding:12px 2px 0; border:0; border-top:1px solid #9daa833d; scrollbar-width:thin; }
.v07-inventory>.item-inspector>.panel-kicker { grid-column:2; grid-row:1; margin:0; }
.v07-inventory>.item-inspector>.inspector-icon { grid-column:1; grid-row:1/span 3; height:60px; margin:0; }
.v07-inventory>.item-inspector>h3 { grid-column:2; grid-row:2; font-size:20px; margin:0; }
.v07-inventory>.item-inspector>.item-description { grid-column:2; grid-row:3; font-size:12px; line-height:1.6; margin:0; }
.v07-inventory>.item-inspector>.item-facts { grid-column:3; grid-row:1/span 3; font-size:12px; line-height:1.5; margin:0; padding:0; border:0; grid-template-columns:75px 1fr; }
.v07-inventory>.item-inspector>.item-actions { grid-column:4; grid-row:1/span 3; display:flex; flex-wrap:wrap; align-content:start; align-items:start; gap:8px; padding:0; }
.v07-inventory>.item-inspector>.item-actions .inventory-action { min-height:30px; padding:5px 9px; font-size:12px; }
.v07-inventory>.item-inspector>.item-facts { gap:4px 10px; }
.v07-inventory>.item-inspector>.inspector-empty { grid-column:1; grid-row:1/span 3; font:42px 'KaiTi',serif; color:#74856b; }
.v07-inventory>.inventory-message { grid-area:status; padding:0; margin:0; min-height:0; font-size:12px; color:#b8c5a7; }
.v07-inventory .stock-filter { background:#1c2a2055; border-color:#91a17750; }
.v07-inventory .inventory-subpanel { background:#29362b; border-color:#a5b28a; }
.item-tooltip { background:#1e2c22; border-color:#8fa17a; }
.drop-footprint { background:#a6be713d; border-color:#cadb9c; }
.drop-footprint.invalid { background:#b2604c44; border-color:#da9b7a; }
.field-toolbar { flex:0 0 auto; font-size:12px; }
.journal-map { color:#c7ceb5; padding:20px 28px; }
.journal-map .readable-route-map { max-height:420px; width:100%; }
.journal-map .map-contour { fill:none; stroke:#9caf7324; stroke-width:1; }
.journal-map .map-player-ring { fill:#b97558; stroke:#e1c898; stroke-width:2; }
.journal-map .map-exit-label { font-size:16px; }
.route-map .map-exit-sub { fill:#b6c7ab; font-size:14px; }
.journal-map .route-map { background:radial-gradient(ellipse at 64% 35%,#6574531c,transparent 65%),#1a2b21; border:1px solid #8c9e7245; }
.journal-map .map-rumour { fill:#98a588; font-size:17px; letter-spacing:2px; }
.journal-map .map-unknown { fill:#687c4d0d; stroke:#91a17442; stroke-width:1; stroke-dasharray:4 9; }
.journal-map .map-known { fill:#c6ce9d; }
.journal-map .map-legend { color:#a6b598; font-size:13px; line-height:1.8; }
.journal-map .map-records { display:grid; grid-template-columns:1fr 1fr; gap:10px 26px; border-top:1px solid #899c6c40; padding-top:16px; }
.journal-map .map-records p { margin:0; }
@media(max-width:900px) {
    .journal-navigation { padding:0 8px; }
    .journal-navigation .inventory-action { padding:0 10px; }
    .inventory-shell.v07-inventory,.v07-inventory.has-stash,.v07-inventory.has-external { gap:10px 12px; padding:12px 16px 8px; }
    .v07-inventory>.stock-pane,.v07-inventory>[data-external] { padding-left:10px; }
    #base-panel .base-recipes { grid-template-columns:1fr; }
}
@media(max-width:650px) {
    #base-panel.game-dialog { width:calc(100vw - 16px); height:calc(100dvh - 24px); }
    .game-dialog.inventory-dialog:has(.v07-inventory):not(#base-panel) { width:calc(100vw - 16px); height:calc(100dvh - 24px); }
    .inventory-shell.v07-inventory,.v07-inventory.has-stash,.v07-inventory.has-external { grid-template-columns:1fr 1fr; grid-template-rows:minmax(0,1fr) 130px 34px; overflow-x:auto; }
    .journal-personal,.v07-inventory>[data-external],.v07-inventory>.stock-pane { min-width:254px; }
    .v07-inventory>.item-inspector { grid-template-columns:48px 1fr; }
    .v07-inventory>.item-inspector>.item-facts { grid-column:1/-1; grid-row:auto; }
    .v07-inventory>.item-inspector>.item-actions { grid-column:1/-1; grid-row:auto; }
    .game-dialog.inventory-dialog>header { padding:12px 18px; }
}

/* A life journal: numbered leaves, sparse marginalia, no changing home frame. */
.life-journal { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:38px; }
.journey-title { font-size:29px; letter-spacing:4px; margin:10px 0 14px; }
.journey-margin { border-left:1px solid #91a08640; padding-left:26px; }
.journey-margin h3 { margin:8px 0 20px; font-size:23px; }
.journey-margin h4 { font:21px 'KaiTi','SimSun',serif; margin:22px 0 4px; color:#ddd8bd; }
.journey-places-heading { margin-top:38px; }
.journey-place { display:flex; flex-direction:column; gap:6px; margin:18px 0; color:#c5cdbb; }
.journey-place small { font-size:11px; color:#94a28e; }
.journey-empty { padding:30px 0; line-height:2; color:#a3b198; max-width:480px; }
.journey-volumes { margin:28px 0 18px; }
.journey-trial { border-top:1px solid #87987a4d; }
.journey-trial:last-child { border-bottom:1px solid #87987a4d; }
.journey-trial summary { display:flex; align-items:center; gap:18px; cursor:pointer; padding:20px 0; }
.journey-trial summary:focus-visible { outline:1px solid #c5c9a7; outline-offset:4px; }
.journey-trial summary::after { content:'＋'; margin-left:auto; color:#9ea991; }
.journey-trial[open] summary::after { content:'－'; }
.trial-number { color:#c58d76; font:18px 'KaiTi','SimSun',serif; white-space:nowrap; }
.journey-trial summary b { font-weight:400; letter-spacing:2px; }
.journey-trial summary small { color:#94a38e; font-size:11px; }
.journey-events { list-style:none; border-left:1px solid #9aaa8259; margin:4px 0 22px 5px; padding:0 0 0 18px; }
.journey-events li { position:relative; display:flex; gap:18px; padding:8px 0; line-height:1.8; font-size:13px; color:#c7cfbb; }
.journey-events li::before { content:''; position:absolute; left:-22px; top:17px; width:5px; height:5px; background:#aeb493; border:1px solid #26372d; }
.journey-events time { flex:0 0 61px; font-size:11px; color:#8d9f87; padding-top:2px; }
.journey-ledger { background:#12251c30; padding:8px 14px; margin-bottom:14px; }
.journey-ledger p { display:grid; grid-template-columns:70px 1fr; gap:16px; margin:10px 0; font-size:12px; line-height:1.7; }
.journey-ledger p>span:first-child { color:#91a189; }
.person-dialogue { padding:34px 40px; max-width:760px; box-sizing:border-box; }
.person-dialogue h3 { font:30px 'KaiTi','SimSun',serif; letter-spacing:6px; color:#e1ddc5; margin:16px 0 25px; }
.person-dialogue .person-quote { border-left:2px solid #b37e655e; padding:6px 0 6px 24px; font:20px/2.1 'KaiTi','SimSun',serif; color:#d8d7bb; }
.person-dialogue .base-prose { font-size:14px; line-height:2; color:#aebbab; }
.person-dialogue .person-cost { margin:24px 0; color:#cdb39b; font-size:13px; }
.person-dialogue .inventory-action { margin:8px 12px 12px 0; }
.person-dialogue .base-small { color:#91a38c; font-size:12px; line-height:1.9; }
.home-visitor { padding:0; }
.game-dialog:has(.person-dialogue):not(#base-panel) { width:min(800px,calc(100vw - 48px)); max-height:calc(100dvh - 48px); overflow:auto; }
.route-map .map-remembered { fill:#26352b; stroke:#83937c; stroke-width:1.5; }
.route-map .map-remembered-label { fill:#8d9e87; font-size:12px; }
.map-records .map-history { color:#90a185; font-size:12px; border-left:1px solid #80916c55; padding-left:10px; }
@media(max-width:850px) { .life-journal { grid-template-columns:1fr; gap:24px; } .journey-margin { border-left:0; border-top:1px solid #91a08640; padding:24px 0 0; } .person-dialogue { padding:24px; } }

/* A quiet table for village conversations; the same frame follows the road. */
.origin-panel { max-width:920px; }
.origin-panel h3 { font:29px 'KaiTi','SimSun',serif; letter-spacing:4px; margin:18px 0 24px; }
.origin-panel .person-quote { border-left:2px solid #ac85655e; padding:6px 0 6px 24px; font:21px/2 'KaiTi','SimSun',serif; color:#dddac1; max-width:750px; }
.origin-panel>.inventory-action { margin:18px 16px 10px 0; }
.origin-identity { color:#c0b18d; letter-spacing:3px; font-size:14px; }
.origin-routes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:32px 0; }
.origin-routes article { border-top:1px solid #a4ad8757; padding:18px 0; }
.origin-routes h4 { font:24px 'KaiTi','SimSun',serif; margin:0 0 12px; }
.origin-routes .inventory-action { margin-top:18px; }
.origin-chronicle { border-bottom:1px solid #81947555; margin-bottom:30px; padding-bottom:22px; }
.origin-memory { font-size:13px; line-height:1.9; color:#aab9a4; margin:8px 0; }
body[data-place=village] .base-controls nav>button:not([data-base-action="origin:travel"]),body[data-place=sect] .base-controls nav>button:not([data-base-action="origin:travel"]) { display:none; }
body:not([data-place=home]) .base-last-run { display:none; }
@media(max-width:800px) { .origin-routes { grid-template-columns:1fr; gap:0; } }

/* UI_COPY 首轮：文案分层、状态可辨与受影响面板的基础排版。 */
.inline-help { margin:10px 0; border-top:1px solid #8b9a7b40; padding-top:8px; }
.inline-help>summary { cursor:pointer; color:#a9b79b; font-size:12px; letter-spacing:2px; }
.inline-help>summary:focus-visible { outline:2px solid #e7c888; outline-offset:3px; }
.inline-help>p { margin:8px 0 0; color:#a9b7a2; font-size:12px; line-height:1.9; }
.v07-inventory>.inventory-status-row { grid-area:status; display:flex; align-items:center; gap:14px; min-height:0; }
.v07-inventory>.inventory-status-row>.inventory-message { flex:1; min-width:0; min-height:0; margin:0; padding:0; border-top:0; font-size:12px; color:#b8c5a7; }
.v07-inventory .ops-help { flex:0 0 auto; padding:4px 12px; font-size:12px; }
.ops-help-list { margin:8px 0 14px; padding-left:18px; color:#c3ccb2; font-size:13px; line-height:2; }
.field-state { display:inline-block; flex-shrink:0; align-self:center; padding:2px 9px; border:1px solid #8fa07a55; color:#cdd6b8; font-size:12px; letter-spacing:2px; }
.field-note { display:block; margin-top:4px; color:#8fa089; font-size:11px; }
.pause-rule { margin:14px 0 0; padding-top:10px; border-top:1px solid #8b9a7b40; color:#cbb79b; font-size:13px; line-height:1.9; }
.map-key { display:flex; flex-wrap:wrap; gap:8px 22px; margin:4px 0 10px; color:#a6b598; font-size:13px; }
.map-key-item { display:inline-flex; align-items:center; gap:7px; }
.map-key-dot { width:10px; height:10px; border-radius:50%; }
.map-key-current { background:#b97558; border:2px solid #e1c898; }
.map-key-seen { background:#c6ce9d; }
.map-key-rumour { background:transparent; border:1px dashed #98a588; }
.map-key-old { background:#26352b; border:1.5px solid #83937c; }
.review-partial { display:inline-block; margin-left:8px; padding:1px 6px; border:1px solid #b8886145; color:#d3a483; font-size:11px; }
.facility-state { color:#c9d3b6; font-size:13px; letter-spacing:1px; }
.trade-scope { color:#c0b18d; font-size:13px; letter-spacing:1px; }
.grove-condition { color:#d3c08e; font-size:14px; letter-spacing:1px; }
.material-needs caption { caption-side:top; text-align:left; color:#9fae94; font-size:12px; letter-spacing:2px; padding-bottom:4px; }
