.build-page{max-width:1040px;margin:0 auto}.build-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);align-items:stretch}@media(max-width:900px){.build-grid{grid-template-columns:1fr}}.build-card{display:flex;flex-direction:column;background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4) var(--space-6) var(--space-6)}.build-card h2{margin:0 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle);color:var(--accent-gold);font-size:var(--text-lg);letter-spacing:.02em}.build-card-divide{margin-top:var(--space-6)!important}.build-card-hint{margin-top:0;color:var(--text-secondary);font-size:var(--text-sm)}.build-card-actions{display:flex;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap}.import-code{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);word-break:break-all;resize:vertical}.import-submit{background:linear-gradient(180deg,var(--accent-gold-bright),var(--accent-gold));border-color:var(--accent-gold);color:#1a150a;font-weight:600;padding:var(--space-2) var(--space-6)}.import-submit:hover{background:var(--accent-gold-bright);border-color:var(--accent-gold-bright)}.import-summary{margin-bottom:0;color:var(--color-positive)}.unsupported-block{margin-top:var(--space-4);background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.unsupported-block summary{cursor:pointer;color:var(--text-secondary)}.unsupported-block ul{margin:var(--space-2) 0 0;padding-left:var(--space-4);color:var(--text-muted);font-size:var(--text-sm)}.character-form{display:flex;gap:var(--space-3);flex-wrap:wrap}.character-form label{display:flex;flex:1 1 9em;flex-direction:column;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm)}.character-form .character-level{flex:0 1 6em}.character-form select,.character-form input{min-width:0}.build-card--notes .notes-editor{flex:1;min-height:10em;resize:vertical;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.55}.notes-preview{margin-top:var(--space-3);background:var(--surface-page);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.notes-preview-title{display:block;color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-1)}.notes-preview-body{margin:0;white-space:pre-wrap;word-break:break-word;font-size:var(--text-sm);line-height:1.55}.skills-hint{color:var(--text-secondary);font-size:var(--text-sm)}.skill-groups{display:flex;flex-direction:column;gap:2px;max-width:920px}.skill-group{text-align:left;background:var(--surface-card);border:1px solid var(--border-subtle);border-left:3px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.skill-group:hover{border-color:var(--accent-gold-dim)}.skill-group.is-main{border-left-color:var(--accent-gold)}.skill-group.is-disabled{opacity:.55}.skill-group-header{display:flex;align-items:center;gap:var(--space-2)}.skill-main-toggle{flex:none;background:none;border:none;padding:0 2px;color:var(--text-muted);cursor:pointer}.skill-main-toggle:hover{background:none;color:var(--accent-gold-bright)}.skill-main-toggle.is-on{color:var(--accent-gold)}.skill-group-name{color:var(--rarity-gem);font-weight:600;white-space:nowrap}.skill-group-slot{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase}.skill-group-main{color:var(--accent-gold-bright);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em}.skill-group-off{color:var(--color-negative);font-size:var(--text-xs)}.skill-gems{list-style:none;margin:var(--space-2) 0 0;padding:0;font-size:var(--text-sm)}.skill-gem{display:flex;justify-content:space-between;color:var(--text-secondary);padding:1px 0}.skill-gem.is-active{color:var(--text-primary)}.gem-level{color:var(--text-muted);font-variant-numeric:tabular-nums}.skills-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-3)}.skills-toolbar input[list]{min-width:280px}.skill-group-title{flex:1;min-width:0;background:transparent;border:none;padding:0;text-align:left;display:flex;gap:var(--space-2);align-items:center;cursor:pointer}.skill-group-title:hover{background:transparent}.skill-group-supports{color:var(--text-muted);font-size:var(--text-xs);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-group-toggle{margin-left:auto;color:var(--text-muted);font-size:var(--text-xs);display:flex;align-items:center;gap:var(--space-1)}.skill-remove{padding:0 var(--space-2);color:var(--text-muted)}.skill-remove:hover{color:var(--color-negative);border-color:var(--color-negative)}.gem-name{flex:1}.gem-controls{display:flex;gap:var(--space-1);align-items:center}.gem-controls input[type=number]{width:56px}.skill-group input[list]{width:100%;margin-top:var(--space-2);font-size:var(--text-xs)}.gem-picker{position:relative;min-width:280px;flex:1;max-width:420px}.gem-picker input{width:100%}.gem-picker-panel{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;background:var(--surface-raised);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080;overflow:hidden}.gem-picker-chips{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--border-subtle)}.gem-chip{font-size:var(--text-xs);padding:0 var(--space-2);background:transparent}.gem-chip.is-active{border-color:var(--accent-gold);background:var(--surface-card)}.gem-picker-count{margin-left:auto;color:var(--text-muted);font-size:var(--text-xs)}.gem-picker-list{list-style:none;margin:0;padding:var(--space-1);max-height:280px;overflow-y:auto}.gem-picker-item{display:flex;align-items:baseline;gap:var(--space-2);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm)}.gem-picker-item.is-highlight{background:var(--surface-card);outline:1px solid var(--accent-gold-dim)}.gem-dot{width:8px;height:8px;border-radius:50%;flex:none;align-self:center}.gem-primary{color:var(--text-primary)}.gem-secondary{color:var(--text-muted);font-size:var(--text-xs)}.gem-picker-empty{color:var(--text-muted);padding:var(--space-2);font-size:var(--text-sm)}.skill-group-picker{margin-top:var(--space-2)}.skill-sets{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-3) 0;background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3)}.skill-sets-title{color:var(--accent-gold-dim);font-weight:600;font-size:var(--text-sm)}.skill-set-chip{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 var(--space-2);font-size:var(--text-sm)}.skill-set-chip button{font-size:var(--text-xs);padding:0 var(--space-1)}.gem-lineage-badge{color:var(--accent-gold-bright, var(--accent-gold-dim));border:1px solid var(--accent-gold-dim);border-radius:var(--radius-sm);font-size:var(--text-xs);padding:0 var(--space-1);flex:none}.gem-optimizer{margin-top:var(--space-2);border-top:1px dashed var(--border-subtle);padding-top:var(--space-2)}.gem-optimizer-toggle{display:inline-flex;align-items:center;gap:var(--space-1);background:none;border:none;color:var(--accent-gold-dim);font-size:var(--text-sm);cursor:pointer;padding:0}.gem-optimizer-toggle[aria-expanded=true] .row-caret{transform:rotate(90deg)}.gem-optimizer-body{margin-top:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.opt-candidates{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.opt-chip{display:inline-flex;align-items:center;gap:var(--space-1);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 var(--space-2);font-size:var(--text-sm)}.opt-row{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.opt-row label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted)}.opt-row input[type=number]{width:5.5rem}.opt-error{color:var(--color-negative, var(--color-life));font-size:var(--text-sm);margin:0}.opt-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.opt-table td{padding:var(--space-1) var(--space-2);border-top:1px solid var(--border-subtle)}.opt-table .opt-score{text-align:right;font-variant-numeric:tabular-nums}.opt-table .opt-delta{text-align:right;color:var(--color-positive);font-variant-numeric:tabular-nums}.opt-baseline td{color:var(--text-muted)}.opt-table .is-infeasible td{opacity:.55}.opt-infeasible{color:var(--text-muted);font-size:var(--text-xs)}.opt-progress{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.opt-progress progress{flex:1;max-width:20rem}.opt-error-cell{color:var(--text-muted);font-size:var(--text-xs)}.opt-node-choice{cursor:pointer;gap:var(--space-1)}.opt-node-delta{color:var(--color-positive);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.tree-optimizer{margin:var(--space-2) 0}.stat-sidebar{width:var(--sidebar-width);flex:none;overflow-y:auto;background:var(--surface-panel);border-right:1px solid var(--border-subtle);padding:var(--space-3)}.stat-section+.stat-section{margin-top:var(--space-4)}.stat-section h3{margin:0 0 var(--space-1);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-gold-dim);border-bottom:1px solid transparent;border-image:linear-gradient(90deg,var(--accent-gold-dim),var(--border-subtle) 70%) 1;padding-bottom:var(--space-1)}.stat-section dl{margin:0}.stat-row{display:flex;justify-content:space-between;gap:var(--space-2);padding:1px 0;font-size:var(--text-sm)}.stat-row dt{color:var(--text-secondary)}.stat-row dd{margin:0;font-variant-numeric:tabular-nums}button.stat-row--link{width:100%;background:none;border:none;text-align:inherit;font:inherit;color:inherit;cursor:pointer;border-radius:var(--radius-sm)}button.stat-row--link:hover{background:#d8b36a14}button.stat-row--link:hover dt{color:var(--accent-gold-bright)}.main-skill-select{width:100%;margin:var(--space-1) 0 var(--space-2);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);background:#ffffff0a;color:inherit;border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.main-skill-select:focus-visible{outline:2px solid var(--accent-gold)}.main-skill-empty{margin:0;font-size:var(--text-xs);color:var(--text-secondary)}.damage-share{margin-top:var(--space-2)}.damage-share-title{font-size:var(--text-xs);color:var(--text-secondary);margin-bottom:var(--space-1)}.damage-share-row+.damage-share-row{margin-top:var(--space-1)}.damage-share-head{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs)}.damage-share-value{color:var(--text-secondary);font-variant-numeric:tabular-nums}.damage-share-track{height:4px;margin-top:2px;border-radius:2px;background:#ffffff12;overflow:hidden}.damage-share-fill{height:100%;border-radius:2px}@media(max-width:768px){.stat-sidebar{width:100%;max-height:40vh;border-right:none;border-bottom:1px solid var(--border-subtle)}}.diff-list{display:inline-flex;gap:var(--space-2);flex-wrap:wrap;align-items:baseline}.diff-entry{font-size:var(--text-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.diff-pos{color:var(--color-positive)}.diff-neg{color:var(--color-negative)}.diff-none,.diff-more{color:var(--text-muted);font-size:var(--text-xs)}.panel-heading{color:var(--accent-gold);margin-top:0}.panel-subheading{color:var(--accent-gold-dim);margin-top:var(--space-6)}.item-slot{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.item-name{margin:var(--space-1) 0;overflow-wrap:anywhere}.rarity-normal{--rarity-c: var(--rarity-normal)}.rarity-magic{--rarity-c: var(--rarity-magic)}.rarity-rare{--rarity-c: var(--rarity-rare)}.rarity-unique{--rarity-c: var(--rarity-unique)}.item-name{color:var(--rarity-c, var(--text-primary))}.item-lines{font-size:var(--text-sm);color:var(--text-secondary);overflow-wrap:anywhere}.item-line{padding:1px 0}.item-line--explicit{color:var(--rarity-magic)}.item-line--implicit{color:#7f8fd0}.item-line--enchant{color:#b4b4ff}.item-line--rune{color:#8cf}.item-line--base{color:var(--text-secondary)}.item-tier{margin-left:var(--space-1);padding:0 4px;border-radius:3px;font-size:.72em;vertical-align:1px;border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:default}.item-tier--top{color:#e7b45a;border-color:#e7b45a66}.item-line-sep{height:1px;margin:var(--space-1) 0;background:var(--border-subtle)}.items-hint{color:var(--text-secondary);font-size:var(--text-sm)}.item-slot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.item-actions{display:flex;gap:var(--space-1)}.item-actions button{font-size:var(--text-xs);padding:0 var(--space-2)}.item-empty-hint{color:var(--text-muted);font-size:var(--text-sm);margin:var(--space-2) 0 0}.item-editor textarea{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);margin-top:var(--space-2);resize:vertical}.item-editor-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.paper-doll{display:grid;grid-template-areas:"weapon1 .      helmet .     weapon2" "weapon1 amulet body   ring1 weapon2" "weapon1 ring2  body   .     weapon2" ".       gloves belt   boots .";grid-template-columns:1.2fr 1fr 1.2fr 1fr 1.2fr;grid-auto-rows:minmax(84px,auto);gap:var(--space-2);max-width:920px;margin:0 auto var(--space-4);padding:var(--space-3);background:radial-gradient(ellipse at center,#15171c 0%,var(--surface-page) 80%);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.doll-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);text-align:center;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-2);min-width:0;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.doll-slot:not(.doll-slot-empty){border-color:color-mix(in srgb,var(--rarity-c, var(--border-strong)) 45%,var(--border-strong));background:linear-gradient(170deg,color-mix(in srgb,var(--rarity-c, var(--surface-card)) 9%,var(--surface-card)),var(--surface-card) 65%)}.doll-slot:hover{border-color:var(--accent-gold-dim);box-shadow:0 0 12px #d8b36a1f}.doll-slot:active{transform:none}.doll-slot-empty{border-style:dashed;opacity:.7}.doll-slot.is-selected{border-color:var(--accent-gold);box-shadow:0 0 0 1px var(--accent-gold-dim)}.doll-slot-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.doll-item-name{font-size:var(--text-sm);overflow-wrap:anywhere}.doll-empty{color:var(--text-muted);font-size:var(--text-xs)}.utility-row{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2);max-width:920px;margin:0 auto var(--space-4)}@media(max-width:768px){.utility-row{grid-template-columns:repeat(2,1fr)}}.item-detail{max-width:920px;margin:0 auto var(--space-4);background:var(--surface-card);border:1px solid var(--border-subtle);border-left:3px solid var(--rarity-c, var(--border-subtle));border-radius:var(--radius-md);padding:var(--space-3)}.item-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2)}@media(max-width:768px){.paper-doll{grid-template-areas:"helmet  helmet" "weapon1 weapon2" "body    amulet" "body    ring1" "gloves  ring2" "belt    boots";grid-template-columns:1fr 1fr}}.rune-editor{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.rune-editor-title{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}.socket-count-controls{display:inline-flex;gap:2px}.socket-count-controls button{min-width:1.8em;padding:.1em .4em}.library-toolbar{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.library-search{min-width:220px}.library-slot-filter{display:inline-flex;align-items:center;gap:.4em;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer}.library-list{display:flex;flex-direction:column;gap:2px;max-width:920px}.library-row{background:var(--surface-card);border:1px solid var(--border-subtle);border-left:3px solid var(--rarity-c, var(--border-subtle));border-radius:var(--radius-sm)}.library-row:hover{border-color:var(--accent-gold-dim);border-left-color:var(--rarity-c, var(--accent-gold-dim))}.library-row-head{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-2)}.library-row-toggle{flex:1;min-width:0;display:flex;align-items:center;gap:var(--space-2);background:none;border:none;padding:0;text-align:left;cursor:pointer}.library-row-toggle:hover{background:none}.library-row-toggle .item-name{margin:0;font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-row-slot{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.library-row-body{padding:var(--space-1) var(--space-3) var(--space-2);border-top:1px solid var(--border-subtle)}.library-row-body>.item-name{display:none}.library-diff{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.trade-controls{align-items:flex-end}.trade-budget{display:inline-flex;gap:var(--space-1)}.trade-budget input{width:6em}.trade-slots{list-style:none;margin:var(--space-3) 0 0;padding:0;display:flex;flex-direction:column}.trade-slot-row{padding:var(--space-2);border-bottom:1px solid var(--surface-card)}.trade-slot-row:hover{background:var(--surface-card)}.trade-slot-main{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.trade-slot-name{flex:0 0 6.5em;color:var(--accent-gold-dim);font-size:var(--text-sm)}.trade-slot-item{flex:1 1 14em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-slot-item.is-empty{color:var(--text-muted)}.trade-details{margin-top:var(--space-2)}.trade-details summary{cursor:pointer;color:var(--text-muted);font-size:var(--text-sm)}.calcs-hint{color:var(--text-secondary);font-size:var(--text-sm)}.breakdown-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-6)}.calcs-search{width:100%;max-width:420px;margin-bottom:var(--space-4)}.calcs-section-title{margin:0 0 var(--space-2);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-gold-dim);border-bottom:1px solid var(--border-subtle);padding-bottom:var(--space-1)}.calcs-section .breakdown-list{margin-bottom:var(--space-4)}.breakdown-item{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.breakdown-item.is-open{border-color:var(--accent-gold-dim)}.breakdown-toggle{width:100%;display:flex;align-items:baseline;gap:var(--space-3);background:transparent;border:none;padding:var(--space-2) var(--space-3)}.breakdown-name{font-weight:600;color:var(--text-primary)}.breakdown-value{color:var(--accent-gold-bright);font-variant-numeric:tabular-nums}.breakdown-count{margin-left:auto;color:var(--text-muted);font-size:var(--text-xs)}.breakdown-detail{padding:0 var(--space-3) var(--space-3)}.breakdown-summary{display:flex;gap:var(--space-4);color:var(--text-secondary);font-size:var(--text-sm);padding-bottom:var(--space-2)}.breakdown-scroll{overflow-x:auto}.breakdown-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.breakdown-table th{text-align:left;color:var(--text-muted);font-weight:500;border-bottom:1px solid var(--border-strong);padding:var(--space-1) var(--space-2)}.breakdown-table td{border-bottom:1px solid var(--border-subtle);padding:var(--space-1) var(--space-2);vertical-align:top}.mod-type{font-family:var(--font-mono);font-size:var(--text-xs)}.mod-type-base{color:var(--color-es)}.mod-type-inc{color:var(--color-positive)}.mod-type-more{color:var(--accent-gold-bright)}.mod-type-flag,.mod-type-list,.mod-type-override{color:var(--text-muted)}.mod-value{font-variant-numeric:tabular-nums}.mod-text{color:var(--text-secondary)}.mod-origin{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.attribution-view h3{color:var(--accent-gold-dim)}.attribution-table .attribution-baseline td{color:var(--accent-gold-bright);font-weight:600}.attribution-kind{display:inline-block;font-size:var(--text-xs);color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:0 var(--space-1);margin-right:var(--space-1)}.delta-pos{color:var(--color-positive)}.delta-neg{color:var(--color-negative)}.delta-pct{color:var(--text-muted);font-size:var(--text-xs)}.fulldps-row{cursor:pointer}.fulldps-row:hover td{background:#d8b36a14}.fulldps-row.is-main td{color:var(--accent-gold-bright)}.tree-panel{height:100%;display:flex;flex-direction:column}.tree-toolbar{display:flex;align-items:center;gap:var(--space-3)}.tree-toolbar .panel-heading{margin:0;flex:1}.tree-count{color:var(--text-secondary);font-size:var(--text-sm)}.tree-canvas{position:relative;flex:1;min-height:480px;margin-top:var(--space-3);background:radial-gradient(ellipse at center,#14161b 0%,var(--surface-page) 75%);border:1px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.tree-canvas svg{width:100%;height:100%;display:block;cursor:grab;touch-action:none;will-change:transform}.tree-canvas svg.is-dragging .tree-nodes circle{pointer-events:none}.tree-canvas svg:active{cursor:grabbing}.edge{stroke:#2b2f38;stroke-width:12}.edge-active{stroke:var(--accent-gold-dim);stroke-width:20}.node{fill:#3a3f4a;stroke:#14161b;stroke-width:6}.node-notable{fill:#4a5061}.node-keystone{fill:#55425a}.node-jewel_socket{fill:#2f4a44}.node-allocated{fill:var(--accent-gold);stroke:var(--accent-gold-bright)}.node:hover{stroke:var(--accent-gold-bright)}.node-search-hit{stroke:#4fd8e0;stroke-width:24}.tree-search{display:flex;align-items:center;gap:var(--space-1)}.tree-search input{width:160px}.tree-heat{display:flex;align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:var(--text-sm)}.tree-heat-depth{display:inline-flex;align-items:center;gap:var(--space-1)}.tree-heat-depth input{width:3.5em}.tree-search-count{color:#4fd8e0;font-size:var(--text-xs);white-space:nowrap}.tree-tooltip{position:absolute;max-width:320px;background:var(--surface-raised);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);pointer-events:none;font-size:var(--text-sm)}.tooltip-name{display:block;color:var(--accent-gold-bright);margin-bottom:var(--space-1)}.tooltip-stat{color:var(--color-mana)}.tree-hint{color:var(--text-muted);font-size:var(--text-xs)}.node{cursor:pointer}.tree-asc-picker{display:flex;align-items:center;gap:var(--space-1);color:var(--text-secondary);font-size:var(--text-sm)}.asc-backdrop{fill:#d8b36a0d;stroke:var(--accent-gold-dim);stroke-width:16;stroke-dasharray:60 40}.node-asc{fill:#4d4436;stroke:var(--accent-gold-dim)}.node-asc.node-allocated{fill:var(--accent-gold);stroke:var(--accent-gold-bright)}.attr-picker{position:absolute;z-index:30;display:flex;align-items:center;gap:var(--space-1);background:var(--surface-raised);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);box-shadow:0 8px 24px #00000080}.attr-picker-title{color:var(--text-muted);font-size:var(--text-xs);margin-right:var(--space-1)}.attr-choice.attr-str{color:var(--color-life)}.attr-choice.attr-dex{color:var(--color-positive)}.attr-choice.attr-int{color:var(--color-mana)}.attr-cancel{padding:0 var(--space-1);color:var(--text-muted)}.asc-hint{position:absolute;top:var(--space-3);left:50%;transform:translate(-50%);background:var(--surface-raised);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);color:var(--text-secondary);font-size:var(--text-sm);pointer-events:none}.attr-distribute{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-1) var(--space-3);margin-top:var(--space-2)}.attr-distribute-title{color:var(--accent-gold-dim);font-weight:600;font-size:var(--text-sm)}.attr-count{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm)}.attr-count input{width:64px}.attr-count.attr-str{color:var(--color-life)}.attr-count.attr-dex{color:var(--color-positive)}.attr-count.attr-int{color:var(--color-mana)}.attr-distribute-rest{color:var(--text-muted);font-size:var(--text-sm)}.attr-picker kbd{margin-left:var(--space-1);font-size:var(--text-xs);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:3px;padding:0 4px}.attr-quest{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-secondary);border-left:1px solid var(--border-subtle);padding-left:var(--space-3)}.jewel-editor{margin-top:var(--space-2);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.jewel-editor textarea{width:100%;font-family:var(--font-mono);font-size:var(--text-xs);margin-top:var(--space-2);resize:vertical}.node-jewel-filled{fill:var(--rarity-gem);stroke:var(--accent-gold-bright)}.tooltip-benefit{margin-top:var(--space-2);padding-top:var(--space-1);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:2px}.tooltip-benefit-title{color:var(--text-muted);font-size:var(--text-xs)}.jewel-library{display:flex;gap:var(--space-2);flex-wrap:wrap;margin:var(--space-2) 0 0}.jewel-lib-chip{font-size:var(--text-xs);color:var(--rarity-gem)}.config-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.config-hint{color:var(--text-secondary);font-size:var(--text-sm)}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-2)}.config-item{display:flex;align-items:center;gap:var(--space-2);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.config-item.is-overridden{border-color:var(--accent-gold-dim)}.config-key{flex:1;font-size:var(--text-sm);color:var(--text-secondary);overflow-wrap:anywhere}.config-key--raw{font-family:var(--font-mono);font-size:var(--text-xs)}.config-value{width:110px}.config-extra-mods{width:100%;max-width:640px;font-family:var(--font-mono);font-size:var(--text-xs);resize:vertical}.config-reset{padding:0 var(--space-1)}.config-add{display:flex;gap:var(--space-2);flex-wrap:wrap}.config-toolbar{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-4)}.config-toolbar .config-row{display:flex;align-items:center;gap:var(--space-2);margin-bottom:0;color:var(--text-secondary)}.config-search{flex:1;min-width:240px}.config-section{margin-bottom:var(--space-2)}.config-section-header{width:100%;display:flex;justify-content:space-between;align-items:baseline;background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);color:var(--accent-gold-dim);font-weight:600}.config-section-header[aria-expanded=true]{color:var(--accent-gold);border-color:var(--accent-gold-dim)}.config-section-count{color:var(--text-muted);font-size:var(--text-xs)}.config-section .config-grid{margin-top:var(--space-2)}.app-shell{display:flex;flex-direction:column;height:100%}.boot-screen{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--text-secondary)}.boot-screen h1{color:var(--accent-gold);letter-spacing:.35em;margin:0}.boot-error{max-width:640px;white-space:pre-wrap;color:var(--color-negative);background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4)}.topbar{position:relative;height:var(--topbar-height);display:flex;align-items:center;gap:var(--space-4);padding:0 var(--space-4);background:linear-gradient(180deg,#1a1d23 0%,var(--surface-panel) 100%)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--accent-gold-dim) 0%,var(--border-subtle) 45%,var(--border-subtle) 100%)}.topbar-brand{font-weight:700;letter-spacing:.25em;font-size:var(--text-lg);background:linear-gradient(180deg,var(--accent-gold-bright),var(--accent-gold));-webkit-background-clip:text;background-clip:text;color:transparent}.topbar-beta{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;color:var(--accent-gold);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-sm);padding:0 var(--space-1);line-height:1.5;-webkit-user-select:none;user-select:none}.beta-banner{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--accent-gold-bright);background:color-mix(in srgb,var(--accent-gold) 10%,transparent);border-bottom:1px solid var(--accent-gold-dim);padding:var(--space-1) var(--space-4)}.beta-banner span{flex:1;min-width:0}.beta-banner-dismiss{background:transparent;border:1px solid var(--accent-gold-dim);border-radius:var(--radius-sm);color:var(--accent-gold);padding:0 var(--space-2);white-space:nowrap}.topbar-tabs{display:flex;gap:var(--space-1);flex:1;min-width:0;overflow-x:auto;align-self:stretch;align-items:stretch}.topbar-tab{position:relative;background:transparent;border:none;border-radius:0;color:var(--text-secondary);padding:0 var(--space-3);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out)}.topbar-tab:after{content:"";position:absolute;left:var(--space-2);right:var(--space-2);bottom:0;height:2px;background:var(--accent-gold);transform:scaleX(0);transition:transform var(--duration-fast) var(--ease-out)}.topbar-tab:hover{color:var(--text-primary);background:transparent}.topbar-tab:active{transform:none}.topbar-tab.is-active{color:var(--accent-gold-bright)}.topbar-tab.is-active:after{transform:scaleX(1)}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.topbar-busy{color:var(--accent-gold);animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.topbar-character{color:var(--text-secondary);font-size:var(--text-sm);white-space:nowrap}.topbar-lang{font-size:var(--text-xs)}.app-body{flex:1;display:flex;min-height:0}.app-main{flex:1;overflow:auto;padding:var(--space-4)}.empty-hint{color:var(--text-muted);padding:var(--space-6);text-align:center}.calc-error{color:var(--color-negative);background:color-mix(in srgb,var(--color-negative) 12%,transparent);border:1px solid var(--color-negative);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);white-space:pre-wrap}@media(max-width:768px){.app-body{flex-direction:column}}:root{--surface-page: #0c0d10;--surface-panel: #16181d;--surface-card: #1e2128;--surface-raised: #262a33;--border-subtle: #2c313b;--border-strong: #3d4450;--text-primary: #e8e6e0;--text-secondary: #a9a696;--text-muted: #6d6b60;--accent-gold: #d8b36a;--accent-gold-bright: #f0cf8b;--accent-gold-dim: #8a7440;--color-life: #e05030;--color-mana: #4070e0;--color-es: #8bb8e8;--color-fire: #e06030;--color-cold: #62a8e8;--color-lightning: #e8d44d;--color-chaos: #c05ac0;--color-physical: #c79d93;--color-defence: #a8c0a0;--color-positive: #7fbf5f;--color-negative: #e05050;--rarity-normal: #c8c8c8;--rarity-magic: #8888ff;--rarity-rare: #ffff77;--rarity-unique: #af6025;--rarity-gem: #1ba29b;--font-ui: "Segoe UI", "PingFang SC", "Noto Sans", system-ui, sans-serif;--font-mono: "SF Mono", "Cascadia Code", Consolas, monospace;--text-xs: .72rem;--text-sm: .82rem;--text-base: .92rem;--text-lg: 1.08rem;--text-xl: 1.35rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--radius-sm: 4px;--radius-md: 6px;--duration-fast: .12s;--ease-out: cubic-bezier(.16, 1, .3, 1);--sidebar-width: 264px;--topbar-height: 46px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--surface-page);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--text-base);line-height:1.45;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}button:hover{border-color:var(--accent-gold-dim);background:var(--surface-card)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default;transform:none}::selection{background:color-mix(in srgb,var(--accent-gold) 35%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}*::-webkit-scrollbar-thumb:hover{background:var(--accent-gold-dim)}*::-webkit-scrollbar-track{background:transparent}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-gold);outline-offset:1px}input,textarea,select{font:inherit;color:var(--text-primary);background:var(--surface-page);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}code,pre{font-family:var(--font-mono);font-size:var(--text-sm)}.app-select{position:relative;display:inline-block;max-width:18em;min-width:0}.app-select-trigger{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-2);width:100%;max-width:18em;background:var(--surface-page);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);text-align:left}.app-select-trigger:hover{background:var(--surface-page);border-color:var(--accent-gold-dim)}.app-select-value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.app-select-caret{flex:none;color:var(--text-muted);font-size:var(--text-xs)}.app-select-panel{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:100%;max-width:320px;max-height:280px;overflow-y:auto;list-style:none;margin:0;padding:var(--space-1);background:var(--surface-raised);border:1px solid var(--accent-gold-dim);border-radius:var(--radius-md);box-shadow:0 8px 24px #00000080}.app-select-option{padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-select-hint{display:block;color:var(--text-muted);font-size:var(--text-xs);white-space:normal}.app-select-option.is-highlight{background:var(--surface-card);outline:1px solid var(--accent-gold-dim)}.app-select-option.is-selected{color:var(--accent-gold-bright)}.app-select-group{color:var(--text-muted);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-1) var(--space-2) 0}.granted-badge{margin-left:.5em;padding:.1em .5em;border:1px solid var(--border-subtle, rgba(255, 255, 255, .15));border-radius:3px;color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.fulldps-row.is-granted td:first-child{color:var(--text-muted)}.note-block{margin:var(--space-2) 0 0;padding:var(--space-1) var(--space-3);border-left:2px solid var(--accent-gold-dim);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:color-mix(in srgb,var(--accent-gold) 6%,transparent);color:var(--text-secondary);font-size:var(--text-sm);white-space:pre-wrap;cursor:text}.note-block-label{display:block;color:var(--accent-gold-dim);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em}.note-add{margin-top:var(--space-2);border-style:dashed;border-color:var(--border-subtle);color:var(--text-muted);font-size:var(--text-sm);background:transparent}.note-add:hover{color:var(--accent-gold)}.note-editor-input{display:block;width:100%;margin-top:var(--space-2);resize:vertical;font-size:var(--text-sm)}.note-dot{display:inline-block;flex:none;width:6px;height:6px;margin-left:var(--space-1);border-radius:50%;background:var(--accent-gold)}.row-caret{display:inline-block;flex:none;color:var(--text-muted);font-size:var(--text-xs);transition:transform var(--duration-fast) var(--ease-out)}[aria-expanded=true]>.row-caret{transform:rotate(90deg)}@keyframes panel-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.app-main>section{animation:panel-in .16s var(--ease-out)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
