:root{color-scheme:dark;--bg:#0d1929;--surface:#112137;--line:#253a51;--text:#dce8f7;--muted:#91a9c4;--gold:#f1cd79;--green:#81dfb3;--red:#ff8d82}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:15px/1.6 "Segoe UI","Microsoft YaHei",sans-serif;color:var(--text)}button,input,select{font:inherit}button{border:1px solid #33536f;background:#14273d;color:var(--text);padding:9px 15px;border-radius:4px;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:#203951}button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:not-allowed}header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--line);gap:20px}h1{font-size:23px;font-weight:500;margin:0}h1 span{font:500 30px Georgia,serif;margin-right:12px}h2{font-size:20px;font-weight:500;margin:0 0 18px}.actions{display:flex;gap:10px}#notice{padding:8px 24px;background:#102136;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}#notice.error{color:var(--red)}.layout{display:grid;grid-template-columns:180px minmax(400px,1fr) 280px;min-height:720px}.roster{border-right:1px solid var(--line);padding:25px 14px}.roster button{display:block;width:100%;text-align:left;padding:16px 14px;margin:0 0 12px;background:transparent}.roster button strong{display:block;font-size:18px;font-weight:500}.roster button.selected{border-left:3px solid var(--gold);background:#172737}.muted{color:var(--muted);font-size:13px}.workspace{padding:0 24px 20px;min-width:0}.modes{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:0 0 23px}.modes button{border:0;border-radius:0;background:none;padding:17px 12px;color:var(--muted);border-bottom:3px solid transparent}.modes button.active{border-bottom-color:var(--gold);color:var(--gold)}.plot-head h2{font-size:27px;margin-bottom:2px}.plot-head p{margin-top:2px}.mode-note{padding:8px 0;min-height:35px;color:#a9bed4;font-size:13px}#tree-wrap{height:440px;overflow:hidden;position:relative}#tree{width:100%;height:100%;touch-action:none;cursor:grab}#tree:active{cursor:grabbing}#tree circle{cursor:pointer}#tree circle:hover{stroke:#fff;stroke-width:3}.plot-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center}.plot-toolbar>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.plot-toolbar button{font-size:13px;padding:7px 9px}.selected{border-color:var(--gold)}.legend{display:flex;gap:12px;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:11px;height:11px;border-radius:50%;display:inline-block;border:2px solid}.keystone{border-color:var(--gold)!important}.added{border-color:var(--green)!important}.removed{border-color:var(--red)!important}.dim{border-color:#506278!important}.inspector{border-left:1px solid var(--line);padding:25px 22px}.inspector h2:not(:first-child){margin-top:28px}.inspector .row{padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.inspector .row span{display:block;font-size:12px;color:var(--muted)}.inspector strong{font-weight:500}.positive{color:var(--green)}.negative{color:var(--red)}.equipment{border-top:1px solid var(--line);padding:24px}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head label{font-size:13px;color:var(--muted)}select{margin-left:10px;border:1px solid var(--line);background:var(--surface);color:var(--text);padding:6px 12px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{color:var(--muted);font-weight:400}th,td{border-bottom:1px solid var(--line);padding:13px 14px}th:first-child,td:first-child{padding-left:0}td:nth-child(4){min-width:320px}td:last-child{min-width:160px}footer{padding:15px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}#toast{color:var(--gold);margin-left:20px}#calculator,#rules-panel{padding:24px 0;border-top:1px solid var(--line);margin-top:20px}.calc-inputs{display:flex;flex-wrap:wrap;gap:15px;align-items:end}.calc-inputs label{display:flex;flex-direction:column;font-size:13px;color:var(--muted)}input{width:160px;background:var(--surface);color:var(--text);border:1px solid var(--line);padding:7px}#thorns-chart{width:100%;max-height:260px}#rules-panel p{max-width:700px}#node-detail{min-height:20px;margin:4px 0 16px}@media(min-width:1600px){#tree-wrap{height:520px}.layout{grid-template-columns:210px minmax(400px,1fr) 320px}}@media(max-width:1050px){.layout{grid-template-columns:150px minmax(0,1fr)}.inspector{grid-column:1/-1;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.inspector h2:not(:first-child){margin-top:0}.inspector>p{grid-column:1/-1}header{height:auto;min-height:76px;flex-wrap:wrap;padding:15px 20px}.actions{flex-wrap:wrap}}@media(max-width:600px){header{padding:14px 16px}h1{font-size:18px}h1 span{font-size:25px}.actions button{padding:7px 9px;font-size:13px}.layout{display:block}.roster{padding:16px;border-right:0;border-bottom:1px solid var(--line)}.roster h2{margin-bottom:10px}#heroes{display:flex;gap:8px;overflow:auto}.roster button{min-width:110px;margin:0;padding:8px}.roster button strong{font-size:15px}#save-meta{margin-bottom:0}.workspace{padding:0 16px 18px}.modes{gap:4px;justify-content:space-between}.modes button{font-size:13px;padding:13px 6px}.plot-head h2{font-size:23px}#tree-wrap{height:350px}.inspector{display:block;padding:20px 16px}.inspector h2{margin-top:24px!important}.equipment{padding:20px 16px}.legend{flex-wrap:wrap}#notice{padding:8px 16px}footer{padding:15px 16px}}
td,#save-meta,#version-detail{white-space:pre-line}td{vertical-align:top}td:nth-child(1){min-width:170px}td:nth-child(7){min-width:180px}
#route-panel{margin-top:20px;border-top:1px solid var(--line);padding-top:12px}summary{cursor:pointer;color:var(--gold)}#route-list{max-height:320px;overflow:auto;padding-left:34px}#route-list button{border:0;background:none;text-align:left;padding:4px 8px;font-size:13px;color:var(--muted)}
.skill-scroll{overflow:auto}#skill-board{display:grid;grid-template-columns:repeat(4,minmax(175px,1fr));gap:12px;min-width:740px;padding-bottom:12px}.skill-branch h3{font-size:16px;color:var(--muted);font-weight:500}.skill-branch-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 7px}.skill-card{padding:10px 6px;min-height:85px;font-size:12px;border-color:#293c51;background:#102035;color:#71869e}.skill-card strong,.skill-card span,.skill-card small{display:block}.skill-card strong{font-weight:500}.skill-card.learned{border-color:var(--green);color:var(--text)}.skill-card.equipped{border-color:var(--gold);background:#2b2b26}.tier-1{grid-column:1/3;grid-row:1}.tier-2{grid-column:1;grid-row:2}.tier-3{grid-column:2;grid-row:2}.tier-4{grid-column:1/3;grid-row:3}.tier-5{grid-column:1/3;grid-row:4}#skill-panel{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}[hidden]{display:none!important}
.modes{flex-wrap:wrap}.gear-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.gear-controls label{font-size:13px}.gear-controls input{width:auto;margin-right:8px}.gear-picker{display:block}.gear-picker select{max-width:100%;width:calc(100% - 80px)}#gear-panel{padding-top:20px;margin-top:20px;border-top:1px solid var(--line)}#gear-panel th,#gear-panel td{min-width:85px;white-space:normal}#gear-panel th:first-child,#gear-panel td:first-child{min-width:100px}#gear-summary{line-height:1.9}.gear-identity{color:var(--gold);overflow-wrap:anywhere;font-size:14px}.gear-effect{border-bottom:1px solid var(--line);padding:9px 0;overflow-wrap:anywhere;font-size:13px}#gear-export{margin-top:18px}

.save-guide{margin:12px 20px;padding:16px 20px;border:1px solid #bd9139;border-radius:7px;background:#edce89;color:#39230e}.save-guide h2{font-size:18px;margin:0 0 8px}.save-guide p{margin:8px 0;font-size:13px}.save-guide-steps{display:grid;grid-template-columns:1fr 1fr;gap:22px}.save-guide-steps>div{min-width:0}.save-path-row{display:flex;gap:8px;flex-wrap:wrap}.save-path-row input{flex:1;min-width:220px;font-size:13px}.save-guide[hidden]{display:none}@media(max-width:760px){.save-guide-steps{grid-template-columns:1fr}.save-guide{margin:10px}}
