*{box-sizing:border-box}:root{--bg:#0f0c17;--panel:#1a1525;--panel-light:#231d33;--border:#2e2640;--text:#d4cbe0;--text-dim:#8b7fa0;--accent:#c9a227;--accent-glow:#c9a22740;--danger:#e46b6b;--success:#6ee7b7;--radius:12px;color:var(--text);background:var(--bg);font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif}body{background:radial-gradient(circle at 20% 10%, #581c8726 0%, transparent 40%), radial-gradient(circle at 80% 90%, #c9a22714 0%, transparent 40%), var(--bg);min-height:100vh;margin:0}#root{box-sizing:border-box;max-width:1100px;height:100vh;margin:0 auto;padding:20px;overflow:hidden}.game{flex-direction:column;gap:16px;height:100%;display:flex}.game-header{text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:linear-gradient(180deg, var(--panel) 0%, #1a1525cc 100%);padding:20px;box-shadow:0 8px 32px #0000004d}.game-header h1{background:linear-gradient(90deg, #fff, var(--accent), #fff);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;margin:0 0 16px;font-size:2.4rem;animation:4s linear infinite shimmer}@keyframes shimmer{to{background-position:200%}}.header-stats{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.badge{border:1px solid var(--border);background:var(--panel-light);color:var(--text);border-radius:999px;padding:6px 14px;font-size:.95rem;font-weight:500}.game-main{flex:1;grid-template-columns:1fr 320px;align-items:stretch;gap:16px;min-height:0;display:grid;overflow:hidden}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 4px 20px #00000040}.panel h2{color:var(--accent);border-bottom:1px solid var(--border);margin:0 0 16px;padding-bottom:10px;font-size:1.15rem}.log-panel{flex-direction:column;height:100%;min-height:0;display:flex}.log-list{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:8px;display:flex;overflow-y:auto}.log-list::-webkit-scrollbar{width:6px}.log-list::-webkit-scrollbar-track{background:var(--panel-light);border-radius:3px}.log-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.log-entry{background:var(--panel-light);border-left:3px solid #0000;border-radius:8px;margin:0;padding:10px 14px;font-size:.95rem;line-height:1.5;transition:border-color .2s}.log-entry:hover{border-left-color:var(--accent)}.stats-panel{height:100%;padding-right:6px;overflow-y:auto}.stat-row{border-bottom:1px solid var(--border);justify-content:space-between;padding:10px 0;font-size:.95rem;display:flex}.stat-row .danger{color:var(--danger);font-weight:700}.progress-bar{background:var(--panel-light);border:1px solid var(--border);border-radius:5px;height:10px;margin:12px 0 20px;overflow:hidden}.progress-fill{border-radius:5px;height:100%;transition:width .4s;box-shadow:0 0 10px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px;display:grid}.stat-item{background:var(--panel-light);text-align:center;border:1px solid var(--border);border-radius:8px;padding:12px 8px}.stat-label{color:var(--text-dim);margin-bottom:4px;font-size:.8rem;display:block}.stat-value{color:var(--accent);font-size:1.25rem;font-weight:700;display:block}.cultivation-path-row .cultivation-path{color:var(--accent);font-weight:600}.realm-desc{color:var(--text-dim);text-align:center;background:var(--panel-light);border-radius:8px;padding:10px;font-size:.85rem;font-style:italic}.spirit-roots-block{background:var(--panel-light);border:1px solid var(--border);border-radius:8px;margin-top:12px;padding:12px}.spirit-roots-title{color:var(--text-dim);text-align:center;margin-bottom:10px;font-size:.8rem}.spirit-roots-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.spirit-root-item{background:#ffffff08;border-radius:6px;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;transition:all .15s;display:flex}.spirit-root-item.active{box-shadow:0 0 0 1px var(--accent);background:#c9a2271f}.spirit-root-name{font-size:.85rem;font-weight:600}.spirit-root-bar-wrap{background:#ffffff1a;border-radius:2px;width:100%;height:4px;overflow:hidden}.spirit-root-bar{border-radius:2px;height:100%;transition:width .3s}.spirit-root-value{color:var(--text);font-size:.8rem;font-weight:700}.game-actions{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:center;gap:14px;padding:16px;display:flex}.action-btn{border:1px solid var(--border);background:var(--panel-light);color:var(--text);cursor:pointer;border-radius:10px;min-width:100px;padding:12px 24px;font-size:1rem;font-weight:600;transition:all .15s}.action-btn:hover:not(:disabled){border-color:var(--accent);box-shadow:0 4px 16px var(--accent-glow);background:#2d2540;transform:translateY(-2px)}.action-btn:active:not(:disabled){transform:translateY(0)}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn.primary{background:linear-gradient(135deg, var(--accent), #a8831a);color:#1a1525;border-color:var(--accent)}.action-btn.primary:hover:not(:disabled){box-shadow:0 4px 24px #c9a22759}.action-btn.highlight{border-color:var(--accent);color:var(--accent)}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000bf;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--accent);border-radius:var(--radius);text-align:center;width:100%;max-width:420px;box-shadow:0 0 60px var(--accent-glow);padding:32px}.modal h2{color:var(--accent);margin:0 0 16px;font-size:1.8rem}.modal p{margin:0 0 12px;font-size:1.05rem;line-height:1.6}.modal-detail{color:var(--text-dim);margin-bottom:24px!important;font-size:.9rem!important}.choice-modal{text-align:left;max-width:520px}.choice-modal h2{text-align:center}.event-text{color:var(--text);background:var(--panel-light);border-left:3px solid var(--accent);border-radius:8px;padding:14px;font-size:1.1rem;line-height:1.7;margin-bottom:20px!important}.choice-list{flex-direction:column;gap:12px;display:flex}.choice-btn{text-align:left;background:var(--panel-light);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:14px 16px;transition:all .15s;display:flex}.choice-btn:hover:not(:disabled){border-color:var(--accent);box-shadow:0 4px 16px var(--accent-glow);background:#2d2540;transform:translate(4px)}.choice-btn:disabled{opacity:.4;cursor:not-allowed}.choice-title{color:var(--accent);font-size:1rem;font-weight:600}.choice-desc{color:var(--text-dim);font-size:.85rem}.backpack-badge{background:var(--panel-light);cursor:pointer;transition:all .15s}.backpack-badge:hover{border-color:var(--accent);color:var(--accent)}.spirit-stone-badge{color:#67e8f9;background:#67e8f914;border-color:#67e8f966;font-weight:600}.shop-badge{background:var(--panel-light);cursor:pointer;transition:all .15s}.shop-badge:hover{color:#f472b6;border-color:#f472b6}.save-badge{background:var(--panel-light);cursor:pointer;transition:all .15s}.save-badge:hover{border-color:var(--success);color:var(--success)}.save-menu{text-align:left;max-width:460px;padding:28px}.save-menu .backpack-header h2{font-size:1.5rem}.save-desc{color:var(--text-dim);line-height:1.6;margin-bottom:16px!important}.save-info{color:var(--success);font-size:.95rem;margin-bottom:20px!important}.save-info span{margin-left:6px;font-weight:600}.save-actions{flex-direction:column;gap:12px;display:flex}.save-actions .action-btn{justify-content:center;width:100%}.settings-badge{background:var(--panel-light);cursor:pointer;transition:all .15s}.settings-badge:hover{color:#a78bfa;border-color:#a78bfa}.settings-modal{text-align:left;max-width:480px;padding:28px}.settings-section h3{color:var(--accent);margin:0 0 16px;font-size:1.15rem}.setting-row{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;display:flex}.setting-row span{color:var(--text);font-size:.95rem}.setting-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);cursor:pointer}.setting-row input[type=number],.setting-row input[type=password],.setting-row select{background:var(--panel-light);border:1px solid var(--border);color:var(--text);border-radius:8px;min-width:160px;padding:8px 12px;font-size:.95rem}.setting-row input[type=number]{text-align:right;min-width:80px}.setting-key{flex-direction:column;align-items:flex-start;gap:8px}.setting-key input{width:100%}.settings-hint{color:var(--text-dim);font-size:.85rem;line-height:1.5;margin:12px 0 0!important}.settings-hint a{color:var(--accent)}.sect-badge{color:#a78bfa;background:#a78bfa1a;border-color:#a78bfa66;font-weight:600}.sect-modal{text-align:left;max-width:560px;padding:28px}.sect-desc{color:var(--text-dim);line-height:1.6;margin-bottom:16px!important}.sect-status{margin-bottom:20px}.sect-rank{color:var(--accent);font-weight:600}.sect-actions{margin-bottom:24px}.sect-actions .action-btn{width:100%}.sect-tasks-title{color:var(--accent);border-bottom:1px solid var(--border);margin:0 0 14px;padding-bottom:10px;font-size:1.1rem}.sect-task-list{flex-direction:column;gap:12px;max-height:320px;padding-right:6px;display:flex;overflow-y:auto}.sect-alignment{margin-bottom:16px}.alignment-badge{border:1px solid;border-radius:999px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-block}.alignment-righteous{color:#4ade80;background:#4ade801a;border-color:#4ade8066}.alignment-demonic{color:#f87171;background:#f871711a;border-color:#f8717166}.alignment-neutral{color:#fbbf24;background:#fbbf241a;border-color:#fbbf2466}.sect-task-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.sect-task-hall{color:#60a5fa;white-space:nowrap;background:#60a5fa1a;border:1px solid #60a5fa4d;border-radius:6px;padding:2px 8px;font-size:.75rem}.sect-task-card{background:var(--panel-light);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;padding:16px;display:flex}.sect-task-name{color:var(--accent);font-size:1.05rem;font-weight:700}.sect-task-desc{color:var(--text-dim);font-size:.9rem}.sect-task-stats{color:var(--text);flex-wrap:wrap;gap:10px;font-size:.85rem;display:flex}.sect-risk{color:var(--danger);font-weight:600}.sect-task-card .action-btn{align-self:flex-start;margin-top:8px}.ai-loading-overlay{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f0c17d9;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.ai-loading-spinner{font-size:4rem;animation:2s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ai-loading-overlay p{color:var(--accent);letter-spacing:2px;font-size:1.3rem;font-weight:600}.shop-wallet{text-align:center;color:#67e8f9;background:#67e8f914;border:1px solid #67e8f933;border-radius:8px;margin:0 0 18px;padding:10px;font-size:1.1rem}.backpack-modal{text-align:left;background:linear-gradient(180deg, var(--panel) 0%, #151221 100%);max-width:640px;padding:28px}.backpack-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:22px;padding-bottom:12px;display:flex}.backpack-header h2{margin:0;font-size:1.6rem}.close-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;width:32px;height:32px;font-size:1rem}.close-btn:hover{border-color:var(--danger);color:var(--danger)}.empty-backpack{text-align:center;color:#a59bb8;padding:40px;font-size:1.05rem}.item-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;max-height:420px;padding-right:6px;display:grid;overflow-y:auto}.item-card{border:1px solid var(--border);background:linear-gradient(#2a2339 0%,#1f1a2e 100%);border-radius:10px;flex-direction:column;gap:8px;padding:16px;transition:transform .15s,border-color .15s;display:flex;box-shadow:0 2px 8px #0003}.item-card:hover{border-color:var(--accent);transform:translateY(-2px)}.item-top{justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.item-type{letter-spacing:.5px;text-shadow:0 0 8px;font-weight:700}.item-count{color:var(--text);background:#ffffff14;border-radius:999px;padding:2px 8px;font-weight:600}.item-name{color:#f3f0f7;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;line-height:1.3;display:flex}.item-grade{background:#ffffff14;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600}.item-desc{color:#b8afc9;flex:1;font-size:.85rem;line-height:1.45}.use-item-btn{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:#c9a2271a;border-radius:6px;margin-top:10px;padding:10px 12px;font-size:.9rem;font-weight:600;transition:all .15s}.use-item-btn:hover:not(:disabled){background:var(--accent);color:#1a1525;box-shadow:0 0 16px var(--accent-glow)}.use-item-btn:disabled{opacity:.4;cursor:not-allowed;border-color:var(--border);color:var(--text-dim)}.toast{border:1px solid var(--accent);color:var(--accent);box-shadow:0 8px 32px var(--accent-glow);z-index:200;text-align:center;background:linear-gradient(135deg,#2a2339,#1f1a2e);border-radius:10px;max-width:90%;padding:14px 24px;font-size:1rem;font-weight:600;line-height:1.5;animation:.25s toastIn,.25s 1.95s forwards toastOut;position:fixed;bottom:110px;left:50%;transform:translate(-50%)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-10px)}}.title-badge{color:#f472b6;background:#f472b61a;border-color:#f472b666;font-weight:600}.title-section{border-bottom:1px solid var(--border);margin-bottom:20px;padding-bottom:20px}.title-card{position:relative}.title-card.equipped{border-color:#f472b6;box-shadow:0 0 16px #f472b640}.title-equipped-tag{color:#f472b6;background:#f472b633;border:1px solid #f472b666;border-radius:999px;padding:2px 8px;font-size:.7rem;position:absolute;top:8px;right:8px}.achievement-badge{color:#fbbf24;background:#fbbf241a;border-color:#fbbf2466;font-weight:600}.achievement-modal{text-align:left;flex-direction:column;max-width:640px;max-height:80vh;padding:28px;display:flex}.achievement-summary{text-align:center;color:var(--accent);background:#c9a22714;border:1px solid #c9a22733;border-radius:8px;margin-bottom:20px;padding:10px;font-size:1.1rem}.achievement-summary span{font-weight:700}.achievement-list{flex-direction:column;gap:20px;padding-right:6px;display:flex;overflow-y:auto}.achievement-category-title{border-bottom:1px solid var(--border);margin:0 0 12px;padding-bottom:8px;font-size:1.1rem}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.achievement-card{background:var(--panel-light);border:1px solid var(--border);text-align:center;opacity:.55;filter:grayscale(.85);border-radius:10px;flex-direction:column;gap:6px;padding:16px;transition:all .2s;display:flex}.achievement-card.unlocked{opacity:1;filter:none;border-color:var(--accent);box-shadow:0 0 16px var(--accent-glow)}.achievement-icon{margin-bottom:4px;font-size:2rem;line-height:1}.achievement-title{color:var(--text);font-size:1rem;font-weight:700}.achievement-desc{color:var(--text-dim);flex:1;font-size:.85rem;line-height:1.4}.achievement-card.locked .achievement-desc{font-style:italic}.achievement-progress-wrap{margin-top:4px}.achievement-progress-bar{background:var(--panel);border:1px solid var(--border);border-radius:3px;height:6px;overflow:hidden}.achievement-progress-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.achievement-progress-text{color:var(--text-dim);margin-top:4px;font-size:.75rem}.npc-badge:hover{color:#38bdf8;border-color:#38bdf8}.npc-modal{flex-direction:column;width:90vw;max-width:640px;max-height:80vh;display:flex}.npc-empty{text-align:center;color:var(--text-dim);padding:32px 16px;font-style:italic}.npc-summary{color:var(--text-dim);text-align:center;margin-bottom:16px;font-size:.9rem}.npc-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;padding-right:4px;display:grid;overflow-y:auto}.npc-card{background:var(--panel-light);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:14px;transition:all .15s;display:flex}.npc-card:hover{border-color:var(--accent);box-shadow:0 4px 16px var(--accent-glow);transform:translateY(-2px)}.npc-card-top{justify-content:space-between;align-items:center;display:flex}.npc-icon{font-size:1.6rem}.npc-category{font-size:.75rem;font-weight:600}.npc-name{color:var(--text);font-size:1.1rem;font-weight:700}.npc-identity{color:var(--text-dim);font-size:.8rem}.npc-relation-row{justify-content:space-between;align-items:center;margin-top:6px;display:flex}.npc-relation-label{font-size:.85rem;font-weight:600}.npc-relation-value{color:var(--text-dim);font-size:.85rem}.npc-relation-bar-wrap{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.npc-relation-bar{border-radius:3px;height:100%;transition:width .3s}.npc-meta{color:var(--text-dim);margin-top:4px;font-size:.75rem}.npc-memo{color:var(--text-dim);border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-size:.8rem;font-style:italic;line-height:1.4}@media (width<=800px){#root{height:auto;min-height:100dvh;padding:12px;overflow:visible}.game{gap:12px;height:auto;min-height:100dvh}.game-main{flex:none;grid-template-columns:1fr;gap:12px;min-height:auto;overflow:visible}.log-panel{height:auto;min-height:320px;max-height:60vh}.stats-panel{height:auto;overflow:visible}.game-header h1{font-size:1.6rem}.action-btn{flex:40%}.toast{font-size:.9rem;bottom:90px}.achievement-modal{max-height:85vh;padding:20px}.achievement-grid{grid-template-columns:repeat(2,1fr)}.achievement-icon{font-size:1.6rem}.achievement-title{font-size:.95rem}}.mobile-tabs{display:none}@media (width<=640px){#root{padding:12px}.game{gap:12px}.panel{padding:16px}.mobile-tabs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);gap:10px;padding:4px;display:flex}.mobile-tabs button{border:1px solid var(--border);background:var(--panel-light);color:var(--text);cursor:pointer;border-radius:8px;flex:1;padding:10px 12px;font-size:.95rem;font-weight:600;transition:all .15s}.mobile-tabs button.active{background:var(--accent);color:#1a1525;border-color:var(--accent)}.game-main{display:block}.game-main>.panel{display:none}.game-main>.panel.is-active{display:block}.game-main>.panel.is-active.log-panel{display:flex}.game-header{padding:14px}.game-header h1{margin-bottom:12px;font-size:1.5rem}.header-stats{justify-content:space-between;gap:8px}.header-info,.header-actions{flex-wrap:wrap;justify-content:center;gap:6px;width:100%;display:flex}.header-stats .btn-text{display:none}.badge{padding:5px 10px;font-size:.85rem}.title-badge,.sect-badge{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.game-actions{grid-template-columns:repeat(2,1fr);gap:10px;padding:12px;display:grid}.action-btn{width:100%;min-width:unset;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-height:48px;padding:12px;font-size:1rem}.log-panel{min-height:300px;max-height:55vh}.log-list{gap:6px;padding-right:4px}.log-list::-webkit-scrollbar{width:4px}.log-entry{word-break:break-word;overflow-wrap:anywhere;padding:10px 12px;font-size:.95rem;line-height:1.55}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat-item{padding:10px 6px}.stat-value{font-size:1.1rem}.stat-label{font-size:.75rem}.spirit-roots-grid{grid-template-columns:repeat(3,1fr);gap:6px}.spirit-root-item{padding:6px 4px}.spirit-root-name{font-size:.8rem}.stat-row{padding:8px 0;font-size:.9rem}.realm-desc{padding:8px;font-size:.8rem}.modal-overlay{padding:12px}.modal{max-width:calc(100vw - 24px);padding:24px}.choice-modal{max-width:calc(100vw - 24px)}.event-text{padding:12px;font-size:1rem}.choice-btn{min-height:48px;padding:12px 14px}.item-grid{grid-template-columns:1fr;gap:10px;max-height:55vh}.npc-grid{grid-template-columns:1fr;gap:10px}.achievement-grid{grid-template-columns:1fr}.achievement-card,.npc-card,.item-card,.sect-task-card{padding:12px}.settings-modal,.save-menu,.backpack-modal,.sect-modal,.achievement-modal,.npc-modal{max-width:calc(100vw - 24px);padding:20px}.setting-row{flex-direction:column;align-items:stretch;gap:6px}.setting-row input[type=number],.setting-row input[type=password],.setting-row select,.setting-row input[type=text]{width:100%;min-width:unset;font-size:16px}.setting-key{align-items:stretch}.backpack-header h2{font-size:1.4rem}.toast{padding:12px 18px;font-size:.9rem;bottom:90px}}@media (width<=400px){#root{padding:8px}.game{gap:8px}.panel,.game-header{padding:12px}.game-header h1{font-size:1.35rem}.header-stats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.header-info,.header-actions{display:contents}.badge{min-width:0;padding:4px 8px;font-size:.8rem}.game-actions{gap:12px;padding:10px}.action-btn{min-height:52px;padding:10px;font-size:.95rem}.log-panel{min-height:260px}.log-entry{padding:8px 10px;font-size:.9rem;line-height:1.6}.spirit-roots-grid{grid-template-columns:repeat(2,1fr)}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:12px 12px 0 0;width:100%;max-width:none;max-height:92dvh;margin:0;padding:20px 16px;overflow-y:auto}.choice-modal,.settings-modal,.save-menu,.backpack-modal,.sect-modal,.achievement-modal,.npc-modal{border-radius:12px 12px 0 0;width:100%;max-width:none;max-height:92dvh}.achievement-modal{max-height:92dvh}.npc-modal{width:100%;max-height:92dvh}.toast{font-size:.85rem;bottom:86px}}@media (hover:none){.action-btn:hover:not(:disabled),.choice-btn:hover:not(:disabled){box-shadow:none;transform:none}}
