:root{--bg: #0f0d0a;--bg-2: #1a1613;--bg-3: #231d18;--fg: #e6d9c2;--fg-dim: #988871;--accent: #ffc34c;--border: #3a2e23;--slot-bg: #110d09;--slot-border: #443525}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:Friz Quadrata,Palatino,Georgia,serif;min-height:100vh}body{background-image:radial-gradient(ellipse at top,rgba(255,195,76,.06),transparent 60%),linear-gradient(180deg,#0f0d0a,#05040a)}.app{max-width:1200px;margin:0 auto;padding:24px 20px 80px}.app.loading,.app.error{text-align:center;padding-top:20vh;color:var(--fg-dim)}.char-header{border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:24px}.char-header-top{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}.char-header-right{display:flex;align-items:center;gap:10px}.char-name{font-size:42px;font-weight:700;letter-spacing:1px;text-shadow:0 0 12px rgba(255,195,76,.2)}.char-picker{position:relative;display:inline-flex}.char-picker-trigger{display:inline-flex;align-items:center;gap:10px;background:var(--bg-2);color:var(--fg);border:1px solid var(--border);padding:8px 14px;font-family:inherit;font-size:14px;border-radius:3px;cursor:pointer;min-width:280px;transition:border-color .15s,box-shadow .15s}.char-picker-trigger:hover,.char-picker-trigger[aria-expanded=true]{box-shadow:0 0 0 2px #ffc34c2e}.char-picker-trigger-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--fg-dim)}.char-picker-trigger-name{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char-picker-trigger-caret{color:var(--fg-dim);font-size:12px}.char-picker-popover{position:absolute;top:calc(100% + 6px);right:0;min-width:360px;max-width:460px;max-height:70vh;display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;box-shadow:0 12px 28px #0000008c,0 0 0 1px #ffc34c0d;z-index:50}.char-picker-toolbar{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--border);align-items:center}.char-picker-search{flex:1;background:var(--bg);color:var(--fg);border:1px solid var(--border);padding:7px 10px;font-family:inherit;font-size:13px;border-radius:3px;outline:none}.char-picker-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px #ffc34c2e}.char-picker-compare-toggle{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--fg-dim);display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}.char-picker-body{overflow-y:auto;padding:4px 0}.char-picker-empty{padding:18px;text-align:center;color:var(--fg-dim);font-style:italic}.char-picker-group+.char-picker-group{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.char-picker-group-header{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;color:var(--accent);font-size:11px;letter-spacing:2px;text-transform:uppercase}.char-picker-group-name{font-weight:700}.char-picker-group-count{background:var(--bg-3);color:var(--fg-dim);border-radius:999px;padding:1px 8px;font-size:10px}.char-picker-list{list-style:none;margin:0;padding:0}.char-picker-row{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 11px;cursor:pointer;border-left:3px solid transparent;transition:background .1s}.char-picker-row:hover{background:var(--bg-3)}.char-picker-row.is-selected{background:#ffc34c12}.char-picker-row.is-compare-on{background:#4a7dd41a}.char-picker-row.is-stale .char-picker-row-name{opacity:.65}.char-picker-row-check{margin-right:4px}.char-picker-row-main{display:flex;flex-direction:column;min-width:0;flex:1}.char-picker-row-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.char-picker-row-meta{display:flex;gap:8px;font-size:11px;color:var(--fg-dim);margin-top:2px}.char-picker-row-meta .lvl{color:var(--fg)}.char-picker-row-meta .realm{font-style:italic}.char-picker-footer{border-top:1px solid var(--border);padding:8px}.char-picker-add{width:100%;background:transparent;border:1px dashed var(--border);color:var(--accent);font-family:inherit;font-size:13px;padding:8px;border-radius:3px;cursor:pointer;transition:border-color .15s,background .15s}.char-picker-add:hover{border-color:var(--accent);background:#ffc34c0f}.chip{display:inline-block;font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:1px 6px;border-radius:2px;border:1px solid var(--border);color:var(--fg-dim);margin-left:6px;vertical-align:middle}.chip.stale{border-color:#6c5b3a;background:#6c5b3a2e;color:#e6c44a}.spec-icon-inline{width:14px;height:14px;border-radius:2px;vertical-align:-2px;margin-right:4px;border:1px solid #000}.char-sub{font-size:16px;display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;color:var(--fg-dim)}.char-sub .guild{color:#a0ffa0;font-style:italic}.char-meta{margin-top:8px;display:flex;gap:18px;color:var(--fg-dim);font-size:14px;flex-wrap:wrap}.char-meta .updated{margin-left:auto;font-style:italic;color:#6a5a45}main{display:grid;grid-template-columns:1fr 340px;gap:28px}@media (max-width: 900px){main{grid-template-columns:1fr}}.paperdoll{display:grid;grid-template-columns:1fr 1fr;gap:24px;background:var(--bg-2);border:1px solid var(--border);padding:24px;border-radius:6px;position:relative}.paperdoll-col{display:flex;flex-direction:column;gap:10px}.paperdoll-bottom{grid-column:span 2;display:flex;justify-content:center;gap:10px;margin-top:12px}.item-slot{display:flex;align-items:center;gap:12px;background:var(--slot-bg);border:1px solid var(--slot-border);padding:8px 12px 8px 8px;min-height:60px;text-decoration:none;color:var(--fg);transition:background .15s,border-color .15s,transform .1s;border-radius:3px;overflow:hidden}.item-slot:hover{background:#1a130c;border-color:var(--accent)!important;transform:translateY(-1px)}.item-slot-icon{flex:0 0 44px;width:44px;height:44px;border:1px solid #000;background:#000;position:relative;overflow:hidden;transition:box-shadow .15s}.item-slot-icon img{display:block;width:100%;height:100%;object-fit:cover;background-repeat:no-repeat}.item-slot-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:2px}.item-slot-label{font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--fg-dim);line-height:1}.item-slot-name{font-size:14px;line-height:1.2;color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-slot-meta{font-size:11px;color:var(--fg-dim);line-height:1}.item-slot-empty{opacity:.55}.item-slot-empty .item-slot-icon{background:linear-gradient(135deg,transparent calc(50% - .5px),#2a2118 calc(50% - .5px),#2a2118 calc(50% + .5px),transparent calc(50% + .5px)),linear-gradient(45deg,transparent calc(50% - .5px),#2a2118 calc(50% - .5px),#2a2118 calc(50% + .5px),transparent calc(50% + .5px)),#0a0806;border-color:#2a2118}.item-slot-empty-label{font-style:italic;color:var(--fg-dim)}.stats-panel{background:var(--bg-2);border:1px solid var(--border);padding:16px 20px;border-radius:6px}.stats-panel section{margin-bottom:18px}.stats-panel h3{margin:0 0 8px;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:4px}.stat-row{display:flex;justify-content:space-between;padding:2px 0;font-size:14px}.stat-label{color:var(--fg-dim)}.stat-value{color:var(--fg);font-variant-numeric:tabular-nums}.talents{background:var(--bg-2);border:1px solid var(--border);padding:16px 20px;border-radius:6px;margin-top:18px}.talents h3{margin:0 0 10px;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.talent-distribution{display:flex;gap:8px;border:1px solid var(--border);padding:10px;border-radius:4px}.talent-tab{flex:1;text-align:center}.talent-tab-name{font-size:12px;color:var(--fg-dim)}.talent-tab-points{font-size:20px;font-weight:700}.talent-total{text-align:center;color:var(--fg-dim);font-size:12px;margin-top:6px}footer{text-align:center;margin-top:50px;color:var(--fg-dim);font-size:12px}.add-view{max-width:780px;margin:0 auto;line-height:1.6}.add-view code{background:var(--bg-3);border:1px solid var(--border);padding:1px 6px;border-radius:3px;font-size:.92em;color:#f0d9a0;font-family:Consolas,Courier New,monospace;white-space:nowrap}.add-view-back{background:transparent;border:1px solid var(--border);color:var(--fg-dim);font-family:inherit;font-size:13px;padding:6px 12px;border-radius:3px;cursor:pointer;margin-bottom:24px;transition:color .15s,border-color .15s}.add-view-back:hover{color:var(--accent);border-color:var(--accent)}.add-view-title{font-size:36px;color:var(--accent);margin:0 0 8px;letter-spacing:1px}.add-view-lede{font-size:17px;color:var(--fg);margin:0 0 8px}.add-view-privacy{font-size:13px;color:var(--fg-dim);font-style:italic;margin:0 0 28px}.add-view-download{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:20px 24px;display:flex;align-items:center;gap:18px;margin-bottom:32px}.add-view-download-btn{background:linear-gradient(180deg,#3d2d18,#241a0e);color:var(--accent);border:1px solid var(--accent);padding:10px 22px;border-radius:3px;text-decoration:none;font-size:16px;font-weight:700;letter-spacing:.5px;transition:background .15s,transform .1s,box-shadow .15s}.add-view-download-btn:hover{background:linear-gradient(180deg,#54401f,#362712);box-shadow:0 0 12px #ffc34c4d;transform:translateY(-1px)}.add-view-download-note{color:var(--fg-dim);font-size:13px}.add-view-steps{padding-left:24px;margin:0 0 40px}.add-view-steps li{margin-bottom:14px}.add-view-steps li strong{color:var(--accent)}.add-view-troubleshooting-title{font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:4px;margin:32px 0 12px}.add-view-troubleshooting{padding-left:24px;color:var(--fg-dim);font-size:14px}.add-view-troubleshooting li{margin-bottom:8px}.add-view-troubleshooting em{color:var(--fg);font-style:normal}.add-view-back-link{text-align:center;margin-top:40px}.add-view-back-link a{color:var(--fg-dim);text-decoration:none;border-bottom:1px dotted var(--fg-dim)}.add-view-back-link a:hover{color:var(--accent);border-bottom-color:var(--accent)}.add-view-key-info{background:var(--bg-2);border-left:3px solid var(--accent);padding:12px 16px;margin:0 0 32px;color:var(--fg);font-size:14px}.add-view-key-info strong{color:var(--accent)}.add-view-advanced{margin:32px 0 24px;border:1px solid var(--border);border-radius:4px;background:#0003}.add-view-advanced[open]{background:var(--bg-2)}.add-view-advanced-summary{cursor:pointer;padding:12px 16px;color:var(--fg-dim);font-size:13px;letter-spacing:.5px;list-style:none;-webkit-user-select:none;user-select:none;transition:color .15s}.add-view-advanced-summary::-webkit-details-marker{display:none}.add-view-advanced-summary:before{content:"▸ ";display:inline-block;margin-right:6px;transition:transform .15s}.add-view-advanced[open] .add-view-advanced-summary:before{transform:rotate(90deg)}.add-view-advanced-summary:hover{color:var(--accent)}.add-view-advanced-body{padding:4px 20px 20px;border-top:1px solid var(--border);margin-top:4px}.add-view-advanced-lede{color:var(--fg-dim);font-size:14px;margin:16px 0 20px}.char-header-name-block{flex:1 1 auto;min-width:0}.xp-bar{margin-top:10px;height:6px;background:var(--bg-3);border:1px solid var(--border);border-radius:999px;overflow:hidden}.xp-bar-fill{height:100%;background:linear-gradient(90deg,#6f3ec0,#b377ff);transition:width .4s ease}.dungeon-helper{margin-top:28px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:18px 20px 20px}.dungeon-helper-header{display:flex;align-items:baseline;gap:14px;margin-bottom:12px}.dungeon-helper h3{margin:0;font-size:14px;letter-spacing:2px;text-transform:uppercase;color:var(--accent)}.dungeon-helper-sub{color:var(--fg-dim);font-size:12px;font-style:italic}.dungeon-helper-empty{color:var(--fg-dim);font-style:italic;margin:0}.dungeon-helper-group{margin-bottom:18px}.dungeon-helper-group:last-child{margin-bottom:0}.dungeon-helper-group-title{margin:0 0 8px;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--fg-dim);border-bottom:1px solid var(--border);padding-bottom:4px;display:flex;align-items:baseline;gap:10px}.dungeon-helper-group-title.exp-wotlk{color:#b3a4ff}.dungeon-helper-group-title.exp-tbc{color:#c4ff8e}.dungeon-helper-group-title.exp-vanilla{color:#e6c44a}.dungeon-helper-group-count{background:var(--bg-3);color:var(--fg-dim);border-radius:999px;padding:1px 8px;font-size:10px;letter-spacing:1px}.dungeon-helper-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.dungeon-card{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}.dungeon-card.status-green{border-left:3px solid #5dd96a}.dungeon-card.status-yellow{border-left:3px solid #e6c44a}.dungeon-card.status-heroic{border-left:3px solid #a335ee}.dungeon-card-top{display:flex;align-items:center;gap:8px}.dungeon-card-dot{width:8px;height:8px;border-radius:999px;flex:0 0 8px}.dungeon-card-name{flex:1;font-size:14px;color:var(--fg);text-decoration:none;font-weight:700}.dungeon-card-name:hover{color:var(--accent);text-decoration:underline}.dungeon-card-status{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--fg-dim)}.dungeon-card-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;color:var(--fg-dim)}.dungeon-card-note{color:#a08560}.dungeon-card-mates{border-top:1px dashed var(--border);padding-top:8px;display:flex;flex-direction:column;gap:6px}.dungeon-mates-row{display:flex;flex-direction:column;gap:2px}.dungeon-mates-label{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--fg-dim)}.dungeon-mates-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}.dungeon-mates-list .muted{color:var(--fg-dim)}.dungeon-helper-toggle{background:transparent;border:1px solid var(--border);color:var(--fg-dim);font-family:inherit;font-size:12px;padding:6px 14px;border-radius:3px;cursor:pointer;margin-top:14px;transition:color .15s,border-color .15s}.dungeon-helper-toggle:hover{color:var(--accent);border-color:var(--accent)}.compare-view{max-width:980px;margin:0 auto}.compare-view.loading,.compare-view.error{text-align:center;padding-top:18vh;color:var(--fg-dim)}.compare-back{background:transparent;border:1px solid var(--border);color:var(--fg-dim);font-family:inherit;font-size:13px;padding:6px 12px;border-radius:3px;cursor:pointer;margin-bottom:18px;transition:color .15s,border-color .15s}.compare-back:hover{color:var(--accent);border-color:var(--accent)}.compare-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:0;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;overflow:hidden}.compare-cell{padding:10px 14px;border-bottom:1px solid var(--border)}.compare-cell:nth-last-child(-n+3){border-bottom:none}.compare-head{text-align:center;padding:16px;border-top:3px solid transparent;background:var(--bg-3)}.compare-head-mid{text-align:center;background:var(--bg-3);color:var(--fg-dim);font-style:italic}.compare-name{font-size:22px;font-weight:700;letter-spacing:1px}.compare-sub{color:var(--fg-dim);font-size:12px;margin-top:2px}.compare-row-label{text-align:center;color:var(--fg-dim);font-size:11px;letter-spacing:2px;text-transform:uppercase}.compare-val{font-variant-numeric:tabular-nums;font-size:15px}.compare-val-left{text-align:right}.compare-val-right{text-align:left}.compare-delta{font-size:11px;color:var(--fg-dim);margin-left:4px}.compare-delta.good{color:#5dd96a}.app.empty-landing{display:flex;align-items:center;justify-content:center;min-height:80vh;padding-top:0}.empty-card{background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:48px 56px;text-align:center;max-width:540px}.empty-title{font-size:44px;margin:0 0 10px;color:var(--accent);letter-spacing:2px;text-shadow:0 0 14px rgba(255,195,76,.18)}.empty-lede{color:var(--fg);font-size:16px;margin:0 0 8px}.empty-sub{color:var(--fg-dim);font-size:14px;font-style:italic;margin:0 0 24px}.empty-cta{display:inline-block;background:linear-gradient(180deg,#3d2d18,#241a0e);color:var(--accent);border:1px solid var(--accent);padding:10px 22px;border-radius:3px;text-decoration:none;font-size:16px;font-weight:700;letter-spacing:.5px;transition:background .15s,transform .1s,box-shadow .15s}.empty-cta:hover{background:linear-gradient(180deg,#54401f,#362712);box-shadow:0 0 12px #ffc34c4d;transform:translateY(-1px)}footer{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px}.footer-shortcut-hint{color:#5a4a36;font-size:11px;font-family:Consolas,Courier New,monospace;letter-spacing:.5px}
