:root{--bg:#050708;--panel:#101619;--line:#293338;--gold:#c4a76e;--muted:#98a2a6;--red:#c65d5d;--blue:#6d9bc4;--text:#e4e7e8}*{box-sizing:border-box}body{margin:0;background:#000;color:var(--text);font-family:Georgia,'Yu Mincho','Hiragino Mincho ProN',serif}.app-shell{min-height:100vh;display:flex;justify-content:center}.phone{width:min(100%,470px);background:#090c0e;border-left:1px solid var(--line);border-right:1px solid var(--line);min-height:100vh}.topbar,.subbar{background:#0a0e10;border-bottom:1px solid var(--line)}.topbar{padding:10px 12px;display:flex;justify-content:space-between;font-size:12px}.top-left{display:flex;gap:12px}.subbar{padding:12px;font-size:13px;display:flex;gap:10px;align-items:center}.page{display:none;min-height:calc(100vh - 106px);background:linear-gradient(rgba(8,11,13,.86),rgba(8,11,13,.9)),radial-gradient(circle at 50% 25%,#283238,#13191c 55%,#090c0e 100%)}.page.active{display:block}.nav{position:sticky;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);background:#090c0e;border-top:1px solid var(--line);z-index:10}.nav button{min-height:54px;background:none;color:#ddd;border:0;border-right:1px solid #1e2529;font-family:inherit}.nav button[aria-selected=true]{color:var(--gold);border-top:2px solid var(--gold)}button{font-family:inherit}.btn{min-height:44px;border:1px solid #354045;background:#111719;color:#ddd;padding:10px 12px}.btn:hover{background:#182024}.btn:disabled{opacity:.35}.goldbtn{background:#9a835f;color:#101315;border-color:#b39a6f;font-weight:700}.card{background:rgba(16,22,25,.94);border:1px solid var(--line);padding:14px}.menurow{width:100%;text-align:left;background:rgba(15,21,24,.96);border:1px solid var(--line);color:#ddd;padding:16px;min-height:72px;display:block}.menurow b{display:block;font-size:15px}.menurow span{display:block;color:var(--muted);font-size:12px;margin-top:6px}.danger{border-color:#703535}.filelabel input{display:none}.portrait{width:64px;height:64px;border:1px solid #465158;background:radial-gradient(circle at 40% 30%,#65506f,#23202a 52%,#0b0e10);display:flex;align-items:center;justify-content:center;font-size:10px;position:relative;overflow:visible;isolation:isolate}.portrait-btn{padding:0;border:0;background:none}.profile-summary{display:flex;gap:12px}.grow{flex:1}.name-line{font-weight:700}.meter{height:5px;background:#1b2327;overflow:hidden}.meter span{display:block;height:100%;background:#9b845f}.utility-row{display:grid;grid-template-columns:1.7fr repeat(4,1fr);gap:8px;margin-top:8px}.utility-row .btn,.triple .btn{font-size:12px}.triple{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.double{display:grid;grid-template-columns:1fr 1fr;gap:8px}.split{display:flex;justify-content:space-between;gap:12px}.rank-list>div{display:flex;justify-content:space-between;border-bottom:1px solid #20282b;padding:8px 0}.areaRow{padding:16px 14px;border-bottom:1px solid var(--line);background:rgba(15,21,24,.78)}.areaRow button{width:100%;text-align:left;background:none;color:#ddd;border:0}.battle-bg{min-height:555px;position:relative;background:linear-gradient(rgba(10,12,14,.22),rgba(10,12,14,.85)),radial-gradient(circle at 50% 32%,#31373a,#1a2023 38%,#0c0f11 80%)}.flavor{text-align:center;color:var(--muted);font-size:14px;padding-top:250px}.battle-layer{padding-top:18px}.versus-row{display:flex;justify-content:center;align-items:center;gap:22px}.fighter{text-align:center}.charbox{width:66px;height:66px;border:1px solid #414d52;background:radial-gradient(circle at 40% 30%,#72566d,#28222d 52%,#111);display:flex;align-items:center;justify-content:center;font-size:10px}.enemybox{background:radial-gradient(circle at 40% 30%,#566844,#25301f 50%,#111)}.battle-log{font-size:12px;line-height:1.8;margin-top:18px}.action-footer{padding:12px;background:#0a0e10;border-top:1px solid var(--line)}.explore-head{justify-content:space-between;font-size:11px}.scroll{max-height:calc(100vh - 160px);overflow-y:auto}.statgrid{display:grid;grid-template-columns:1fr auto;gap:8px 16px;font-size:14px}.pad{padding:12px}.stack8>*+*{margin-top:8px}.stack12>*+*{margin-top:12px}.wfull{width:100%}.big{font-size:18px}.small{font-size:13px}.tiny{font-size:11px}.muted{color:var(--muted)}.gold{color:var(--gold)}.red{color:var(--red)}.blue{color:var(--blue)}.mt4{margin-top:4px}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.hidden{display:none!important}.back{background:none;border:0;color:#ddd;font-size:20px;line-height:1;padding:0 6px 0 0}@media(max-width:420px){.utility-row{grid-template-columns:1fr 1fr 1fr}.utility-main{grid-column:1/-1}.explore-head{font-size:10px}.top-left{gap:7px}.topbar{font-size:10px}}

/* offline chat / resource HUD */
.top-left .chat-tab{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;padding:0;cursor:pointer}.top-left .chat-tab:hover{color:var(--gold)}
.energy-meter span{background:#718c68}.chat-head .grow{margin-left:auto;text-align:right}.chat-channel-tabs{display:grid;grid-template-columns:repeat(4,1fr);background:#0b0f11;border-bottom:1px solid var(--line)}.chat-channel-tabs button{min-height:42px;background:none;color:#aaa;border:0;border-right:1px solid #1f272b;font-family:inherit}.chat-channel-tabs button[aria-selected=true]{color:var(--gold);background:#12191c}.chat-note{padding:9px 12px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);background:#0d1214}.chat-messages{height:calc(100vh - 255px);min-height:420px;overflow-y:auto;padding:8px 12px;background:linear-gradient(rgba(10,13,15,.68),rgba(10,13,15,.82)),radial-gradient(circle at 50% 15%,#253036,#0b0f11 70%)}.chat-entry{padding:9px 0;border-bottom:1px solid rgba(70,82,88,.35);font-size:12px;line-height:1.55}.chat-entry .chat-meta{display:flex;gap:8px;align-items:baseline;margin-bottom:3px}.chat-entry .chat-name{font-weight:700;color:#d2d6d7}.chat-entry .chat-time{margin-left:auto;color:#79858a;font-size:10px}.chat-entry.system{color:#bba36c}.chat-entry.self .chat-name{color:#77a7cd}.chat-entry.guild .chat-name{color:#7799c5}.chat-entry.prison .chat-name{color:#c06d6d}.chat-compose{display:grid;grid-template-columns:1fr 72px;gap:8px;padding:10px 12px;background:#0a0e10;border-top:1px solid var(--line)}.chat-compose textarea{resize:none;background:#050708;color:#ddd;border:1px solid #2b363b;padding:10px;font:inherit;font-size:13px;min-width:0}.chat-compose textarea:disabled{opacity:.45}.chat-compose .btn{min-height:58px}

/* equipment expansion */
.equip-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.equip-tools{display:flex;gap:6px}.btn.compact{min-height:32px;padding:5px 9px;font-size:12px}.equip-item{display:block;width:100%;text-align:left;background:rgba(15,21,24,.94);border:1px solid #283238;padding:10px 12px}.equip-item .line2{font-size:12px;color:#b9c0c4;margin-top:4px}.equip-item .line3{font-size:11px;color:#7f8b91;margin-top:3px}.rarity-1{color:#c7c7c7}.rarity-2{color:#69a96e}.rarity-3{color:#55a7d4}.rarity-4{color:#d1b56d}.rarity-5{color:#d58a35}.rarity-6{color:#d55454}.rarity-7{color:#9d6bd3}.rarity-8{color:#559bd8}.equip-toggle-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;border-bottom:1px solid #273136;padding:12px}.toggle{width:48px;height:26px;border-radius:18px;background:#384248;border:1px solid #505b60;position:relative}.toggle:after{content:'';position:absolute;top:3px;left:4px;width:18px;height:18px;border-radius:50%;background:#d6d6d0;transition:.15s}.toggle.on{background:#947b51}.toggle.on:after{left:25px}.inherit-slot{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;background:#111719;border:1px solid #2c373c;padding:10px;margin-bottom:7px}.inherit-slot.selected{border-color:#9a8458}.inherit-candidates{margin-top:8px}.combine-card{background:#111719;border:1px solid #2c373c;padding:12px}.combine-actions{display:flex;gap:8px;margin-top:10px}.combine-actions button{flex:1}.success{color:#62a96b}.great{color:#b7a25a}.fail{color:#cf6262}

/* v0.6.1 currency display */
.currency-stack{display:flex;align-items:flex-end;gap:10px;white-space:nowrap;font-size:11px}
.currency-stack>span:first-child{color:#c7c9c7}
.equip-filter{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:9px;background:#101619;border:1px solid #2b363b}.equip-filter input,.equip-filter select,.inheritSelect{background:#0c1113;color:#d1d4d5;border:1px solid #344046;min-height:34px;padding:5px 7px}.equip-filter input{grid-column:1/-1}.equip-filter .btn{grid-column:1/-1}.equip-owned-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}.equip-owned-row .equipPick{min-width:0}.equip-side-actions{display:flex;flex-direction:column;gap:5px}.lock-btn{min-width:46px;padding:5px 7px;border:1px solid #4a4f4f;background:#111719;color:#aaa}.lock-btn.locked{border-color:#9a8458;color:#d4b774;background:#1a1812}.equip-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.equip-badge{font-size:10px;padding:2px 5px;border:1px solid #3a454a;color:#9ba5a9}.equip-badge.inherit{color:#55a7d4}.equip-badge.locked{color:#d1b56d}.equip-badge.equipped{color:#b99d63}.combine-select{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start}.combine-check{width:18px;height:18px;margin-top:2px}.combine-scroll{padding-bottom:82px}.inherit-summary{padding:10px;border:1px solid #39454a;background:#101619;margin-top:8px}.inherit-summary .pct{color:#6eb27a}.hidden{display:none!important}

.skillSelect{background:#0c1113;color:#d1d4d5;border:1px solid #344046;min-height:38px;padding:6px 8px}.lifePick.selected{border-color:#a88d58;background:#171a18}.lifePick:disabled{opacity:.45}.life-counts>div{padding:4px 0;border-bottom:1px solid rgba(70,82,88,.25)}

/* v0.7.1 skill picker */
.skill-page{max-height:calc(100vh - 160px)}
.skill-slot{width:100%;min-height:46px;display:grid;grid-template-columns:28px 1fr auto 22px;gap:8px;align-items:center;text-align:left;background:#111719;border:1px solid #293338;color:#ddd;padding:9px 12px}
.skill-slot:hover,.skill-slot.selected{background:#182023;border-color:#a88d58}
.skill-slot-no{color:#b8bfc2;font-size:12px}.skill-slot-name{color:#d85b58;font-size:13px}.skill-slot-type{font-size:11px;color:#b7b7a8}.skill-star{color:#b49b61;text-align:center}.skill-picker-title{margin:18px 0 10px;color:#c3c5c4;font-size:12px}
.skill-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.skill-tabs button{background:#101619;border:1px solid #3a454a;color:#9da5a8;min-height:30px;padding:4px 9px;font-family:inherit;font-size:11px}.skill-tabs button[aria-selected=true]{border-color:#a88d58;color:#d2b77b;background:#171814}
.skill-clear{width:100%;border:0;border-top:1px solid #2a3337;border-bottom:1px solid #2a3337;background:transparent;color:#ca5d5a;text-align:left;padding:12px 4px;font-family:inherit;font-size:12px;margin-bottom:2px}
.skill-clear:hover{background:#171d20}
.skill-master-list{margin-bottom:20px}.master-skill-row{width:100%;text-align:left;border:0;border-bottom:1px solid #263035;background:rgba(15,21,24,.82);color:#ddd;padding:11px 4px 12px}.master-skill-row:hover{background:rgba(28,35,38,.96)}.master-skill-row.set{background:rgba(21,29,31,.96)}
.skill-row-head{display:grid;grid-template-columns:auto auto 1fr auto auto;gap:7px;align-items:center}.skill-row-head b{color:#d85b58;font-size:13px;font-weight:400}.skill-row-head>span:nth-of-type(2){color:#aaa994;font-size:11px}.skill-row-head em{font-style:normal;color:#a88d58;font-size:10px}.skill-rarity{color:#d85b58;font-size:12px}.skill-row-desc{color:#b7bfc2;font-size:11px;line-height:1.6;margin-top:5px;padding-right:10px}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:100}.modal-card{width:min(100%,440px);background:#202223;border:1px solid #394247;box-shadow:0 16px 50px rgba(0,0,0,.55);padding:20px}.skill-detail-card{color:#ddd}.skill-detail-desc{line-height:1.8;color:#c9cccd}.skill-detail-grid{display:grid;grid-template-columns:70px 1fr;gap:11px 16px;border-top:1px solid #31393d;border-bottom:1px solid #31393d;padding:14px 0}.skill-detail-grid span{color:#a9adae}.skill-detail-grid b{font-weight:400;text-align:right;color:#e0e2e2}
@media(max-width:420px){.skill-row-head{grid-template-columns:auto auto 1fr auto}.skill-row-head em{grid-column:3/5}.skill-slot{grid-template-columns:24px 1fr auto}.skill-slot .skill-star{display:none}}

/* v0.7.2 skill rarity colors: same palette as equipment */
.skill-slot-name.rarity-1,.skill-row-head .rarity-1{color:#c7c7c7}
.skill-slot-name.rarity-2,.skill-row-head .rarity-2{color:#69a96e}
.skill-slot-name.rarity-3,.skill-row-head .rarity-3{color:#55a7d4}
.skill-slot-name.rarity-4,.skill-row-head .rarity-4{color:#d1b56d}
.skill-slot-name.rarity-5,.skill-row-head .rarity-5{color:#d58a35}
.skill-slot-name.rarity-6,.skill-row-head .rarity-6{color:#d55454}
.skill-slot-name.rarity-7,.skill-row-head .rarity-7{color:#9d6bd3}
.skill-slot-name.rarity-8,.skill-row-head .rarity-8{color:#559bd8}


/* v0.7.7 blood gate / blood crystals */
.blood-gate-bg{min-height:calc(100vh - 145px);background:linear-gradient(rgba(28,8,8,.50),rgba(12,8,9,.82)),radial-gradient(circle at 50% 8%,#5b2020,#271313 38%,#0d0e0f 75%)}
.blood-gate-row{width:100%;min-height:58px;background:#111719;border:1px solid #30383c;color:#ddd;padding:11px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:left;font-family:inherit}.blood-gate-row:hover{background:#182023;border-color:#80574f}.blood-gate-row span{font-size:11px;text-align:right}
.blood-slot{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;background:#111719;border:1px solid #30383c;padding:11px 12px}.blood-rarity-head{margin:18px 0 7px;color:#a99566;border-bottom:1px solid #30383c;padding-bottom:5px}
.blood-crystal-row{display:block;width:100%;text-align:left;background:#111719;border:1px solid #293338;color:#ddd;padding:10px 12px;font-family:inherit}.blood-crystal-row+ .blood-crystal-row{margin-top:7px}.blood-crystal-row:hover:not(:disabled),.blood-crystal-row.equipped{background:#182023;border-color:#9a8458}.blood-crystal-row:disabled{opacity:.42}.blood-crystal-row em{font-style:normal;color:#ad9462;font-size:10px;float:right}.crystal-meter{height:4px;background:#050708;margin-top:7px}.crystal-meter span{display:block;height:100%;background:#b8b8ad}

/* v0.7.8 blood crystal slot picker / madness flow */
.blood-slot{cursor:pointer;font-family:inherit;color:#ddd;width:100%;text-align:left}.blood-slot:hover{background:#171e20}.blood-slot.selected{border-color:#b99a58;box-shadow:inset 0 0 0 1px #b99a58;background:#181b18}.blood-picker-title{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.blood-picker-list{display:grid;gap:7px}.blood-picker-row{width:100%;text-align:left;background:#101617;border:1px solid #2c3437;color:#ddd;padding:9px 10px;font-family:inherit}.blood-picker-row:hover:not(:disabled){background:#181f20;border-color:#9c8554}.blood-picker-row:disabled{opacity:.4}.blood-picker-row.current{border-color:#b99a58}.blood-picker-remove{margin-top:8px;color:#d45c5c}.blood-madness-row{display:block;width:100%;text-align:left;background:#111719;border:1px solid #2e383b;color:#ddd;padding:12px;font-family:inherit}.blood-madness-row:hover{background:#1a2021;border-color:#b35353}.blood-madness-row .right{float:right}.blood-madness-compare{display:grid;grid-template-columns:1fr 32px 1fr;gap:10px;align-items:center;text-align:center}.blood-madness-compare .pane{background:#111719;border:1px solid #30383c;padding:12px}.blood-madness-compare .arrow{font-size:22px;color:#a99566}.blood-crystal-row:hover:not(:disabled){box-shadow:inset 3px 0 0 #30383c}#bloodCrystalMadness:hover{background:#512525;border-color:#d45c5c}

/* v0.8.0 corridor */
.corridor-bg,.corridor-result-bg{height:calc(100vh - 186px);min-height:520px;max-height:none;overflow-y:auto;background:linear-gradient(rgba(8,11,13,.64),rgba(8,11,13,.86)),radial-gradient(ellipse at 50% 10%,#353530,#141b1c 65%,#080a0c)}
.corridor-summit{min-height:260px;text-align:center;padding:70px 14px 30px;background:radial-gradient(ellipse at 50% 30%,rgba(74,65,49,.21),transparent 75%)}
.corridor-summit>div:first-child{font-size:19px;letter-spacing:.12em}
.corridor-history-item{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #30383a;padding:8px 0;font-size:12px}
.corridor-wave{background:rgba(15,21,24,.92);border:1px solid #30383b;padding:12px;margin:12px 0}
.corridor-lines{max-height:none;overflow:visible;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}
.corridor-lines>div{border-bottom:1px solid rgba(60,70,74,.24);padding:2px 0}

/* 贖罪の檻（既存の回廊と他画面に影響しない独立スタイル） */
.atonement-bg{height:calc(100vh - 186px);min-height:520px;max-height:none;overflow-y:auto;background:linear-gradient(rgba(7,10,12,.72),rgba(8,10,12,.9)),radial-gradient(ellipse at 50% 20%,#303036,#101418 70%,#090a0c)}
.atonement-card{width:100%;display:flex;justify-content:space-between;text-align:left;gap:10px;min-height:92px;padding:14px;background:#141c1e;border:1px solid #374044;color:#ddd;cursor:pointer;font-family:inherit}
.atonement-card:hover:not(:disabled){border-color:#bca171;background:#1b2424}
.atonement-card:disabled{cursor:default;opacity:.75}
.atonement-card b,.atonement-card small{display:block}.atonement-card b{font-size:14px}.atonement-card small{font-size:11px;color:#abb2b4;margin-top:9px}
.atonement-side{min-width:98px;color:var(--gold);font-size:12px;text-align:right}.atonement-side.cleared{color:#6fb18c}
.atonement-logs{background:rgba(10,14,15,.6);padding:14px;line-height:1.85;min-height:250px;max-height:60vh;overflow:auto}
.atonement-logs>div{padding:2px 0;border-bottom:1px solid rgba(255,255,255,.035)}

/* v0.8.2 familiar / grimoire */
.familiar-input{box-sizing:border-box;width:100%;padding:12px;margin-top:14px;color:var(--text,#eee);background:#141d1b;border:1px solid #6b614d;border-radius:2px;font:inherit}
#familiarTabs{display:flex;gap:4px;flex-wrap:wrap}#familiarTabs button{font-size:11px;padding:6px 9px;color:#aaa;background:#17201e;border:1px solid #34403c}#familiarTabs button[aria-selected="true"]{color:#cbb58e;border-color:#a28a63}
#familiarSkillList .master-skill-row{width:100%}#familiarBooksList{display:flex;flex-direction:column;gap:8px}.familiar-book-row{width:100%;cursor:pointer}#page-market-grimoire .scroll,#page-familiar-books .scroll,#page-familiar .scroll{min-height:0}#grimoireResult{max-height:230px;overflow:auto}

.familiar-book-choice{display:flex;align-items:stretch;gap:6px}.familiar-book-choice .menurow{flex:1;min-width:0}.familiar-book-check{display:flex;align-items:center;justify-content:center;min-width:42px;border:1px solid #4d554f;background:#18201e}.familiar-book-check input{width:18px;height:18px;accent-color:#bda27c}

/* v0.8.3 preset / workshop */
.preset-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch;background:#111719;border:1px solid #293338;padding:9px}.preset-name{border:0;text-align:left;background:none;color:#ddd;min-width:0;padding:8px 3px}.preset-name b{display:block;font-weight:400;overflow-wrap:anywhere}.preset-name span{display:block;margin-top:7px;color:#99a3a7;font-size:11px}.preset-name:hover{background:#1a2223}.preset-load{min-height:38px;align-self:center;font-size:12px;padding:8px 10px}.preset-modal-card{max-height:90vh;display:flex;flex-direction:column}.preset-modal-card .familiar-input{margin:0}.preset-compare{min-height:0;overflow:auto;border-block:1px solid #344044;font-size:11px}.preset-compare-heading{display:grid;grid-template-columns:1fr 1fr;text-align:center;color:#bba174;padding:9px 0;border-bottom:1px solid #344044}.preset-compare-line{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;padding:7px 3px;border-bottom:1px solid #2d3637}.preset-compare-line .gold{grid-column:1/-1}.preset-compare-line>div:not(:first-child){overflow-wrap:anywhere}.preset-diff{color:#d0a76e}.preset-missing{color:#d36b67}

/* 称号 — 本家同様に小さな装飾。スロット1のみチャット上に表示。 */
.title-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.title-slot{min-height:59px;padding:7px 4px;border:1px solid #293538;background:#182022;color:#d0c6b5;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:6px;align-items:center;justify-content:center}
.title-slot b{font-size:11px;line-height:1.45;overflow-wrap:anywhere}
.title-slot.selected,.title-entry.selected{border-color:#b49b69;background:#282720}
.title-entry{width:100%;border:1px solid #303b3d;background:#1b2223;color:#e4ddd0;text-align:left;padding:12px;display:flex;flex-direction:column;gap:9px;font:inherit;cursor:pointer}
.title-entry:not(:disabled):hover{background:#293034;border-color:#b49b69}
.title-entry.unobtained{opacity:.45;cursor:default}
.title-custom{color:#d4a0da}
.title-profile{display:flex;flex-wrap:wrap;gap:6px;font-size:11px}
.title-profile span{padding:6px 8px;border:1px solid #3d4140;background:#192022}
.chat-title{color:#bba578;font-size:11px;letter-spacing:.07em;margin-bottom:5px}
.title-toast{display:none;position:fixed;z-index:60;top:85px;left:50%;transform:translateX(-50%);padding:10px 18px;background:#25241e;border:1px solid #b49b69;color:#e7cf97;text-align:center;white-space:nowrap;max-width:95vw}
.title-toast.visible{display:block}

/* RE:VEIL v0.9.2 — illustrated title overlay, separate from existing game navigation */
.reveil-title{position:fixed;inset:0 auto 0 50%;transform:translateX(-50%);width:min(100%,470px);height:100vh;height:100dvh;z-index:220;overflow:hidden;background:#070b10;isolation:isolate}
.reveil-title.hidden{display:none!important}
.reveil-title-art{position:absolute;inset:0;background:#101722 url("assets/reveil_title_bg.png") center center / cover no-repeat;animation:reveil-arrive 1.2s ease-out both}
.reveil-title-vignette{display:none}
.reveil-version{position:absolute;top:max(23px,env(safe-area-inset-top));left:24px;font:12px Georgia,serif;color:#d0cad0;text-shadow:0 2px 8px #000;letter-spacing:.075em}
.reveil-title-start{position:absolute;inset:0;border:0;background:none;color:#f4f0e8;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;cursor:pointer;text-shadow:0 2px 22px #020508,0 0 2px #05060a;padding:0}
.reveil-wordmark{margin-top:34%;font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.045em;font-size:clamp(57px,13.2vw,87px);line-height:1;white-space:nowrap;color:#efeeeb;filter:drop-shadow(0 3px 14px rgba(0,0,0,.6))}
.reveil-wordmark i{font-style:normal;color:#b9545e;padding:0 .02em}
.reveil-title-rule{margin-top:23px;width:145px;height:1px;background:linear-gradient(90deg,transparent,#9c6667,transparent);opacity:.82}
.reveil-tap{position:absolute;top:76%;font:15px Georgia,serif;letter-spacing:.12em;color:#f0e9e1;animation:reveil-pulse 2.5s ease-in-out infinite}
.reveil-footnote{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font:10px Georgia,serif;letter-spacing:.21em;color:#b2a5a0;pointer-events:none}
.reveil-naming{position:absolute;inset:0;z-index:2;background:rgba(3,5,8,.58);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:18px}
.reveil-naming-panel{background:#171c20;border:1px solid #73615b;box-shadow:0 14px 50px rgba(0,0,0,.7);padding:22px 19px 18px;width:100%;color:#e5dedd}
.reveil-naming-heading{border-bottom:1px solid #393e3f;color:#ceb090;letter-spacing:.21em;padding-bottom:14px;font-size:17px}
.reveil-naming-panel p{font-size:13px;line-height:1.8;color:#d4ceca;margin:18px 0 22px}
.reveil-naming-panel label{display:flex;justify-content:space-between;color:#cbb89e;font-size:12px;gap:10px;margin-bottom:8px}
.reveil-naming-panel label small{color:#a7a3a0;font-size:11px}
.reveil-naming-panel input{width:100%;background:#0b1014;color:#f7f4ee;border:1px solid #5a5550;border-radius:0;padding:12px;font:16px 'Yu Mincho',serif;outline:none;min-height:48px}
.reveil-naming-panel input:focus{border-color:#d4b18b;box-shadow:0 0 0 1px #d4b18b}
.reveil-name-bottom{display:flex;justify-content:space-between;min-height:28px;gap:8px;padding-top:7px;color:#aaa1a0}.reveil-name-bottom #reveilNameError{color:#ed8484;text-align:right}
.reveil-name-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.reveil-name-actions button{min-height:46px;background:#131a1e;color:#ddd;border:1px solid #424c4d;cursor:pointer}.reveil-name-actions button[type=submit]{border-color:#ab9271;background:#aa9271;color:#141719}
@keyframes reveil-pulse{0%,100%{opacity:.45}50%{opacity:1}}@keyframes reveil-arrive{from{opacity:.45;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}
@media(max-width:420px){.reveil-wordmark{font-size:clamp(51px,13.5vw,69px)}.reveil-tap{top:78%}}
@media(prefers-reduced-motion:reduce){.reveil-tap,.reveil-title-art{animation:none}}

.reveil-start-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* v0.9.3: asynchronous rankings; only existing guild NPCs are simulated */
.rank-head{display:flex;align-items:center;gap:7px;min-width:0;font-size:13px}
.rank-head>.gold{white-space:nowrap}
.rank-select{min-width:0;flex:1;background:#0d1214;border:1px solid #344047;color:#dfd1ac;font-family:inherit;padding:7px 4px;font-size:12px}
.rank-count,.rank-refresh{background:rgba(13,19,22,.9);border:1px solid #344047;color:#c4a76e;white-space:nowrap;padding:7px 8px;font-size:11px;min-height:31px}
.rank-count{color:#b2bdc1}
.rank-preview{max-height:min(38vh,350px);overflow-y:auto}
.rank-entry{display:grid!important;grid-template-columns:21px 32px minmax(0,1fr) auto;align-items:center;gap:6px;padding:9px 3px!important;min-height:53px}
.rank-entry.is-self{border:1px solid #9b845f!important;background:rgba(156,131,81,.12);padding:9px 6px!important}
.rank-position{color:var(--gold);font-size:12px;text-align:center}
.rank-avatar{height:29px;width:29px;display:flex;align-items:center;justify-content:center;border:1px solid #4c5660;background:linear-gradient(130deg,#39414a,#251e30);font-size:11px;color:#ebdfc4;position:relative;overflow:visible;isolation:isolate}
.rank-avatar.rank-npc{background:linear-gradient(130deg,#293940,#211d30)}
.rank-info{min-width:0;font-size:12px;line-height:1.55}
.rank-info .rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#dfdfdf}
.rank-info .rank-detail{color:#9ca8ad;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rank-score{font-size:12px;color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.rank-self{margin-top:9px}.rank-self .rank-entry{border:1px solid #9b845f!important;background:rgba(156,131,81,.12);padding:9px 6px!important}
.rank-self-label{color:#bca574;font-size:11px;margin:8px 0 4px}
.rank-full-list{min-height:90px}
.rank-full-list .rank-entry{border-bottom:1px solid #283036!important}
.rank-guild-tabs{display:flex;gap:5px;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}
.rank-guild-tabs button{white-space:nowrap;background:#12191c;color:#aeb6b8;border:1px solid #303c42;padding:8px 10px;font:12px Georgia,'Yu Mincho',serif}
.rank-guild-tabs button[aria-selected="true"]{border-color:#a18a62;color:#dcc89a}
.rank-pager{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;text-align:center}
.rank-pager .btn{min-height:38px;font-size:12px}
@media(max-width:390px){.rank-entry{grid-template-columns:19px 28px minmax(0,1fr) auto;gap:4px}.rank-avatar{width:26px;height:26px}.rank-score{font-size:11px}.rank-select{font-size:11px}.rank-head{gap:4px}.rank-count,.rank-refresh{padding:6px 5px}}

/* v0.9.5 weekly guild standings and historical record */
.war-history-card{background:rgba(16,22,25,.96)}.war-help{line-height:1.65}.war-debuff{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;color:#b3b8b9}.war-guild-name{font-weight:500}

/* v0.9.6 月の宴・チャットランキング */
.moon-dice-panel{background:rgba(20,27,29,.96);border-bottom:1px solid #6d5d45;padding:11px 14px;font-size:12px;line-height:1.6}.moon-dice-top{display:grid;gap:3px}.moon-dice-top .split{border-bottom:1px solid #283034;padding:2px 0}.moon-dice-panel:not(.hidden)+.chat-messages{height:calc(100vh - 410px);min-height:290px}

/* v0.9.8: 塔と模擬戦 */
.tower-entry{border-color:#72535b;background:linear-gradient(115deg,#20151c,#11191d);color:#dfb5b8}
.tower-entry span{display:block;margin-top:3px}
#openSpar span{display:block;margin-top:3px}
.tower-scene{background:linear-gradient(180deg,rgba(11,10,19,.72),rgba(7,9,12,.94)),radial-gradient(circle at 50% 2%,#51283b,#101017 64%)}
.tower-hero{text-align:center;padding:28px 6px 19px;background:radial-gradient(ellipse at center,#4b2837,transparent 72%)}
.tower-title{font-size:27px;letter-spacing:.16em;color:#e1bac2;margin-bottom:7px}
.tower-floor-list{max-height:55vh;overflow-y:auto;scrollbar-width:thin}
.tower-floor{width:100%;text-align:left;border:1px solid #303239;background:#101419;color:#ddd;padding:13px 11px;margin-bottom:6px;display:block}
.tower-floor:disabled{opacity:.47}
.tower-floor.accessible{border-color:#8c7660;background:linear-gradient(100deg,#211b1b,#15171b)}
.tower-floor.player-held{border-color:#c9ab6d;background:linear-gradient(100deg,#28241a,#15171b)}
.tower-floor:hover:not(:disabled),.spar-opponent:hover{background:#25252e}
.tower-floor .meter{height:6px}
.tower-floor .meter span{background:#a65f6d}
.tower-events{font-size:12px;line-height:1.7;max-height:210px;overflow-y:auto}
.tower-events>div{border-bottom:1px solid #26272e;padding:5px 0}
.spar-opponent{width:100%;border:1px solid #30383d;background:#10171a;color:#dedede;text-align:left;padding:12px}
.spar-opponent .split{align-items:center}
.spar-opponent .tiny{line-height:1.6}
#sparSort,#sparGuild{min-width:0;width:100%;padding:8px 4px;background:#12191c;color:#ddd;border:1px solid #3d4449;font-size:11px}
#towerResultLog,#sparResultLog{line-height:1.8;white-space:normal;font-size:12px}

/* v0.9.10 拠点：本家にならったフラットな四色。発光・グラデーション・ホバーによる色変化なし。 */
.home-specials{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.home-specials .home-special{min-width:0;min-height:43px;padding:9px 2px;font-size:11px;line-height:1.4;font-weight:400;white-space:nowrap;letter-spacing:-.035em}
.home-specials .corridor-entry{background:#121c16;border-color:#344738;color:#90b59a}
.home-specials .atonement-entry{background:#151d2a;border-color:#354359;color:#a1b3d1}
.home-specials .blood-gate-entry{background:#2a191a;border-color:#674043;color:#d79394}
.home-specials .tower-entry{background:#241a2c;border-color:#4c3b62;color:#c1a6d4}
.home-specials .home-special:hover,.home-specials .home-special:active{background:inherit}
.home-specials .corridor-entry:hover,.home-specials .corridor-entry:active{background:#121c16}
.home-specials .atonement-entry:hover,.home-specials .atonement-entry:active{background:#151d2a}
.home-specials .blood-gate-entry:hover,.home-specials .blood-gate-entry:active{background:#2a191a}
.home-specials .tower-entry:hover,.home-specials .tower-entry:active{background:#241a2c}
.home-specials .tower-entry span{display:none}
@media(max-width:370px){.home-specials{gap:4px}.home-specials .home-special{font-size:10px;letter-spacing:-.06em}}

/* v0.9.11 inventory / avatar */
.portrait.has-avatar,.rank-avatar.has-avatar,.avatar-preview.has-avatar,.familiar-avatar.has-avatar{background-size:cover;background-position:center;background-repeat:no-repeat;color:transparent;text-shadow:none}
.familiar-summary-row{display:flex;align-items:center;gap:12px}
.avatar-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:center;align-items:start}.avatar-compare>div{display:flex;flex-direction:column;align-items:center;gap:8px}.avatar-preview{width:96px;height:96px;font-size:11px;background-color:#101619}.consumable-row+.consumable-row{margin-top:8px}
#page-market-changeling .menurow:disabled{opacity:.38}

.skill-effect-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:5px 0 12px;font-size:12px;color:#c8b58b}.skill-effect-row select{max-width:67%;background:#11191a;border:1px solid #62563e;color:#d7cfbc;min-height:34px;padding:5px 8px;font-family:inherit;font-size:12px}

/* v0.9.13 戦闘演出：上部のHP、中央ログ、下部操作を独立させる */
#page-explore.active,#page-guild-raid.active,#page-tower-result.active,#page-spar-result.active,#page-atonement-result.active,#page-corridor-result.active{display:flex;flex-direction:column;height:calc(100dvh - 95px);min-height:350px;overflow:hidden}
#page-explore>.subbar,#page-guild-raid>.subbar,#page-tower-result>.subbar,#page-spar-result>.subbar,#page-atonement-result>.subbar,#page-corridor-result>.subbar{flex:none}
#page-explore>.battle-bg,#page-guild-raid>.battle-bg{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}
#page-explore .battle-layer,#page-guild-raid .battle-layer{display:flex;flex-direction:column;flex:1;min-height:0;padding-top:8px}
#page-explore .versus-row,#page-guild-raid .versus-row{flex:none;gap:16px;justify-content:space-around;align-items:start}
#page-explore .fighter,#page-guild-raid .fighter{width:39%;min-width:0;overflow-wrap:anywhere}
#page-explore .charbox,#page-guild-raid .charbox{margin:auto}
#page-explore .battle-log,#page-guild-raid .battle-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#666 #141719;margin-top:0;padding:8px 3px 20px;overflow-wrap:anywhere}
#page-explore>.action-footer,#page-guild-raid>.action-footer,#page-tower-result>.action-footer,#page-spar-result>.action-footer,#page-atonement-result>.action-footer,#page-corridor-result>.action-footer{flex:none;z-index:2}
#page-tower-result>.scroll,#page-spar-result>.scroll,#page-atonement-result>.scroll,#page-corridor-result>.scroll{flex:1;min-height:0;max-height:none;overflow-y:auto}
#page-explore .flavor,#page-guild-raid .flavor{padding-top:min(28vh,190px)}
.combat-hp-track{width:100%;height:5px;background:#0a1012;margin-top:4px;overflow:hidden}
.combat-hp-fill{height:100%;display:block;transition:width .15s linear}
.combat-hp-fill.enemy{background:#ca666b}.combat-hp-fill.ally{background:#78a57b}
.combat-summary{display:flex;flex-wrap:wrap;gap:3px 12px;border-top:1px solid #283235;border-bottom:1px solid #283235;padding:6px 2px;margin-top:10px;font-size:11px;line-height:1.5;flex:none}
.combat-victory{color:#85b78b}.combat-defeat{color:#d06c6e}
.combat-line{padding:3px 1px;border-bottom:1px solid rgba(75,80,84,.18);line-height:1.75}
.combat-turn{color:#c8ac79;border-bottom:1px solid #3e4547;padding-top:8px}
.combat-turn:first-child{padding-top:0}
.combat-damage{color:#e08483}.combat-damage .combat-figure{color:#e27a75}
.combat-heal{color:#82bba0}.combat-heal .combat-figure{color:#85cda3}
.combat-status{color:#c39bd5}.combat-status .combat-figure{color:#d6a5dc}
.combat-reward{color:#d1b579}.combat-victory{color:#85b78b}.combat-defeat{color:#d06c6e}
.combat-line.combat-victory,.combat-line.combat-defeat{font-weight:bold}
#page-tower-result .battle-log,#page-spar-result .battle-log,#page-atonement-result .battle-log,#page-corridor-result .battle-log{line-height:1.75}
@media(max-width:420px){#page-explore.active,#page-guild-raid.active,#page-tower-result.active,#page-spar-result.active,#page-atonement-result.active,#page-corridor-result.active{height:calc(100dvh - 91px)}#page-explore .versus-row,#page-guild-raid .versus-row{gap:7px}.combat-summary{font-size:10px}}

/* v0.9.14: shared 1-v-2 / 2-v-2 battle heads, compact on phones. */
.combat-party-host{flex:none}
#page-explore .combat-party-host~.versus-row,#page-guild-raid .combat-party-host~.versus-row{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);pointer-events:none}
.combat-party{display:grid;grid-template-columns:minmax(0,1fr) 19px minmax(0,1fr);gap:5px;align-items:center;padding:8px 0;border-bottom:1px solid #30383a}
.combat-party-side{display:flex;flex-direction:column;gap:7px;min-width:0}
.combat-side-label{font-size:10px;color:#c4a76e;letter-spacing:.08em}
.combat-vs{font-size:11px;color:#b8aaa0;text-align:center}
.combat-unit{min-width:0;display:flex;gap:5px;align-items:center;background:rgba(12,18,20,.68);border:1px solid #303b40;padding:5px 4px}
.combat-unit.enemy{border-color:#5b373c}.combat-unit.pet{border-color:#435175}
.combat-unit-avatar{flex:none;width:25px;height:25px;display:grid;place-items:center;color:#ddd;border:1px solid #485158;background:#292c35;font-size:10px}
.combat-unit.enemy .combat-unit-avatar{background:#42282b}.combat-unit.pet .combat-unit-avatar{background:#313654}
.combat-unit-detail{min-width:0;flex:1}.combat-unit-name{font-size:10px;line-height:1.5;overflow-wrap:anywhere}.combat-role{color:#acb8df;font-size:9px}
.combat-unit-hp{font-size:9px;color:#c7cbcd;white-space:nowrap;font-variant-numeric:tabular-nums}
.combat-ko{opacity:.52}.combat-hp-fill.pet{background:#8e9bcb}
#page-explore .combat-summary,#page-guild-raid .combat-summary{margin-top:5px}
#page-tower-result .combat-party,#page-spar-result .combat-party,#page-atonement-result .combat-party{margin:4px 0 10px}
.corridor-wave .combat-party{margin-top:8px}
#feastBattleLog .combat-party{margin-bottom:10px}
@media(max-width:380px){.combat-unit-avatar{width:19px;height:23px}.combat-unit{gap:3px;padding:4px 2px}.combat-unit-name{font-size:9px}.combat-unit-hp{font-size:8px}}

#bloodGateResultModal .modal-card{max-height:min(90dvh,850px);display:flex;flex-direction:column;overflow:hidden}
#bloodGateResult{overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin}
#bloodGateResultClose{flex:none}
.combat-gate-wave{border-top:1px solid #364044;padding:12px 0}
.combat-gate-wave .battle-log{padding:0 2px 8px;margin-top:8px}

/* v0.9.16: 酒場・還録のローカル交流・執筆ビュー */
.community-page.active{display:flex;flex-direction:column;min-height:0;height:calc(100dvh - 94px);overflow:hidden}
.community-page>.subbar,.community-page>.community-note,.community-page>.community-tabs,.community-page>.community-pager,.community-page>.community-compose{flex:none}
.community-page>.scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}
.community-page .subbar .gold{font-size:13px}.community-compact{padding:7px 11px;font-size:12px}
.community-note{font-size:11px;line-height:1.7;color:#b9afa0;padding:9px 13px;border-bottom:1px solid #343638;background:rgba(14,20,21,.65)}
.community-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #554c3a}.community-tabs button{background:rgba(17,22,24,.68);color:#b4aba0;border:0;border-bottom:2px solid transparent;padding:12px 4px}.community-tabs button.selected{color:#d1b78b;border-color:#9b8662}
.community-list{padding:0 11px}.community-thread{display:flex;flex-direction:column;gap:7px;width:100%;text-align:left;padding:14px 8px;color:#dbd5c9;border:0;border-bottom:1px solid #3a3c3d;background:transparent;font-family:inherit;line-height:1.5}.community-thread:hover{background:rgba(190,170,120,.08)}
.community-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-top:1px solid #373b3a;background:rgba(14,20,21,.74)}.community-pager .btn{padding:8px 14px}.community-pager .btn:disabled{opacity:.3}
.community-compose{padding:10px 12px;background:rgba(16,23,24,.94);border-top:1px solid #404342;display:flex;flex-direction:column;gap:8px}.community-compose textarea,.community-editor textarea,.community-page input:not([type=file]),#tavernNewBody{background:#141c1e;color:#e2ddd4;border:1px solid #384548;padding:10px;font-family:inherit;min-width:0;width:100%;font-size:14px}.community-compose .split{gap:8px}.community-upload{display:inline-block;padding:7px 10px;border:1px solid #75654b;color:#c1a574;font-size:11px;cursor:pointer}.community-upload input{display:none}
.community-post{padding:14px 2px;border-bottom:1px solid #3b4040}.community-post p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:13px;color:#dedbd4}.community-post-image{display:block;max-width:min(100%,300px);max-height:320px;object-fit:contain;margin:12px auto;border:1px solid #354044}.community-post .tiny{margin-top:10px}
.community-article h2{font-size:18px;line-height:1.5}.community-body{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;margin:22px 0;min-height:200px}
.community-editor{display:flex;flex-direction:column;gap:12px}.community-editor textarea{flex:1;min-height:230px;resize:vertical}.community-editor button{flex:none}
@media(max-width:420px){.community-page.active{height:calc(100dvh - 90px)}}

/* v0.9.17: 合成結果を全件確認可能にする独立したスクロール画面。 */
#page-equip-combine-results.active{display:flex;flex-direction:column;height:calc(100dvh - 106px);min-height:0;overflow:hidden}
#page-equip-combine-results>.subbar,#page-equip-combine-results>.action-footer{flex:none}
#page-equip-combine-results>#combineResults{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding-bottom:22px}
.combine-result-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:10px 8px;border-bottom:1px solid #2c373c;background:rgba(15,21,24,.82);font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.offer-plus-five{display:inline!important;color:#879a9f!important;font-size:11px!important;font-weight:normal;margin:0!important}

/* v0.9.19: Mystery notes, independently styled to avoid changes to other screens. */
.lore-page>.subbar{flex:none}.lore-count{margin-left:auto}
.lore-preface{padding:12px 14px 8px;line-height:1.65;color:#b5ada1;flex:none}
.lore-list{flex:1;min-height:0;padding:0 12px 14px;overflow-y:auto;max-height:none}
.lore-entry{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;background:#141c1d;border:1px solid #303b3e;color:#e4e1dc;min-height:45px;padding:10px 13px;margin-bottom:5px;font:inherit;font-size:13px}
.lore-entry:not(:disabled):hover{border-color:#a58b5f;background:#1c2525}.lore-entry.is-locked{opacity:.54;color:#9ca4a5}
.lore-entry small{font-size:10px;color:#9d9585}
.lore-story{flex:1;min-height:0;max-height:none;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:22px 20px 34px;line-height:2.25;font-size:14px;background:rgba(28,29,29,.67);color:#e4e2e0}
.lore-bottom .btn{font-size:11px;padding:8px;min-height:40px}.lore-bottom{gap:5px}

/* v0.9.20 Returning-person echo archive */
.echo-entry{width:100%;text-align:left;border:1px solid rgba(151,128,82,.28);background:rgba(11,18,19,.76);padding:14px 15px;color:inherit;display:block}
.echo-entry:hover{border-color:rgba(184,155,92,.55);background:rgba(19,27,28,.88)}
.echo-entry .echo-name{font-size:17px;color:#d7c28b;letter-spacing:.05em}
.echo-entry .echo-meta{margin-top:5px;font-size:12px;color:#aeb9b8;line-height:1.7}
.echo-profile-head{border:1px solid rgba(151,128,82,.28);background:rgba(11,18,19,.72);padding:16px}
.echo-profile-name{font-size:22px;color:#d7c28b;letter-spacing:.06em}
.echo-profile-tagline{margin-top:12px;line-height:1.9;color:#d6dddd}
.echo-profile-summary{margin-top:12px;line-height:2;color:#c8d0cf;white-space:pre-wrap}
.echo-grid{display:grid;grid-template-columns:1fr auto;gap:7px 16px;align-items:center}
.echo-grid b{text-align:right;font-weight:500;color:#e1e6e4}
.echo-chip-row{display:flex;flex-wrap:wrap;gap:6px}
.echo-chip{border:1px solid rgba(115,143,145,.28);background:rgba(14,24,25,.76);padding:6px 9px;font-size:12px;color:#ccd6d4}
.echo-status{border-left:2px solid rgba(184,155,92,.65);padding:8px 10px;background:rgba(26,24,17,.35);line-height:1.8}
.echo-toolbar{display:flex;gap:8px;align-items:center;justify-content:space-between;padding-bottom:0}
.echo-select{flex:1;background:rgba(10,16,17,.9);color:#d7dedd;border:1px solid rgba(151,128,82,.28);padding:10px 11px}
.echo-entry-row{display:flex;gap:12px;align-items:flex-start}.echo-entry-main{flex:1;min-width:0}
.echo-list-icon,.echo-manage-icon{width:52px;height:52px;object-fit:cover;border:1px solid rgba(151,128,82,.3);background:#111;flex:0 0 auto}
.echo-icon-placeholder{display:flex;align-items:center;justify-content:center;color:#b89b5c;font-size:22px}
.echo-badge{display:inline-block;margin-top:5px;padding:2px 7px;border:1px solid rgba(184,155,92,.34);color:#c8b176;background:rgba(42,35,20,.34);font-size:10px;line-height:1.5}
.echo-profile-top{display:flex;gap:14px;align-items:flex-start}.echo-profile-icon{width:78px;height:78px;object-fit:cover;border:1px solid rgba(151,128,82,.34);background:#111;flex:0 0 auto}.echo-profile-main{flex:1;min-width:0}
.echo-manage-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.echo-manage-actions #echoCreate{grid-column:1/-1}
.echo-manage-row{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid rgba(151,128,82,.25);background:rgba(11,18,19,.72);padding:10px}.echo-manage-info{display:flex;gap:10px;align-items:center;min-width:0}.echo-manage-info>div{min-width:0}
.echo-editor label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#c8cfce}.echo-editor input,.echo-editor textarea,.echo-editor select{width:100%;box-sizing:border-box;background:rgba(10,16,17,.9);color:#e0e5e3;border:1px solid rgba(115,143,145,.28);padding:9px 10px;font:inherit}.echo-editor textarea{resize:vertical;line-height:1.7}
.echo-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.echo-icon-editor{display:flex;gap:12px;align-items:flex-start}.echo-icon-editor img{width:96px;height:96px;object-fit:cover;border:1px solid rgba(151,128,82,.35);background:#111}.echo-icon-editor .stack8{flex:1}.echo-editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-bottom:18px}.btn.danger{border-color:rgba(170,74,74,.6);color:#e0a0a0}.btn.primary{border-color:rgba(184,155,92,.7);color:#ead79e}
@media(max-width:480px){.echo-edit-grid{grid-template-columns:1fr}.echo-profile-top{flex-direction:column}.echo-profile-icon{width:72px;height:72px}}

/* v0.9.22: returning-person echo battle simulator */
.echo-sim-pair{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:8px;align-items:end}.echo-sim-pair label{min-width:0}.echo-sim-pair .echo-select{width:100%;margin-top:5px}.echo-sim-vs{text-align:center;color:#c4a76e;font-size:13px;padding-bottom:12px}.echo-sim-profiles{display:grid;grid-template-columns:1fr 1fr;gap:8px}.echo-sim-mini{border:1px solid rgba(151,128,82,.28);background:rgba(11,18,19,.72);padding:10px;min-width:0}.echo-sim-mini b{display:block;color:#d7c28b;overflow-wrap:anywhere}.echo-sim-mini .echo-sim-stats{display:grid;grid-template-columns:1fr auto;gap:3px 8px;margin-top:8px;font-size:10px}.echo-sim-result-grid{display:grid;grid-template-columns:1fr auto;gap:6px 12px}.echo-sim-bar{height:6px;background:#151c1f;margin-top:4px;overflow:hidden}.echo-sim-bar>span{display:block;height:100%;background:#9a835f}.echo-sim-batch-title{font-size:16px;color:#d7c28b}.echo-sim-batch-scores{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;text-align:center;margin-top:10px}.echo-sim-batch-scores>div{border:1px solid #30383a;padding:8px 4px}.echo-sim-batch-scores b{display:block;font-size:18px}.echo-sim-mode-badge{display:inline-block;border:1px solid #665c45;padding:2px 6px;color:#d7c28b;font-size:10px}.echo-sim-warning{color:#c9a982}.echo-sim-invalid{color:#d06c6e}.echo-profile-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.echo-profile-actions .btn{width:100%}@media(max-width:380px){.echo-sim-pair{grid-template-columns:1fr}.echo-sim-vs{padding:0}.echo-sim-profiles{grid-template-columns:1fr}.echo-profile-actions{grid-template-columns:1fr}}

/* v0.9.23: preserve the home Explore button's vertical placement as special entries grow. */
#page-home .rank-preview{max-height:288px;overflow-y:auto;overscroll-behavior:contain}
#page-home .home-specials{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(43px,auto)}
#page-home .home-specials .observatory-entry{background:#2c2337;border-color:#69547d;color:#dab8ea}
#page-home .home-specials .observatory-entry:hover,#page-home .home-specials .observatory-entry:active{background:#2c2337}
.observatory-panel{border-color:#514360}
.observatory-condition{padding:12px;border:1px solid #67516c;background:#221c29;color:#dcc7e4;line-height:1.65;font-size:13px}
.observatory-choice{width:100%;text-align:left;border:1px solid #685979;background:#211b29;color:#e2d9e8;padding:12px;min-height:51px;font-family:inherit}
.observatory-choice .tiny{display:block;margin-top:5px;color:#aba0b7}
.observatory-log{max-height:370px;overflow-y:auto;overflow-wrap:anywhere}

/* v0.9.24: choose one observation tier daily; show player and familiar separately. */
.observatory-tier{width:100%;display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left;border:1px solid #55455e;background:#1e1a25;color:#ded4e4;padding:11px;min-height:56px;font-family:inherit}
.observatory-tier.selected{border-color:#c3a0db;background:#32273d}
.observatory-tier:disabled{opacity:.65;cursor:default}
.observatory-tier b{font-size:14px}.observatory-tier span{line-height:1.5}
.observatory-party{border:1px solid #514360;padding:10px;background:#17191e}
.observatory-party .combat-unit{margin-bottom:5px}

/* The separate RE:VEIL IF-story archive shares the existing reader layout. */
.gaiden-page .lore-preface{border-bottom:1px solid #483c4a;color:#c0a9c3}
.gaiden-entry{border-left:3px solid #85678f}
.gaiden-entry span:first-child{min-width:0}
.gaiden-entry small{line-height:1.8}

/* v0.9.28 闘技場 */
#page-home .home-specials .arena-entry{background:#2a2115;border-color:#6a5731;color:#e0bd73}
#page-home .home-specials .arena-entry:hover,#page-home .home-specials .arena-entry:active{background:#2a2115}
#page-home .home-specials .arena-entry span{display:none}
.arena-hero{background:radial-gradient(ellipse at center,#51331f,transparent 72%)}
.arena-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.arena-stats>div{border:1px solid #3a342b;background:#11100e;padding:10px;display:flex;flex-direction:column;gap:4px}
.arena-stats b{color:#d7b66e;font-size:15px}
.arena-tier{border:1px solid #3a342b;background:#0f0f0d;padding:9px 10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.arena-tier>div{display:flex;align-items:baseline;gap:8px}.arena-tier b{color:#e1bd72;font-size:14px}.arena-tier .tiny{text-align:right}
.arena-opponent{width:100%;border:1px solid #3b3529;background:#14120e;color:#dedede;text-align:left;padding:12px}
.arena-opponent:hover:not(:disabled){background:#211d15}
.arena-opponent:disabled{opacity:.45}
.arena-opp-row{display:grid;grid-template-columns:29px minmax(0,1fr);gap:10px;align-items:center}
.arena-opp-main{min-width:0}
.arena-opp-head{gap:8px}
.arena-opp-head b{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#arenaRanking .rank-entry{grid-template-columns:21px 29px minmax(0,1fr) auto}
#arenaRanking .rank-score{font-size:11px}
#arenaRanking .rank-detail{font-size:10px}
.arena-danger{color:#d79394}.arena-even{color:#d7b66e}.arena-easy{color:#90b59a}

/* v0.9.31 記録庫 */
.archive-hero{background:radial-gradient(ellipse at 50% 0,rgba(91,72,47,.26),transparent 72%),rgba(16,22,25,.94)}
.archive-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.archive-summary>div{border:1px solid #30383d;background:#0e1315;padding:10px;min-width:0}
.archive-summary b{display:block;color:var(--gold);font-size:14px;margin-top:4px}
.archive-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.archive-tabs button{min-height:38px;border:1px solid #30383d;background:#101619;color:#aeb6b8;font:12px Georgia,'Yu Mincho',serif}
.archive-tabs button[aria-selected="true"]{border-color:#9b845f;color:#e0c98e;background:#1d1a14}
.archive-entry{width:100%;text-align:left;border:1px solid #293338;background:rgba(15,21,24,.96);color:#ddd;padding:12px}
.archive-entry.locked{opacity:.58}
.archive-entry-head{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center}
.archive-icon{width:34px;height:34px;border:1px solid #465158;background:radial-gradient(circle at 40% 30%,#39454a,#171d20 70%);display:flex;align-items:center;justify-content:center;color:#d8cba9;font-size:11px}
.archive-entry.boss .archive-icon{background:radial-gradient(circle at 40% 30%,#66443f,#211617 70%);border-color:#65423d}
.archive-entry.person .archive-icon{background:radial-gradient(circle at 40% 30%,#514969,#1d1927 70%);border-color:#554c69}
.archive-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.archive-meta{font-size:10px;color:#98a2a6;margin-top:3px}
.archive-desc{border-top:1px solid #263035;margin-top:10px;padding-top:9px;font-size:12px;line-height:1.7;color:#b7bec0}
.archive-progress{white-space:nowrap;color:#c4a76e;font-size:11px}
@media(max-width:390px){.archive-summary{grid-template-columns:1fr}.archive-entry-head{grid-template-columns:30px minmax(0,1fr) auto}.archive-icon{width:30px;height:30px}}

/* v0.9.32 灰燼酒場：酒場掲示板への追加入口と独立した遊戯場 */
.ashen-tavern-entry{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 20px);margin:10px;background:linear-gradient(105deg,#352518,#171717);border:1px solid #806139;color:#e5c996;font-size:13px;text-align:left;gap:8px}
.ashen-tavern-entry span{color:#b9a183;font-size:10px}
.ashen-scene{position:relative;background:linear-gradient(rgba(8,7,7,.74),rgba(9,8,8,.9)),url("assets/ashen_tavern_bg.png") center top/cover fixed;padding-bottom:28px}
.ash-visual-stage{position:relative;min-height:252px;overflow:hidden;border:1px solid #765936;background:linear-gradient(90deg,rgba(7,6,7,.94) 0%,rgba(10,8,9,.8) 38%,rgba(10,8,9,.3) 67%,rgba(10,8,9,.08) 100%),url("assets/ashen_tavern_bg.png") center 46%/cover no-repeat;box-shadow:inset 0 -46px 50px rgba(0,0,0,.5),0 8px 24px rgba(0,0,0,.2)}
.ash-visual-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 84% 17%,rgba(157,78,53,.12),transparent 34%),linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.18));pointer-events:none;z-index:1}
.ash-visual-copy{position:absolute;z-index:4;left:15px;top:24px;width:47%;color:#d4b38b;text-shadow:0 2px 10px #000}
.ash-visual-copy .tiny{display:inline-block;padding:4px 7px;border:1px solid rgba(184,143,88,.42);background:rgba(13,9,9,.5);letter-spacing:.06em}
.ash-visual-copy h2{margin:10px 0 8px;font-size:27px;font-weight:500;letter-spacing:.13em;color:#f1d2a3}
.ash-visual-copy .small{line-height:1.75;color:#d8c7b1;font-size:12px}
.ash-vera{position:absolute;z-index:3;right:-4px;top:-18px;height:338px;width:auto;max-width:none;filter:drop-shadow(-14px 10px 20px rgba(0,0,0,.72));pointer-events:none;user-select:none}
.ash-visual-shade{position:absolute;z-index:3;inset:auto 0 0;height:54px;background:linear-gradient(transparent,rgba(7,7,7,.82));pointer-events:none}
.ash-host{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;background:linear-gradient(95deg,rgba(37,24,22,.98),rgba(22,18,17,.98));border-color:#6b5038;box-shadow:inset 0 0 24px rgba(114,63,40,.08)}
.ash-host-portrait{width:56px;height:64px;border:1px solid #8d6b50;background:linear-gradient(rgba(35,20,23,.04),rgba(35,20,23,.28)),url("assets/vera_host.png") 50% 6%/260% auto no-repeat;box-shadow:0 0 0 1px rgba(0,0,0,.5),inset 0 0 16px rgba(0,0,0,.25)}
.ash-host p{margin:6px 0 0;line-height:1.65}
@media(max-width:390px){.ash-visual-stage{min-height:228px}.ash-vera{right:-13px;top:-12px;height:305px}.ash-visual-copy{width:48%;left:11px;top:19px}.ash-visual-copy h2{font-size:22px}.ash-visual-copy .small{font-size:11px}.ash-host{grid-template-columns:50px minmax(0,1fr)}.ash-host-portrait{width:48px;height:56px}}
.ash-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:4px}
.ash-tabs button{border:1px solid #524231;background:#191817;color:#c2b4a3;padding:12px 4px;font-size:11px;font-family:inherit}
.ash-tabs button[aria-selected=true]{border-color:#b08d57;background:#34281e;color:#ffdfa8}
.ash-select{width:100%;min-height:39px;background:#171b1b;color:#edd7ae;border:1px solid #69543a;padding:8px;font-family:inherit}
.ash-dice-face{text-align:center;letter-spacing:.18em;font-size:48px;min-height:76px;padding:8px;border:1px solid #56402f;background:#171411;color:#e1bf87}
.ash-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(66px,1fr));gap:6px}
.ash-actions .btn{padding:10px 4px;min-height:49px;font-size:12px}
.ash-message{padding:12px;border-left:2px solid #a28250;background:#211b17;line-height:1.6;min-height:46px;color:#e4cba5}
.ash-hand{margin:10px 0;padding:10px;border:1px solid #504032;background:#151413}
.ash-hand>span{display:block;margin-bottom:10px;color:#e1c18b;font-size:12px}
.ash-card{display:inline-flex;align-items:center;justify-content:center;width:37px;height:53px;margin:0 5px 5px 0;background:#e3dacb;color:#29252b;border-radius:4px;font-family:serif;font-size:15px;font-weight:bold;box-shadow:2px 2px 0 #080808}
.ash-card.red{color:#b52a3f}.ash-card.covered{color:#d2ba86;background:#392834;border:1px solid #b39165}
.ash-shop-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #493e2f;background:#191715;padding:10px}
.ash-shop-row>div{min-width:0}.ash-shop-row b{font-size:13px;color:#dfc9a2}.ash-shop-row .btn{min-width:82px;font-size:11px}
.ash-history-item{border-bottom:1px solid #38332b;padding:8px 0}

.portrait.has-frame::after,.rank-avatar.has-frame::after,.avatar-preview.has-frame::after,.familiar-avatar.has-frame::after{content:"";position:absolute;inset:-8px;background-image:var(--frame-image);background-position:center;background-repeat:no-repeat;background-size:contain;pointer-events:none;z-index:2}
.rank-avatar.has-frame::after{inset:-4px}
.avatar-preview.has-frame::after{inset:-10px}
.avatar-frame-current{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center}
.avatar-frame-grid{display:grid;grid-template-columns:1fr;gap:10px}
.avatar-frame-card{border:1px solid #30393e;background:rgba(16,22,25,.92);padding:12px;display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;align-items:center}
.avatar-frame-card.selected{border-color:#9b845f;background:rgba(156,131,81,.08)}
.avatar-frame-preview{width:72px;height:72px;font-size:11px;margin:6px auto}
.avatar-frame-meta b{display:block;font-size:14px}
.avatar-frame-meta .small{line-height:1.6}
.avatar-frame-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:390px){.avatar-frame-card{grid-template-columns:76px minmax(0,1fr)}.avatar-frame-preview{width:60px;height:60px}.avatar-frame-current{grid-template-columns:84px minmax(0,1fr)}}

/* v0.9.34：装飾コレクション・受取状態 */
.avatar-frame-card.frame-locked .avatar-frame-preview{filter:grayscale(.8) brightness(.55)}
.avatar-frame-card.frame-locked{border-color:#283033}
.avatar-frame-card .avatar-frame-meta>.split{gap:7px;align-items:center}
.avatar-frame-card .avatar-frame-meta>.split b{min-width:0}
.avatar-frame-card .avatar-frame-meta>.split span{white-space:nowrap}
.avatar-frame-actions button{font-size:12px;min-height:38px}
.avatar-frame-actions button.frame-claim{border-color:#ab8550;color:#e6c58b;background:#292115}
.frame-notice{border-color:#b58e4a;background:rgba(92,70,29,.18);line-height:1.7}

/* v0.9.37 終末個体 */
#page-home .home-specials .calamity-entry{background:linear-gradient(135deg,#2a1010,#171014);border-color:#713f42;color:#e2a4a0}
.calamity-scene{background:radial-gradient(circle at 50% 5%,rgba(95,20,25,.22),transparent 36%)}
.calamity-hero{min-height:178px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(180deg,rgba(8,9,10,.2),rgba(8,9,10,.96)),radial-gradient(circle at 76% 28%,rgba(138,45,48,.35),transparent 25%),linear-gradient(135deg,#1e1113,#0c1012);border-color:#543034;position:relative;overflow:hidden}
.calamity-hero:before{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(190,82,86,.28);border-radius:50%;right:-38px;top:-88px;box-shadow:0 0 45px rgba(145,45,50,.12),inset 0 0 30px rgba(145,45,50,.08)}
.calamity-overline{font-size:9px;letter-spacing:.15em;color:#a67576;position:relative}.calamity-name{font-size:22px;color:#e1d4bf;margin-top:7px;position:relative}.calamity-hero>*{z-index:1}
.calamity-hp-number{font-variant-numeric:tabular-nums;font-size:18px}.calamity-hp-number b{color:#e0a09d}.calamity-meter{height:9px;background:#211719}.calamity-meter span{background:linear-gradient(90deg,#742e33,#b05255)}
.calamity-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.calamity-stats>div{background:#0d1113;border:1px solid #293035;padding:10px;display:flex;flex-direction:column;gap:5px}.calamity-stats b{color:#d7b66e;font-size:13px}.calamity-help{line-height:1.7}

.calamity-rewards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.calamity-rewards span{border:1px solid #3b342b;background:#11100e;padding:8px 9px;color:#d8c08a;font-size:11px;text-align:center}.calamity-reward-card{background:linear-gradient(135deg,rgba(30,24,18,.96),rgba(16,22,25,.94))}


/* v0.9.43: chat + exploration simultaneous controls */
#page-chat.active{display:flex;flex-direction:column;height:calc(100dvh - 95px);min-height:350px;overflow:hidden}
#page-chat>.subbar,#page-chat>.chat-channel-tabs,#page-chat>.chat-note,#page-chat>.moon-dice-panel,#page-chat>.chat-quick-panel,#page-chat>.chat-compose{flex:none}
#page-chat .chat-messages{flex:1;min-height:0;height:auto;overflow-y:auto;overscroll-behavior:contain}
.chat-quick-panel{padding:8px 10px 9px;background:#0b1012;border-bottom:1px solid var(--line);box-shadow:0 3px 12px rgba(0,0,0,.18)}
.chat-progress-line{display:flex;align-items:center;gap:10px;white-space:nowrap;overflow:hidden;font-size:10px;color:#aeb7ba;margin-bottom:7px}
.chat-progress-line b{color:#ddd;font-weight:700}.chat-progress-line #chatExploreStatus{margin-left:auto;overflow:hidden;text-overflow:ellipsis;min-width:0}
.chat-action-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}.chat-action-grid .btn{min-height:38px;padding:7px 6px;font-size:12px}
#chatRebirth.ready{border-color:#b39a6f;color:var(--gold)}
@media(max-width:420px){#page-chat.active{height:calc(100dvh - 91px)}.chat-progress-line{gap:7px;font-size:9px}.chat-progress-line #chatExploreStatus{display:none}.chat-action-grid{gap:5px}.chat-action-grid .btn{font-size:11px}}


/* v0.9.44 chat layout polish */
#page-chat.active{display:flex;flex-direction:column;min-height:calc(100vh - 106px)}
#page-chat .chat-head{padding:10px 12px;font-size:12px}
#page-chat .chat-channel-tabs{flex:0 0 auto}
#page-chat .chat-channel-tabs button{min-height:38px;font-size:12px}
#page-chat .chat-note{padding:6px 10px;font-size:10px;line-height:1.45}
#page-chat .moon-dice-panel{flex:0 0 auto}
#page-chat .chat-messages{flex:1 1 auto;min-height:0;height:auto;padding:0;background:linear-gradient(rgba(10,13,15,.72),rgba(10,13,15,.86)),radial-gradient(circle at 50% 15%,#253036,#0b0f11 70%)}
#page-chat .chat-quick-panel{flex:0 0 auto;padding:8px 10px 10px;background:rgba(8,11,13,.97);border-top:1px solid var(--line)}
#page-chat .chat-progress-line{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;font-size:11px}
#page-chat .chat-progress-line span{display:block;padding:6px 8px;border:1px solid #303a3f;background:#101619;color:#cfd4d6;text-align:center;white-space:nowrap}
#page-chat .chat-explore-status{padding:6px 2px 0;font-size:10px;line-height:1.4;text-align:left}
#page-chat .chat-action-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
#page-chat .chat-action-grid .btn{min-height:44px;font-size:12px;padding:10px 4px}
#page-chat .chat-compose{flex:0 0 auto;display:grid;grid-template-columns:1fr 72px;gap:8px;padding:8px 10px calc(10px + env(safe-area-inset-bottom));background:#090d0f;border-top:1px solid var(--line)}
#page-chat .chat-compose textarea{min-height:72px;padding:12px 10px;font-size:14px}
#page-chat .chat-compose .btn{min-height:72px}
#page-chat .chat-entry{position:relative;padding:10px 12px;border-bottom:1px solid rgba(74,86,92,.38);font-size:12px;line-height:1.5}
#page-chat .chat-entry.normal{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px;align-items:start}
#page-chat .chat-entry.system{padding:11px 12px;color:#bba36c;background:rgba(22,18,12,.18)}
#page-chat .chat-avatar{width:50px;height:50px;display:flex;align-items:center;justify-content:center;border:1px solid #4e5961;background:linear-gradient(130deg,#39414a,#251e30);font-size:12px;color:#ebdfc4;position:relative;overflow:visible;isolation:isolate;border-radius:3px;flex-shrink:0;text-transform:uppercase}
#page-chat .chat-avatar.rank-npc{background:linear-gradient(130deg,#293940,#211d30)}
#page-chat .chat-avatar.self{background:linear-gradient(130deg,#4b3f35,#2d2530)}
#page-chat .chat-avatar.has-avatar{background-size:cover;background-position:center;background-repeat:no-repeat;color:transparent;text-shadow:none}
#page-chat .chat-avatar.has-frame::after{content:"";position:absolute;inset:-6px;background-image:var(--frame-image);background-position:center;background-repeat:no-repeat;background-size:contain;pointer-events:none;z-index:2}
#page-chat .chat-main{min-width:0}
#page-chat .chat-title{color:var(--gold);font-size:10px;line-height:1.3;margin-bottom:2px}
#page-chat .chat-meta{display:flex;gap:8px;align-items:baseline;min-width:0}
#page-chat .chat-name{font-weight:700;color:#d8dddf;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#page-chat .chat-time{margin-left:auto;color:#808b90;font-size:10px;flex:0 0 auto}
#page-chat .chat-sub{margin-top:2px;font-size:10px;color:#aeb7ba;display:flex;gap:6px;flex-wrap:wrap}
#page-chat .chat-sub .chat-guild{color:#bf7660}
#page-chat .chat-sub .chat-life{color:#d1d4d5}
#page-chat .chat-body{margin-top:4px;color:#edf0f1;word-break:break-word}
#page-chat .chat-entry.self .chat-name{color:#8fbfe2}
#page-chat .chat-entry.guild .chat-name{color:#8aa9d2}
#page-chat .chat-entry.prison .chat-name{color:#d08282}
#page-chat .chat-entry.empty{color:#97a0a4;padding:18px 12px}
@media(max-width:390px){
  #page-chat .chat-entry.normal{grid-template-columns:50px minmax(0,1fr);gap:8px}
  #page-chat .chat-avatar{width:46px;height:46px}
  #page-chat .chat-name{font-size:13px}
  #page-chat .chat-progress-line{gap:4px}
  #page-chat .chat-progress-line span{padding:6px 4px;font-size:10px}
  #page-chat .chat-action-grid .btn{font-size:11px}
}


/* v0.9.45 chat home-HUD polish */
#page-chat .chat-xp-meter{height:5px;margin-top:6px;background:#1b2327;border:1px solid #293338;overflow:hidden}
#page-chat .chat-xp-meter span{display:block;height:100%;width:0;background:#a89063;transition:width .15s ease}
#page-chat .chat-incense-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;padding:7px 8px;background:#0d1315;border:1px solid #2a3439;font-size:11px}
#page-chat .chat-incense-row>div{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}
#page-chat .chat-incense-row #chatIncenseState{margin-left:2px}
#page-chat .chat-mini-btn{min-width:54px;min-height:30px;padding:4px 9px;border:1px solid #5d543f;background:#15140f;color:#cfb579;font-family:inherit;font-size:11px}
#page-chat .chat-mini-btn:disabled{opacity:.35}
#page-chat .chat-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:5px}
#page-chat .chat-settings-link{border:0;background:none;color:#b9a374;font-family:inherit;font-size:10px;padding:4px 0;white-space:nowrap}
#page-chat .chat-settings-link:hover{color:#e0c98c}
.chat-settings-card{max-width:390px}
.chat-setting-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid #303a3f;background:#0f1518}
.chat-setting-row .toggle{display:block;flex:none;padding:0}
@media(max-width:390px){#page-chat .chat-incense-row{padding:6px 7px}.chat-setting-row{gap:10px;padding:10px}}

/* v0.9.46 two-returner co-op expedition */
.home-specials .resonance-entry{background:#192126;border-color:#42616c;color:#a0cbd5}
.resonance-scene{background:linear-gradient(rgba(8,13,17,.84),rgba(8,10,13,.96)),radial-gradient(circle at 50% 4%,#344650,#090c10 65%)}
.resonance-hero{background:linear-gradient(120deg,rgba(22,32,44,.97),rgba(33,25,43,.96));border-color:#53616e;padding:23px 15px;text-align:center}
.resonance-hero h2{font-size:26px;font-weight:normal;letter-spacing:.16em;margin:8px 0 12px;color:#d0c2a3}
.resonance-area,.resonance-ally{display:block;width:100%;text-align:left;padding:12px;background:#10181d;border:1px solid #34434b;color:#e3e6e7;min-width:0}
.resonance-area.selected,.resonance-ally.selected{border-color:#bda477;background:#222522;box-shadow:inset 3px 0 #bda477}
.resonance-area .small,.resonance-ally .small{margin-top:5px;color:#adb9be}
.resonance-log{line-height:1.65;overflow-wrap:anywhere}
.resonance-log .combat-line{margin-bottom:3px}

/* v0.9.47: Forgetting Labyrinth, separate level-1 roguelite */
.labyrinth-entry{border-color:#7c629f!important;background:linear-gradient(120deg,#201529,#101419)!important}
.lab-hero{background:linear-gradient(120deg,rgba(35,20,51,.94),rgba(13,21,25,.98));border-color:#705b90;padding:22px 15px}
.lab-hero h2{margin:6px 0 11px;color:#d6bee7;font-size:25px}
.lab-scene{padding-bottom:28px}
.lab-party{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-person{border:1px solid #394049;background:#12191d;padding:10px;min-width:0}
.lab-person b{color:#cfb4ea}
.lab-person .lab-hpbar{height:6px;background:#29252d;margin:7px 0;overflow:hidden}
.lab-person .lab-hpbar span{height:100%;display:block;background:#a46b84}
.lab-person .small,.lab-person .tiny{overflow-wrap:anywhere}
.lab-equip{border-top:1px solid #293036;padding-top:4px;margin-top:6px}
.lab-loot-card{padding:12px;background:#151922;border:1px solid #463956;margin-top:8px}
.lab-loot-card b{color:#d4b8ee}
.lab-loot-card .btn{width:100%;margin-top:8px;text-align:center}
.lab-loot-card button:disabled{opacity:.38}
.lab-battle-log{max-height:310px;overflow-y:auto;font-size:11px;line-height:1.65}
.lab-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lab-choice button{padding:10px 6px;min-height:43px}
.lab-choice button[aria-pressed="true"]{border-color:#c6a6de;color:#e6d2f4;background:#2e203a}
.lab-room-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.lab-room-actions .btn{min-width:0;font-size:12px}
@media(max-width:390px){.lab-party{gap:6px}.lab-person{padding:8px}.lab-person .small{font-size:11px}}

/* v0.9.48 labyrinth battle readability */
.lab-result-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.lab-result-enemy{font-size:11px;color:#d7c3e6;border:1px solid #554565;padding:6px 8px;background:#17131d;white-space:nowrap}
.lab-result-party{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.lab-result-party span{font-size:10px;border:1px solid #343942;padding:6px;background:#10161a}
.lab-result-log{max-height:360px;padding:9px;background:#090d10;border:1px solid #30283a}
@media(max-width:390px){.lab-result-head{display:block}.lab-result-enemy{display:inline-block;margin-top:7px}.lab-result-party{grid-template-columns:1fr}}

/* v0.9.50 眷獣録 */
.beast-hero{background:linear-gradient(130deg,#2c1c43 0%,#171621 65%,#322035 100%);border-color:#83639b}
.beast-hero h2{font-size:26px;letter-spacing:.1em;margin:9px 0}
.beast-tabs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px}
.beast-tabs .btn{font-size:11px;padding:10px 3px;min-width:0}
.beast-entry{background:linear-gradient(130deg,#251b38,#402741)!important;border-color:#8d6ca5!important}
.beast-creature,.beast-book-row{display:flex;align-items:center;gap:13px}
.beast-symbol{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;background:#292337;border:1px solid #6c577e;border-radius:12px;font-size:29px}
.beast-card .double{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.beast-card .double .wfull{grid-column:1/-1}
.beast-fight-log{max-height:360px;overflow-y:auto;font-size:12px;line-height:1.8;color:#d9d1e0}
.beast-fight-log div{border-bottom:1px solid #55466055;padding:3px 0}

/* Home compact labels: preserve full titles without overflowing 4-column grid. */
.home-specials #openLabyrinth,.home-specials #openBeasts{font-size:10px;letter-spacing:-.065em;line-height:1.3;white-space:normal;overflow-wrap:normal;word-break:keep-all;padding:8px 1px;min-width:0;}
.home-specials #openLabyrinth .tiny,.home-specials #openBeasts .tiny{display:none;}

/* 眷獣録 蝕変篇 */
.beast-filter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.beast-filter .btn{font-size:11px;padding:10px 2px;min-width:0;white-space:normal;overflow-wrap:anywhere}
.beast-lore{line-height:1.9;white-space:normal}
.beast-card .beast-creature>div:last-child{min-width:0;overflow-wrap:anywhere}
.beast-book-row>div:last-child{min-width:0;overflow-wrap:anywhere}

/* v0.9.52 眷獣録：闘技場HP・ターン送り */
.beast-hp-unit{background:rgba(105,87,129,.12);border:1px solid rgba(157,127,178,.25);border-radius:9px;padding:10px;margin-top:8px;min-width:0}
.beast-hp-unit .split{gap:8px;align-items:center}.beast-hp-unit b{overflow-wrap:anywhere;font-size:13px}
.beast-hp-track{height:10px;background:#312d35;border-radius:999px;overflow:hidden;margin-top:8px}
.beast-hp-fill{height:100%;background:#61b99c;border-radius:999px;transition:width .2s ease}
.beast-hp-fill.beast-enemy-hp{background:#c45b70}
.beast-hp-num{text-align:right;margin-top:5px;font-variant-numeric:tabular-nums}
.beast-ko{opacity:.65}.beast-replay-controls{display:flex;align-items:center;justify-content:space-between;gap:8px}.beast-replay-controls .btn{min-width:0;flex:1}

/* v0.9.53 — 個体プロフィール */
.beast-profile-open,.beast-name-open{border:0;padding:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}
.beast-profile-open{flex:0 0 52px;display:block;min-width:52px}.beast-profile-open .beast-symbol{display:grid}
.beast-name-open{color:inherit;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:#816895;text-underline-offset:4px}
.beast-profile-open:focus-visible,.beast-name-open:focus-visible{outline:2px solid #dabcf7;outline-offset:3px;border-radius:8px}
.beast-profile-head{display:flex;align-items:center;gap:14px}.beast-profile-head h2{font-size:20px;margin:0 0 7px;overflow-wrap:anywhere}
.beast-profile-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.beast-profile-stats>div{min-width:0;padding:10px 12px;border:1px solid #78618b66;border-radius:9px;background:#30273844;display:flex;align-items:center;justify-content:space-between;gap:7px}
.beast-profile-stats span{font-size:12px;color:#b4a9bb}.beast-profile-stats b{font-variant-numeric:tabular-nums;font-size:16px}
.beast-profile-skill{padding:12px;border:1px solid #78618b66;border-radius:9px;background:#30273844}
.beast-profile .double{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.beast-profile .double button{min-width:0;white-space:normal}

/* v0.9.54 眷獣録・技枠編集 */
.beast-move-slot{padding:12px;border:1px solid #645173;border-radius:10px;background:rgba(85,64,107,.13)}
.beast-move-select{display:block;box-sizing:border-box;width:100%;margin-top:8px;min-height:42px;padding:8px;border:1px solid #9175aa;border-radius:8px;background:#241d2e;color:#f0e7f6;font:inherit;font-size:14px;}
.beast-move-select:focus-visible{outline:2px solid #e1bdf4;outline-offset:2px}
