:root{color-scheme:dark;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0d1114;color:#e6e4dd}
.ui-art-icon{display:inline-block;box-sizing:content-box;flex:none;object-fit:contain;image-rendering:pixelated;vertical-align:middle;background:#101720;border-radius:3px}
.ui-art-label,.ui-art-button,.item-art-row{display:flex;align-items:center;gap:8px}
.ui-art-label>span,.item-art-row>span{min-width:0;overflow-wrap:anywhere}
.item-art-row{min-height:58px;text-align:left}
.empty-slot-art{width:48px;display:flex;justify-content:center;opacity:.3}
.item-art-row>.ui-art-icon{border:1px solid #55615e}
.Rare.item-art-row>.ui-art-icon{border-color:#bda05e}
.Unique.item-art-row>.ui-art-icon{border-color:#d48a48}
.Magic.item-art-row>.ui-art-icon{border-color:#648db7}
#detail>.ui-art-icon:first-child{float:right;margin:0 0 8px 10px;border:1px solid #756246}
.asc-selector-btn>.ui-art-icon{float:left;margin-right:9px}
.asc-node-card h4{margin-top:4px;min-height:48px}
#skill-flask,#quick-sell-btn,.currency-pill,#wallet{display:inline-flex;align-items:center;gap:6px}
.skills { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:8px 0; }
.skills .skill-btn {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  background:#1a252b;
  border:1px solid #3d5059;
  border-radius:6px;
  font-size:12px;
  user-select:none;
  cursor:pointer;
  transition:all 0.12s ease;
}
.skills .skill-btn:hover { border-color:#e0a458; background:#23323a; }
.skills .skill-btn .slot-key-tag {
  background:#10171a;
  color:#f39c12;
  font-weight:bold;
  font-size:11px;
  padding:2px 6px;
  border-radius:4px;
  border:1px solid #7a5015;
}
.skills .skill-btn .skill-name { color:#e6e4dd; font-weight:600; }
.skills .skill-btn .cd-timer {
  color:#ff7675;
  font-weight:bold;
  font-size:11px;
  background:#2e1515;
  padding:2px 6px;
  border-radius:3px;
  border:1px solid #782d2d;
}
.skills .skill-btn .no-res-label {
  color:#fab1a0;
  font-size:11px;
  background:#2e2015;
  padding:2px 5px;
  border-radius:3px;
  border:1px solid #78452d;
}
.skills .skill-btn .ready-label { color:#55efc4; font-size:11px; font-weight:500; }
.skills .skill-btn.on-cooldown {
  opacity: 0.65;
  background:#151c20;
  border-color:#4a3535;
}
.skills .skill-btn.no-resource { border-color:#634320; }
.skills .skill-btn.ready { border-color:#386754; }
.skills .flask-btn { background:#3d1a1a; border-color:#822b2b; }
.skills .flask-btn.ready-flask { background:#522222; border-color:#b53f3f; color:#ff9999; }
.skills .flask-btn.empty-flask { opacity:0.5; border-color:#444; }
.branch-node>.ui-art-label{font-size:inherit}
*{box-sizing:border-box}
body{margin:0}
main{max-width:1440px;margin:auto;padding:18px}
header,.toolbar,.skills{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
header{justify-content:space-between;margin-bottom:12px;border-bottom:1px solid #232f36;padding-bottom:12px}
h1{margin:4px 0 0;letter-spacing:3px;color:#edbc78;font-size:24px}
h1 span{font-size:16px;letter-spacing:1px;color:#a3b4b6;font-weight:normal}
small,.hint,footer{color:#9daeb1;font-size:12px}
button{border:1px solid #526065;border-radius:5px;padding:8px 12px;background:#243137;color:#f3ede0;cursor:pointer;font-weight:500;transition:all .15s}
button:hover{border-color:#e2b370;background:#34464d}
button:disabled{opacity:.45;cursor:not-allowed}
#start{background:#72502b}
canvas{display:block;width:100%;background:#172427;border:1px solid #526065;border-radius:7px;margin:12px 0;image-rendering:pixelated}
.panels{display:grid;grid-template-columns:1fr 1.2fr 1.2fr;gap:16px;margin-top:16px}
article{background:#161f24;border:1px solid #2b3941;border-radius:7px;padding:14px;min-width:0}
h2{font-size:15px;margin:0 0 12px;color:#edbc78}
#inventory{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:420px;overflow:auto;margin-top:12px}
.gear{text-align:left;font-size:12px;line-height:1.4}
.Normal{color:#d2d2c9}
.Magic{color:#88bfff}
.Rare{color:#efcf73}
.Unique{color:#f09754}
#stats,#detail{line-height:1.8;font-size:13px}
#equipment{display:grid;gap:5px;margin-top:12px}
#actions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
#log{max-height:150px;overflow:auto;font-size:12px;color:#aebcba}
#log p{margin:4px 0}
footer{margin-top:24px;border-top:1px solid #232f36;padding-top:12px}
#status{font-size:13px;color:#f2c98f}

.item-tag{font-size:11px;font-weight:600;color:#79c0ff;background:#122133;border:1px solid #23456b;padding:2px 7px;border-radius:4px;display:inline-block;letter-spacing:0.3px}
.forge-slot{color:#88c057;font-size:13px;font-weight:bold;margin:6px 0}
.unique-power{background:rgba(240,151,84,0.12);border-left:3px solid #f09754;padding:8px 10px;margin:10px 0;border-radius:4px;font-size:13px;line-height:1.5}
#training button{padding:5px 8px;font-size:11px;background:#1e2a30;border-color:#3d525c;color:#e8d8b5}
#training button:hover{background:#2e424c;border-color:#e2b370}
.stat-section{background:#11191d;border:1px solid #23333c;border-radius:5px;padding:8px 10px;margin-bottom:8px}
.stat-group-title{font-size:11px;font-weight:bold;color:#f2c98f;letter-spacing:1px;margin-bottom:5px;border-bottom:1px solid #202d33;padding-bottom:3px}
.stat-row{display:flex;justify-content:space-between;font-size:12px;line-height:1.6;color:#c0cfd1}
.stat-row strong{color:#ffffff}
.stat-highlight{background:rgba(237,188,120,0.12);padding:2px 4px;border-radius:3px;margin-top:3px}
.stat-compare-box{background:#11191d;border:1px solid #344751;border-radius:5px;padding:8px 10px;margin:8px 0}
.diff-pos{display:flex;justify-content:space-between;font-size:12px;color:#88c057;font-weight:600}
.diff-neg{display:flex;justify-content:space-between;font-size:12px;color:#e05a47;font-weight:600}

/* TAB NAVIGATION */
.main-tabs{display:flex;gap:8px;margin-bottom:16px;border-bottom:2px solid #27373f;padding-bottom:6px;flex-wrap:wrap}
.tab-btn{padding:10px 18px;font-size:13px;font-weight:bold;background:#141c21;border:1px solid #2c3c45;border-bottom:none;border-radius:6px 6px 0 0;color:#a5b5b8;cursor:pointer}
.tab-btn:hover{background:#1e2930;color:#edbc78;border-color:#3e525d}
.tab-btn.active{background:#72502b;border-color:#edbc78 #edbc78 #72502b #edbc78;color:#ffd885;box-shadow:0 -2px 10px rgba(237,188,120,0.2)}
.tab-pane{display:none}
.tab-pane.active{display:block}

/* CURRENCY PILL */
.currency-pill{background:#151e24;border:1px solid #364852;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:bold;color:#ffd369}

/* PASSIVE TREE */
.tree-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#141d22;border:1px solid #27373f;border-radius:6px;padding:10px 14px;margin-bottom:10px}
.tree-points-badge{font-size:13px;color:#f3ede0;background:#1e282e;border:1px solid #3d505a;padding:6px 12px;border-radius:5px}
.tree-points-badge strong{color:#edbc78;font-size:16px}
.tree-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.tree-controls button{padding:6px 10px;font-size:12px}
.tree-search-box input{background:#0f1518;border:1px solid #3d505a;border-radius:4px;padding:7px 12px;color:#f3ede0;font-size:12px;min-width:240px}
.tree-search-box input:focus{border-color:#edbc78;outline:none}
.sector-jumps{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:10px;padding:6px 10px;background:#10171a;border-radius:5px}
.sector-btn{padding:4px 9px;font-size:11px;background:#1a2328;border-color:#2c3a41;color:#b2c3c6}
.sector-btn:hover{background:#2a3a42;border-color:#edbc78;color:#fff}
.tree-container{position:relative;width:100%;overflow:hidden;border:1px solid #384953;border-radius:8px;background:#090d10;box-shadow:inset 0 0 40px rgba(0,0,0,0.8)}
#tree-canvas{display:block;width:100%;height:650px;background:radial-gradient(circle at center, #111a20 0%, #080c0f 85%);margin:0;cursor:grab}
#tree-canvas:active{cursor:grabbing}

.tree-tooltip{position:absolute;pointer-events:none;background:rgba(14,20,24,0.96);border:1px solid #edbc78;border-radius:6px;padding:10px 14px;max-width:320px;font-size:12px;line-height:1.5;box-shadow:0 8px 24px rgba(0,0,0,0.7);z-index:99}
.tt-name{font-size:14px;font-weight:bold;color:#f7df94;margin-bottom:4px}
.tt-type{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:bold;text-transform:uppercase;margin-bottom:6px}
.tt-type.keystone{background:#7a3c10;color:#ffbe76;border:1px solid #d35400}
.tt-type.notable{background:#543810;color:#f39c12;border:1px solid #e67e22}
.tt-type.minor{background:#1d303a;color:#74b9ff;border:1px solid #0984e3}
.tt-type.origin{background:#143f36;color:#55efc4;border:1px solid #00b894}
.tt-type.mastery{background:#4a206a;color:#d8b4fe;border:1px solid #a855f7}
.tt-type.gateway{background:#103b4a;color:#7dd3fc;border:1px solid #0284c7}
.tt-desc{color:#d2dcd9;margin-bottom:8px}
.tt-status{font-weight:bold;margin-top:6px;padding-top:6px;border-top:1px solid #23343d}

.tree-summary-row{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;margin-top:14px}
.tree-summary-card{background:#141d22;border:1px solid #293841;border-radius:6px;padding:14px}
.tree-summary-card h3{margin:0 0 10px;font-size:14px;color:#edbc78}
.tree-stats-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:6px}
.tree-stat-pill{background:#10171a;border:1px solid #25343d;border-radius:4px;padding:6px 9px;font-size:12px;color:#b8c8ca;display:flex;justify-content:space-between}
.tree-stat-pill strong{color:#88c057}

/* ASCENDANCY */
.asc-header-bar{display:flex;justify-content:space-between;align-items:center;background:#151e24;border:1px solid #27373f;border-radius:6px;padding:12px 16px;margin-bottom:14px;flex-wrap:wrap;gap:12px}
.asc-tree-selector{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:8px;margin-bottom:14px}
.asc-selector-btn{padding:10px 12px;text-align:left;background:#131b20;border:1px solid #2c3a42;border-radius:6px;color:#c1d1d4;cursor:pointer;font-size:12px}
.asc-selector-btn:hover{background:#1e2930;border-color:#edbc78}
.asc-selector-btn.active{background:#412816;border-color:#f09754;color:#ffd885;box-shadow:0 0 10px rgba(240,151,84,0.3)}
.asc-tree-info{background:#182229;border:1px solid #33444f;border-radius:6px;padding:14px;margin-bottom:14px}
.asc-nodes-grid{display:block}
.asc-tree-scroll{overflow:auto;border:1px solid #384953;border-radius:8px;background:radial-gradient(circle at 42% 48%,#172127 0%,#0a0f12 72%);box-shadow:inset 0 0 40px rgba(0,0,0,.65)}
.asc-tree-graph{position:relative;min-width:920px;background-image:linear-gradient(rgba(82,111,123,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(82,111,123,.08) 1px,transparent 1px);background-size:28px 28px}
.asc-tree-graph svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.asc-link{fill:none;stroke:#35434a;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.asc-link.preview{stroke:#52656b;stroke-width:2;stroke-dasharray:5 7;opacity:.78}
.asc-link.reachable{stroke:#687e58}
.asc-link.active{stroke:#f09754;stroke-width:5;filter:drop-shadow(0 0 4px rgba(240,151,84,.65))}
.asc-tree-node{position:absolute;width:176px;height:92px;padding:7px 8px;text-align:left;background:#12191d;border:1px solid #33434b;border-radius:7px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:19px 38px 17px;gap:0 6px;align-items:center;box-shadow:0 4px 12px rgba(0,0,0,.38)}
.asc-tree-node:hover{border-color:#edbc78;transform:translateY(-2px)}
.asc-tree-node.selected{outline:2px solid #f3d17e;outline-offset:2px}
.asc-tree-node.allocated{border-color:#f09754;background:#2a1b15;box-shadow:0 0 15px rgba(240,151,84,.25)}
.asc-tree-node.available{border-color:#88c057;background:#152117}
.asc-tree-node .tt-type{grid-column:1 / -1;justify-self:start;margin:0;padding:1px 4px;font-size:9px}
.asc-tree-node-icon{grid-column:1;grid-row:2 / 4}.asc-tree-node-icon .ui-art-icon{background:transparent;border-radius:0}
.asc-tree-node strong{grid-column:2;grid-row:2;font-size:11px;line-height:1.2;color:#f3ede0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.asc-tree-node small{grid-column:2;grid-row:3;font-size:9px;color:#aebcba;white-space:nowrap}
.asc-node-detail{margin-top:12px;background:#121a1f;border:1px solid #344650;border-radius:7px;padding:12px;min-height:106px}
.asc-node-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.asc-node-detail h4{margin:4px 0 0;font-size:14px;color:#f3ede0}.asc-node-detail p{font-size:12px;color:#b8c8ca;margin:8px 0;line-height:1.5}.asc-detail-cost{font-size:12px;color:#ffd369;white-space:nowrap}.asc-detail-action{padding:6px 12px;font-size:12px}.asc-detail-action.refund{background:#5a2323;border-color:#b43e3e}.asc-detail-action.alloc{background:#24442a;border-color:#5ba369}
.asc-node-card{background:#12191d;border:1px solid #25333b;border-radius:6px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;transition:border-color .15s}
.asc-node-card.allocated{border-color:#f09754;background:rgba(240,151,84,0.06);box-shadow:inset 0 0 12px rgba(240,151,84,0.15)}
.asc-node-card.available{border-color:#88c057}
.asc-node-card h4{margin:0 0 6px;font-size:13px;color:#f3ede0}
.asc-node-card p{font-size:12px;color:#a9babd;margin:0 0 10px;line-height:1.5}
.asc-btn-row{display:flex;justify-content:space-between;align-items:center;margin-top:auto}

/* ACTIVE SKILLS */
.skills-header-bar{background:#151e24;border:1px solid #27373f;border-radius:6px;padding:12px 16px;margin-bottom:14px}
.current-loadout-panel{background:#141c22;border:1px solid #2a3a43;border-radius:6px;padding:14px;margin-bottom:16px}
.current-loadout-panel h3{margin:0 0 12px;font-size:14px;color:#edbc78}
.loadout-slots-row{display:grid;grid-template-columns:repeat(5, 1fr);gap:10px}
.loadout-slot-card{background:#10171a;border:1px solid #344853;border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:6px}
.slot-key-badge{font-size:11px;font-weight:bold;color:#f39c12;background:#2d2112;border:1px solid #63431d;border-radius:4px;padding:2px 8px;display:inline-block;width:fit-content}
.skill-filter-container{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.skill-class-filter,.skill-archetype-filter{display:flex;gap:8px;flex-wrap:wrap}
.skill-filter-btn,.skill-arch-btn{padding:7px 12px;font-size:12px;background:#161f24;border:1px solid #28373f;color:#b2c3c6;border-radius:4px;cursor:pointer;transition:all .15s}
.skill-filter-btn.active,.skill-arch-btn.active{background:#72502b;border-color:#edbc78;color:#ffd885}
.skills-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(360px, 1fr));gap:16px}
.skill-card{background:#141d22;border:1px solid #283942;border-radius:8px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .15s, border-color .15s;position:relative}
.skill-card:hover{border-color:#edbc78;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.4)}
.skill-card.class-berserker{border-top:3px solid #e74c3c}
.skill-card.class-iron_warden{border-top:3px solid #3498db}
.skill-card.class-shadow_blade{border-top:3px solid #9b59b6}
.skill-card.class-hunter{border-top:3px solid #2ecc71}
.skill-card.class-ash_mage{border-top:3px solid #e67e22}
.skill-card.class-lantern_keeper{border-top:3px solid #f1c40f}
.skill-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:4px}
.skill-title-group h4{margin:0;font-size:15px;color:#f3ede0;display:flex;align-items:center;gap:6px}
.skill-sub-en{font-size:11px;color:#859da3;margin-top:2px;font-style:italic}
.skill-role-badge{font-size:10px;font-weight:bold;padding:2px 7px;border-radius:4px;text-transform:uppercase}
.role-builder{background:#1e3427;color:#2ecc71;border:1px solid #27ae60}
.role-spender{background:#3c1818;color:#e74c3c;border:1px solid #c0392b}
.role-aoe{background:#1c2d3c;color:#3498db;border:1px solid #2980b9}
.role-control{background:#321f38;color:#af7ac5;border:1px solid #8e44ad}
.role-defense{background:#2e2815;color:#f39c12;border:1px solid #d68910}
.role-ultimate{background:#3f1430;color:#f1948a;border:1px solid #e74c3c;box-shadow:0 0 6px rgba(231,76,60,0.3)}
.skill-tags{display:flex;gap:4px;flex-wrap:wrap;margin:6px 0}
.tag-badge{background:#1b2830;border:1px solid #2c424e;padding:1px 6px;border-radius:3px;font-size:10px;color:#85c1e9}
.skill-tactical-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#0d1418;border:1px solid #1c272e;border-radius:5px;padding:8px;margin:8px 0;font-size:11px}
.tactical-cell{display:flex;align-items:center;gap:5px;color:#a5b8bc}
.tactical-cell strong{color:#e8dcc4}
.skill-desc-vi{font-size:12px;color:#a9babd;margin:8px 0;line-height:1.55}
.skill-status-box{background:#19242b;border-left:3px solid #e2b370;padding:6px 10px;border-radius:0 4px 4px 0;margin:6px 0;font-size:11px;color:#d5e1e3}
.skill-rank-preview{font-size:10px;color:#7e959b;background:#10171c;padding:4px 8px;border-radius:4px;margin-top:6px;border:1px dashed #25333b}
.skill-specs-preview{font-size:10px;color:#a4b6b9;margin-top:4px;line-height:1.4}
.skill-equip-actions{display:flex;gap:4px;margin-top:10px;flex-wrap:wrap}
.skill-equip-actions button{flex:1;min-width:55px;padding:5px 6px;font-size:10px;font-weight:bold;border-radius:4px;cursor:pointer}
.skill-equip-actions button.is-equipped{background:#1e824c!important;border-color:#2ecc71!important;color:#ffffff!important;box-shadow:0 0 10px rgba(46,204,113,0.5)!important}
.toast-msg{position:fixed;bottom:24px;right:24px;background:#15241d;border:2px solid #2ecc71;color:#a8f0c6;padding:12px 20px;border-radius:8px;font-size:13px;font-weight:bold;box-shadow:0 6px 25px rgba(0,0,0,0.7);z-index:99999;transition:opacity 0.3s;pointer-events:none}

@media(max-width:900px){
  .panels{grid-template-columns:1fr}
  .loadout-slots-row{grid-template-columns:1fr 1fr}
  .tree-summary-row{grid-template-columns:1fr}
  main{padding:10px}
}

/* CLASS PICKER BAR */
.class-picker-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#141d22;border:1px solid #283942;border-radius:6px;padding:8px 14px;margin-bottom:14px;flex-wrap:wrap}
.class-picker-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:bold;color:#edbc78}
.class-picker-group{display:flex;gap:6px;flex-wrap:wrap}
.class-picker-btn{padding:6px 12px;font-size:12px;font-weight:bold;background:#18242a;border:1px solid #314a56;color:#a8c2c8;border-radius:4px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:6px}
.class-picker-btn:hover{background:#22343d;border-color:#edbc78;color:#fff}
.class-picker-btn.active{background:#72502b;border-color:#f1c40f;color:#ffd885;box-shadow:0 0 10px rgba(241,196,15,0.35)}
.skill-locked-notice{padding:8px 10px;background:#241616;border:1px dashed #7a2b2b;border-radius:4px;color:#f1948a;font-size:11px;text-align:center;margin-top:8px;font-weight:500}

.gear.locked-for-class { opacity: 0.62; border-color: #632e2e !important; background: #1c1517 !important; }
.gear.locked-for-class:hover { opacity: 0.95; border-color: #e74c3c !important; }

/* QUICK SELL & ITEM LOCK */
.quick-sell-container{background:#111a1f;border:1px solid #23343d;border-radius:6px;padding:9px 12px;margin:8px 0 12px}
.quick-sell-title{font-size:11px;font-weight:600;color:#9daeb1;margin-bottom:7px}
.quick-sell-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.quick-sell-checks{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.color-check{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:bold;cursor:pointer;user-select:none;padding:3px 7px;border-radius:4px;background:#182329;border:1px solid #28373f;color:#c0cfd1;transition:all .15s}
.color-check:hover{border-color:#506b78;background:#202e36}
.color-check input[type="checkbox"]{cursor:pointer;accent-color:#f09754;width:13px;height:13px;margin:0}
.color-box{width:11px;height:11px;border-radius:2px;display:inline-block;border:1px solid rgba(255,255,255,0.25)}
.color-box.normal{background:#d2d2c9}
.color-box.magic{background:#88bfff}
.color-box.rare{background:#efcf73}
.color-box.unique{background:#f09754}
.color-check.normal input:checked + .color-box{box-shadow:0 0 6px #d2d2c9}
.color-check.magic input:checked + .color-box{box-shadow:0 0 6px #88bfff}
.color-check.rare input:checked + .color-box{box-shadow:0 0 6px #efcf73}
.color-check.unique input:checked + .color-box{box-shadow:0 0 6px #f09754}
.quick-sell-btn{background:#3f2a18;border:1px solid #b36a28;color:#ffd885;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:bold;cursor:pointer;transition:all .15s}
.quick-sell-btn:hover:not(:disabled){background:#573a21;border-color:#f1a047;color:#fff;box-shadow:0 0 8px rgba(240,151,84,0.35)}
.quick-sell-btn:disabled{opacity:0.4;cursor:not-allowed;background:#182126;border-color:#2a373f;color:#708288}
.unique-catalog-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.unique-catalog-header h2{margin:0;color:#f09754}.unique-catalog-header strong{color:#ffd885;background:#261b13;border:1px solid #754622;border-radius:5px;padding:7px 10px}.unique-search{width:100%;box-sizing:border-box;background:#10191e;border:1px solid #31454e;color:#eaf1f2;border-radius:5px;padding:9px 11px;margin-bottom:9px}.unique-filter-row{display:flex;gap:6px;flex-wrap:wrap;margin:7px 0}.unique-filter-row button.active{border-color:#f09754;color:#ffd69b;background:#382416}.unique-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:11px;margin-top:13px}.unique-card{background:#111a1f;border:1px solid #5f3c24;border-radius:7px;padding:11px;min-width:0}.unique-card.mythic{border-color:#cf5fff;box-shadow:0 0 10px #8c36bd44}.unique-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.unique-card-head strong{color:#f5a35f;font-size:15px}.unique-card-head span{color:#e1c3ff;font-size:10px;text-transform:uppercase}.unique-meta{font-size:11px;color:#91a4a8;margin:5px 0}.unique-fixed{margin:7px 0;padding-left:20px;color:#96d66d;font-size:12px}.unique-fixed .negative{color:#ff8585}.unique-contract,.unique-tradeoff{font-size:12px;line-height:1.45;margin-top:6px}.unique-contract{color:#e7d7b6}.unique-tradeoff{color:#ffad8f}.unique-card details{margin-top:8px;color:#9dafb3;font-size:11px}.unique-card details p{margin:5px 0}.unique-card code{overflow-wrap:anywhere;color:#bda7dc}
.gear.locked-item{border-color:#f1c40f !important;box-shadow:inset 0 0 6px rgba(241,196,15,0.25)}
.item-lock-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:4px;font-size:11px;font-weight:bold}
.item-lock-badge.locked{background:rgba(241,196,15,0.15);border:1px solid #f1c40f;color:#ffd369}
.item-lock-badge.unlocked{background:rgba(149,165,166,0.12);border:1px solid #5a6b73;color:#9daeb1}

/* RPG QUEST & BOUNTY SYSTEM */
.quest-list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px;margin-top:12px}
.quest-card{background:#152127;border:1px solid #2a3d47;border-radius:6px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;transition:all .15s}
.quest-card.completed{border-color:#2ecc71;background:rgba(46,204,113,0.08);box-shadow:0 0 10px rgba(46,204,113,0.15)}
.quest-card.claimed{border-color:#384852;opacity:0.65;background:#111a1f}
.quest-header{display:flex;justify-content:space-between;align-items:center}
.quest-title{font-size:14px;font-weight:bold;color:#f2c98f}
.quest-badge{font-size:10px;font-weight:bold;padding:2px 6px;border-radius:3px}
.quest-badge.active{background:#233540;color:#85c1e9;border:1px solid #3498db}
.quest-badge.completed{background:#1e4d2b;color:#a8f0c6;border:1px solid #2ecc71}
.quest-badge.claimed{background:#1a2327;color:#7f8c8d;border:1px solid #3d4a50}
.quest-desc{font-size:12px;color:#c0cfd1;line-height:1.4}
.quest-progress-bar-bg{height:6px;background:#0d1519;border-radius:3px;overflow:hidden;margin-top:4px}
.quest-progress-bar-fill{height:100%;background:#f09754;transition:width .2s}
.quest-card.completed .quest-progress-bar-fill{background:#2ecc71}
.quest-reward-row{display:flex;justify-content:space-between;align-items:center;margin-top:4px;padding-top:6px;border-top:1px solid #202d34}
.quest-rewards{font-size:11px;color:#ffd369;display:flex;gap:8px;flex-wrap:wrap}
.quest-claim-btn{background:#27ae60;border:1px solid #2ecc71;color:#fff;padding:4px 10px;font-size:11px;font-weight:bold;border-radius:4px;cursor:pointer}
.quest-claim-btn:hover{background:#2ecc71;box-shadow:0 0 8px rgba(46,204,113,0.4)}
.active-quest-banner{background:#141f24;border:1px solid #2a3c46;border-radius:6px;padding:6px 12px;margin:8px 0;display:flex;justify-content:space-between;align-items:center;font-size:12px}
/* Branch navigator: preserves the authored graph and IDs, changes presentation only. */
.branch-toolbar{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:#1b282e;border:1px solid #50636b;border-radius:8px;margin:14px 0}.branch-toolbar label{display:grid;gap:5px;font-size:12px;color:#bfcfd1}.branch-toolbar input,.branch-toolbar select{min-height:40px;min-width:165px;background:#101b20;color:#f2eadc;border:1px solid #566b73;border-radius:5px;padding:8px}.branch-toolbar button{min-height:42px;align-self:end}.branch-workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}#branch-lanes{max-height:75vh;overflow:auto;padding-right:6px}.branch-lane{margin-bottom:16px;padding:12px;background:#152127;border:1px solid #324750;border-radius:7px}.branch-lane h3{text-transform:capitalize;margin:0 0 12px;color:#dcb879;font-size:14px}.branch-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:9px}.branch-node{min-height:98px;padding:12px;text-align:left;display:grid;gap:7px;background:#1b2a32;border:1px solid #425761;color:#dbe7e8}.branch-node strong{font-size:13px}.branch-node small{font-size:11px;color:#9daeb1}.branch-node span{font-size:12px;color:#acc3c7;line-height:1.5}.branch-node.allocated{border-color:#d6a453;background:#352c1d}.branch-node.available{border-color:#83bc70}.branch-node.selected{outline:3px solid #b7e0f1;outline-offset:1px}.branch-node.on-route{box-shadow:inset 4px 0 #dca55c}#branch-detail{position:sticky;top:15px;background:#1c2b31;border:1px solid #627c87;border-radius:8px;padding:18px;max-height:78vh;overflow:auto}#branch-detail p{font-size:12px;line-height:1.65;overflow-wrap:anywhere}#branch-detail button{margin:5px 8px 8px 0;min-height:44px}#tab-passive:not(.show-branch-list)>.branch-toolbar,#tab-passive:not(.show-branch-list)>.branch-workspace{display:none}.attribute-strip{display:flex;flex-wrap:wrap;gap:16px;color:#e3c48d;padding:10px;background:#192b32;border-radius:5px}.attribute-help{font-size:11px;color:#a9bfc3;line-height:1.6;margin:10px 0}.item-requirements{padding:10px;border:1px solid #62857a;margin:10px 0;font-size:12px;line-height:1.7}.item-requirements.unmet,.unsupported-note{color:#ffc791;border-color:#a66d47}.item-requirements.met{color:#a9dfad}@media(max-width:1000px){.branch-workspace{grid-template-columns:1fr}#branch-detail{position:static;max-height:none;order:-1}#branch-lanes{max-height:none}.branch-cards{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}}
:root .skill-art-icon{display:inline-block;flex:none;box-sizing:content-box;object-fit:contain;image-rendering:pixelated;vertical-align:middle;border:1px solid #48525b;border-radius:3px;background:#101720}
.skill-art-label{display:inline-flex;align-items:center;gap:8px;min-width:0}
.skill-card-header>.skill-art-icon{margin-right:8px}
button[id^="skill-"]:has(.skill-art-icon){display:inline-flex;align-items:center;gap:6px}
.gear.Smythi,.Smythi{color:#dfadf5;border-color:#9862b5}.gear.Smythi{box-shadow:inset 0 0 0 2px #4e365e}
#forge-panel,#overflow-items,#smythi-summary,#flask-controls{overflow-wrap:anywhere;line-height:1.55}
#forge-panel select{max-width:100%;margin:4px;background:#142127;color:#edc98c;border:1px solid #50636b;padding:6px}
#forge-panel button,#overflow-items button{margin:4px}#flask-controls label{display:inline-flex;align-items:center;margin:8px}
#progression-qa pre{max-height:190px;overflow:auto;font-size:11px}#progression-qa textarea{width:320px;max-width:90%;height:48px}

.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin:12px 0}
.shop-card{background:#152127;border:1px solid #2a3d47;border-radius:6px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;text-align:center;transition:all .15s}
.shop-card:hover{border-color:#ffd369;background:#1a2830;box-shadow:0 0 10px rgba(255,211,105,0.15)}
.shop-icon{font-size:32px;margin-bottom:4px}
.shop-card-title{font-size:14px;font-weight:bold;color:#f2c98f}
.shop-card-desc{font-size:11px;color:#9daeb1;line-height:1.4}
.shop-card-cost{font-size:13px;font-weight:bold;color:#ffd369;margin-top:4px}
.shop-buy-btn{background:#e67e22;border:1px solid #f39c12;color:#fff;padding:6px 12px;font-size:12px;font-weight:bold;border-radius:4px;cursor:pointer;transition:background .15s}
.shop-buy-btn:hover:not(:disabled){background:#f39c12;box-shadow:0 0 8px rgba(243,156,18,0.5)}
.shop-buy-btn:disabled{opacity:0.5;cursor:not-allowed}

#tab-passive.show-branch-list>.tree-toolbar,#tab-passive.show-branch-list>.sector-jumps,#tab-passive.show-branch-list>.tree-container{display:none}
.quick-stat-pills{width:100%;display:flex;gap:5px;align-items:center;margin-top:6px;flex-wrap:wrap}.quick-stat-pills span{font-size:11px;color:#8da5ab}.quick-stat-pills button{font-size:11px;padding:2px 8px;border-radius:4px;cursor:pointer}

/* Camp shell shares the existing palette and controls. */
.camp-heading,.camp-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.camp-heading h2{margin:6px 0;color:#edbc78}.camp-heading small{letter-spacing:2px;color:#9daeb1}.camp-heading p{margin:5px 0 12px}.camp-scene{position:relative;border:1px solid #2b3941;background:#0d1114;overflow:hidden;border-radius:8px}.camp-scene canvas{width:100%;height:auto;display:block;image-rendering:pixelated}.camp-npcs{display:flex;justify-content:space-around;gap:4px;padding:10px;flex-wrap:wrap;background:#10181de8}.camp-npcs button{min-height:44px;flex:1;line-height:1.5;white-space:normal;color:#edbc78}.camp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}.camp-cards article{background:#161f24;border:1px solid #2b3941;border-radius:8px;padding:16px}.camp-cards h3{margin-top:0;color:#edbc78}.camp-cards p{line-height:1.6;color:#9daeb1}.camp-cards button{margin:4px;min-height:44px}.camp-portrait{image-rendering:pixelated;background:radial-gradient(ellipse,#354249,#11191d);border:1px solid #2b3941;border-radius:6px;width:128px;height:128px}#camp-dialog{box-sizing:border-box;background:#161f24;color:#e6e4dd;border:1px solid #6b5942;border-radius:10px;width:min(960px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:20px;overflow:auto}#camp-dialog::backdrop{background:#030708c9}#camp-dialog button,#camp-dialog select{min-height:44px;max-width:100%;white-space:normal;margin:4px;line-height:1.4}#camp-dialog h2{margin:0;color:#edbc78}#camp-dialog h3,#camp-dialog h4{color:#edbc78}.camp-dialog-header{position:sticky;top:-20px;background:#161f24;z-index:2;padding:12px 0;border-bottom:1px solid #2b3941}.camp-dialog-columns{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px}.camp-dialog-columns aside p{line-height:1.8;color:#b9b8ab}.camp-dialog-columns>div{min-width:0}#camp-service-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid #2b3941;padding-bottom:6px}#camp-service-tabs [aria-pressed=true]{border-color:#edbc78;background:#3a3328}.camp-item-list,.camp-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:240px;overflow:auto;margin:12px 0}.camp-item-list button,.camp-offers button{display:flex;gap:8px;align-items:center;text-align:left}.camp-gear-info,.camp-preview{padding:12px;margin:12px 0;border:1px solid #2b3941;border-radius:6px;background:#11191d;overflow-wrap:anywhere}.camp-preview{border-color:#a47b49}.camp-error{color:#ffac97;background:#3a2020;padding:10px;border-left:3px solid #b86b56}.camp-success{color:#b7d8b0;background:#1b3028;padding:10px}.camp-dialogue-line{font-size:17px;line-height:1.8;min-height:100px}#camp-service label{display:inline-flex;gap:6px;align-items:center;margin:4px;flex-wrap:wrap}#camp-journal{border:1px solid #2b3941;padding:16px;margin:12px 0}#camp-journal details{margin:8px 0;padding:8px;background:#161f24}#camp-journal button{margin:4px;min-height:44px}#camp-journal summary{cursor:pointer;min-height:44px;line-height:44px}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #edbc78;outline-offset:3px}.camp-toolbar{display:flex;flex-wrap:wrap}#inspection-mount{min-width:0}#camp-dialog #actions{display:flex;flex-wrap:wrap}#camp-dialog .item-requirements{overflow-wrap:anywhere}
@media(max-width:1099px){.camp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.main-tabs{flex-wrap:wrap}}
@media(max-width:767px){.camp-cards{grid-template-columns:1fr}.camp-npcs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.camp-npcs button:last-child{grid-column:1/-1}.camp-dialog-columns{grid-template-columns:1fr}.camp-dialog-columns aside{display:flex;gap:12px;align-items:center}.camp-portrait{flex:0 0 96px;width:96px;height:96px}.camp-item-list,.camp-offers{grid-template-columns:1fr}#camp-dialog{padding:12px}.camp-dialog-header{top:-12px}.camp-dialog-header h2{font-size:20px}main{max-width:100%;box-sizing:border-box}header{flex-wrap:wrap}.main-tabs .tab-btn{min-width:0;white-space:normal}.class-picker-bar{flex-wrap:wrap}.class-picker-group{flex-wrap:wrap}.camp-heading{align-items:flex-start}#camp-service{overflow-wrap:anywhere}.panels{grid-template-columns:minmax(0,1fr)}.toolbar{flex-wrap:wrap}#game{max-width:100%;height:auto}.skills{flex-wrap:wrap}body{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){#camp-dialog *,#tab-camp *{animation:none!important;transition:none!important}}
#camp-qa{margin:20px 0}#camp-qa pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto}#camp-qa textarea{max-width:100%;box-sizing:border-box}#camp-qa button{min-height:44px}#camp-qa label{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
@media(min-width:768px){.camp-npcs{position:absolute;inset:0;display:block;background:none;padding:0;pointer-events:none}.camp-npcs button{position:absolute;pointer-events:auto;background:transparent;border:1px solid transparent;box-shadow:none;font-size:0;min-height:44px;width:17%;height:47%;top:31%;padding:0;display:flex;align-items:flex-end;justify-content:center;text-shadow:0 1px 4px #000}.camp-npcs button:hover,.camp-npcs button:focus-visible{font-size:12px;background:linear-gradient(transparent 70%,#0d1114e8);border-color:#edbc7855}.camp-npcs #camp-npc-bram{left:5%}.camp-npcs #camp-npc-cot{left:19%;top:60%;height:25%;width:14%}.camp-npcs #camp-npc-mira{left:29%;top:27%}.camp-npcs #camp-npc-oren{left:60%;top:27%}.camp-npcs #camp-npc-vey{left:77%}}
.camp-preview{position:sticky;bottom:0;z-index:1;box-shadow:0 -8px 18px #0d1114cc}#camp-combat-buff{color:#edbc78;display:inline-flex;gap:4px;align-items:center}
@keyframes camp-reveal{from{opacity:.15;transform:translateY(4px)}to{opacity:1;transform:none}}.camp-reveal{animation:camp-reveal .6s ease-out both}@media(prefers-reduced-motion:reduce){.camp-reveal{animation:none}}

