:root{--bg-base: #07070a;--bg-primary: #0c0c11;--bg-secondary: #121218;--bg-tertiary: #08080c;--bg-card: #12121a;--bg-hover: #1c1c28;--bg-glass: rgba(18,18,26,.88);--text-primary: #e9e7f2;--text-secondary: #b4b0c4;--text-tertiary: #6a7080;--border-light: rgba(139,92,246,.09);--border-mid: rgba(139,92,246,.22);--border-gold: rgba(139,92,246,.58);--border-bright:rgba(201,179,255,.85);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 13px;--radius-xl: 18px;--accent: #8b5cf6;--accent2: #a78bfa;--accent3: #c9b3ff;--blue: #7aacff;--green: #5ecf7a;--red: #e06868;--gold: #fbbf24;--purple: #b888f0;--teal: #48c4b8;--glow-gold: 0 0 20px rgba(139,92,246,.5), 0 0 44px rgba(139,92,246,.18);--glow-soft: 0 0 10px rgba(139,92,246,.28);--shadow-deep: 0 4px 32px rgba(0,0,0,.75), 0 1px 0 rgba(255,255,255,.03);--shadow-card: 0 2px 18px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.04);--shadow-panel:0 2px 28px rgba(0,0,0,.65);--grad-gold: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 50%, #8b5cf6 100%);--grad-gold-subtle: linear-gradient(180deg, rgba(139,92,246,.14) 0%, transparent 100%);--t-fast: .13s ease;--t-mid: .2s ease;--t-slow: .32s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);min-height:100vh;font-size:13.5px;background-image:radial-gradient(ellipse 80% 60% at 50% -10%,rgba(139,92,246,.07) 0%,transparent 70%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.045'/%3E%3C/svg%3E")}input,select,textarea,button{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:13px}input[type=number]{font-family:Cinzel,serif}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#8b5cf647;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#8b5cf685}::selection{background:#8b5cf659;color:var(--accent3)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header{background:linear-gradient(180deg,#16161f,#0c0c11);border-bottom:1px solid var(--border-gold);padding:0 1.1rem;display:flex;align-items:center;gap:8px;height:52px;flex-shrink:0;position:relative;box-shadow:0 1px #a78bfa1f,0 4px 40px #000000a6;overflow:visible}.header:before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--accent) 20%,var(--accent2) 50%,var(--accent) 80%,transparent 100%);opacity:.9}.header:after{content:"";position:absolute;left:20%;right:20%;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,.15),transparent)}.back-to-site{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;margin-right:4px;border:1px solid var(--border-mid);border-radius:var(--radius-sm);font-family:Cinzel,serif;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);text-decoration:none;white-space:nowrap;transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast)}.back-to-site:hover{color:var(--accent3);border-color:var(--border-bright);background:#8b5cf61f}.header h1{font-family:Cinzel,serif;font-size:14px;font-weight:700;letter-spacing:.16em;color:var(--accent2);text-shadow:0 0 30px rgba(139,92,246,.6),0 1px 0 rgba(0,0,0,.8);white-space:nowrap}.header-sub{font-size:10px;color:var(--text-tertiary);letter-spacing:.05em;margin-left:1px;font-family:Cinzel,serif;white-space:nowrap}.header-divider{width:1px;height:22px;background:var(--border-light);flex-shrink:0}.header-actions{margin-left:auto;display:flex;gap:4px;align-items:center;flex-wrap:nowrap;overflow:visible}.header-group{display:flex;gap:3px;align-items:center;padding:0 4px;border-left:1px solid var(--border-light)}.header-group:first-child{border-left:none;padding-left:0}.slots-badge{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-tertiary);font-family:Cinzel,serif;background:#8b5cf60f;border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:3px 8px;white-space:nowrap}.slots-badge .slots-filled{color:var(--accent2);font-weight:700}.header-more{position:relative}.header-more-btn{display:flex;align-items:center;gap:3px}.header-dropdown{display:none;position:absolute;top:calc(100% + 8px);right:0;background:linear-gradient(160deg,#16161f,#0f0f1a);border:1px solid var(--border-gold);border-radius:var(--radius-lg);padding:6px;z-index:500;min-width:178px;box-shadow:0 12px 40px #000000c7,0 0 0 1px #8b5cf614,var(--glow-soft);animation:dropIn .16s cubic-bezier(.34,1.2,.64,1) both;flex-direction:column;gap:2px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.header-more:hover .header-dropdown,.header-more:focus-within .header-dropdown{display:flex}.header-dropdown .btn{width:100%;justify-content:flex-start;border-radius:var(--radius-sm);padding:7px 11px;font-size:11px;border-color:transparent}.header-dropdown .btn:hover{border-color:var(--border-mid)}.btn{background:#8b5cf60f;border:1px solid var(--border-mid);border-radius:var(--radius-sm);padding:5px 12px;font-size:11.5px;font-weight:500;cursor:pointer;color:var(--text-secondary);display:inline-flex;align-items:center;gap:5px;transition:all var(--t-fast);white-space:nowrap;letter-spacing:.04em;position:relative;overflow:hidden;font-family:Cinzel,serif;outline:none}.btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,transparent 100%);pointer-events:none}.btn:hover{background:#8b5cf621;border-color:var(--border-gold);color:var(--accent3);box-shadow:var(--glow-soft),inset 0 1px #ffffff12;transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible{box-shadow:0 0 0 2px #8b5cf680}.btn.primary{background:linear-gradient(160deg,#8b5cf6,#a06010 60%,#8a5010);border:1px solid rgba(167,139,250,.72);color:#0a0a10;font-weight:700;letter-spacing:.06em;box-shadow:0 2px 14px #8b5cf673,inset 0 1px #c9b3ff73;text-shadow:0 1px 0 rgba(201,179,255,.3)}.btn.primary:hover{filter:brightness(1.18);box-shadow:var(--glow-gold);transform:translateY(-1px)}.btn.danger{border-color:#dc505061;color:var(--red);background:#dc50500f}.btn.danger:hover{background:#dc505029;border-color:#dc5050a6;box-shadow:0 0 14px #dc505040;transform:translateY(-1px)}.btn.sm{padding:3px 9px;font-size:10px}.btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.main{display:flex;flex:1;overflow:hidden}.panel{overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px}.panel-left{width:276px;min-width:240px;background:linear-gradient(180deg,#0f0f1c,#0b0b15);border-right:1px solid var(--border-light);overflow-x:visible}.panel-center{flex:1;background:var(--bg-base);padding:16px;gap:14px}.panel-right{width:296px;min-width:252px;background:linear-gradient(180deg,#0f0f1c,#0b0b15);border-left:1px solid var(--border-light)}.section-label{font-family:Cinzel,serif;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:9px;opacity:.85;display:flex;align-items:center;gap:8px}.section-label:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(139,92,246,.3),transparent)}.divider{border:none;border-top:1px solid var(--border-light);margin:6px 0}.char-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.char-box{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:6px 7px;background:linear-gradient(160deg,#141423e6,#0c0c16e6);transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.char-box:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(139,92,246,.3),transparent)}.char-box:focus-within{border-color:var(--border-gold);box-shadow:var(--glow-soft)}.char-box label{display:block;font-size:7.5px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px;font-family:Cinzel,serif;font-weight:600}.char-box input{width:100%;border:none;background:transparent;font-size:14px;font-weight:600;color:var(--accent2);outline:none;font-family:Cinzel,serif}.equip-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;overflow:visible}.equip-slot{border:1px solid rgba(139,92,246,.13);border-radius:var(--radius-md);padding:9px 10px 8px;cursor:pointer;background:linear-gradient(160deg,#121220f5,#0a0a14f5);min-height:66px;display:flex;flex-direction:column;gap:2px;transition:all var(--t-fast);position:relative;overflow:visible;box-shadow:inset 0 1px #ffffff08,0 1px 5px #00000073}.equip-slot:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:linear-gradient(135deg,rgba(139,92,246,.1),transparent 60%);transition:opacity var(--t-fast);pointer-events:none;border-radius:var(--radius-md)}.equip-slot:hover:before{opacity:1}.equip-slot:hover{border-color:var(--border-gold);box-shadow:var(--glow-soft),inset 0 1px #ffffff0d;transform:translateY(-1px)}.equip-slot.filled{border-color:#8b5cf661;background:linear-gradient(160deg,#18160ef7,#0e0c08f7)}.equip-slot.warn{border-color:#dc505094!important;background:#dc50500f!important;box-shadow:0 0 12px #dc50502e!important}.equip-slot .slot-type{font-size:8px;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:3px;font-family:Cinzel,serif}.equip-slot .slot-name{font-size:12px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);margin-top:1px}.equip-slot.empty-slot{border-style:dashed;border-color:#8b5cf61f}.equip-slot.empty-slot:hover{border-color:#8b5cf66b}.equip-slot .slot-empty{font-size:10px;color:var(--text-tertiary);font-style:italic;display:flex;align-items:center;gap:4px;margin-top:2px}.slot-add-icon{font-size:13px;opacity:.18;transition:opacity var(--t-fast)}.equip-slot:hover .slot-add-icon{opacity:.65}.rune-dots{display:flex;gap:3px;margin-top:4px}.rdot{width:7px;height:7px;border-radius:50%;border:1px solid rgba(139,92,246,.22);background:transparent;cursor:pointer;transition:all .12s}.rdot.has{background:var(--gold);border-color:var(--accent2);box-shadow:0 0 7px #8b5cf6a6}.rdot:hover{border-color:var(--accent);background:#8b5cf638}.top-cards{display:grid;grid-template-columns:repeat(3,1fr) 1.25fr 1.25fr;gap:8px;align-items:stretch}.top-card{background:linear-gradient(155deg,#141422fa,#0a0a14fa);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:11px 14px;transition:border-color .2s,box-shadow .2s;display:flex;flex-direction:column;gap:4px;position:relative;overflow:hidden;box-shadow:var(--shadow-card)}.top-card:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent) 50%,transparent);opacity:0;transition:opacity .25s}.top-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent)}.top-card:hover{border-color:var(--border-gold);box-shadow:var(--glow-soft),var(--shadow-card)}.top-card:hover:after{opacity:.7}.top-card .tc-label{font-size:8.5px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.12em;display:flex;align-items:center;gap:5px;font-family:Cinzel,serif;font-weight:600}.top-card .tc-icon{font-size:14px;line-height:1;filter:drop-shadow(0 0 5px rgba(139,92,246,.4))}.top-card .tc-val{font-size:26px;font-weight:700;line-height:1;color:var(--accent2);letter-spacing:-.02em;font-family:Cinzel,serif;text-shadow:0 0 20px rgba(139,92,246,.3)}.top-card .tc-unit{font-size:11px;font-weight:500;color:var(--text-tertiary);margin-left:2px}.top-card .tc-sub{font-size:10px;color:var(--text-tertiary);margin-top:1px}.tab-bar{display:flex;gap:0;border-bottom:1px solid var(--border-light)}.tab{padding:9px 15px;font-size:10px;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text-tertiary);transition:all var(--t-fast);letter-spacing:.06em;font-family:Cinzel,serif;font-weight:600;position:relative}.tab:hover{color:var(--text-secondary);background:#8b5cf60a}.tab.active{color:var(--accent2);border-bottom-color:var(--accent);text-shadow:0 0 14px rgba(139,92,246,.45);background:#8b5cf60a}.stats-panel{background:linear-gradient(180deg,#10101efc,#0a0a14fc);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 220px);box-shadow:var(--shadow-card)}.stats-panel .tab-bar{padding:0 1rem;flex-shrink:0;background:#0a0a14f5}.stats-inner{padding:10px 12px;overflow-y:auto;flex:1}.stat-category{margin-bottom:10px}.stat-category-header{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);padding:0 2px 5px;border-bottom:1px solid var(--border-light);margin-bottom:4px;font-family:Cinzel,serif}.stat-category-header span{opacity:.7}.stat-grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}.stat-row{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;border-radius:var(--radius-sm);position:relative;transition:background var(--t-fast);min-height:24px}.stat-row:hover{background:#8b5cf612}.stat-name{font-size:12.5px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.stat-val{font-size:12.5px;font-weight:700;min-width:38px;text-align:right;flex-shrink:0;margin-left:4px;font-family:Cinzel,serif}.stat-val.zero{color:var(--text-tertiary);font-weight:400}.pos{color:var(--green)}.neg{color:var(--red)}.summary-panel{background:linear-gradient(155deg,#121220fc,#0a0a14fc);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:12px 16px;box-shadow:var(--shadow-card)}.summary-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid var(--border-light)}.summary-row:last-child{border-bottom:none}.set-card{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px 13px;margin-bottom:6px;background:linear-gradient(155deg,#10101efc,#0a0a14fc);box-shadow:var(--shadow-card);transition:border-color var(--t-fast)}.set-card:hover{border-color:var(--border-mid)}.set-card h4{font-size:12px;font-weight:700;margin-bottom:4px;font-family:Cinzel,serif;color:var(--accent2);letter-spacing:.05em}.set-tier{font-size:11.5px;color:var(--text-secondary);padding:2px 0;display:flex;gap:5px;align-items:flex-start}.set-tier.on{color:var(--green);font-weight:600}.set-tick{min-width:12px}.item-card{border:1px solid rgba(139,92,246,.11);border-radius:var(--radius-md);padding:9px 11px 34px;cursor:pointer;transition:all var(--t-fast);margin-bottom:5px;background:linear-gradient(155deg,#10101cfc,#0a0a14fc);position:relative;box-shadow:0 1px 6px #00000061}.item-card:hover{border-color:var(--border-gold);box-shadow:var(--glow-soft),0 6px 20px #0000008c;transform:translateY(-2px)}.item-card.sel{border-color:var(--blue);background:#7aacff14}.item-card.equipped-lib{border-color:#5ecf7a7a;background:#5ecf7a0e;box-shadow:0 0 12px #5ecf7a1f}.item-card h4{font-size:12.5px;font-weight:600;margin-bottom:2px}.item-meta{font-size:10.5px;color:var(--text-tertiary)}.item-pills{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.pill{background:#8b5cf60f;border-radius:3px;padding:1px 7px;font-size:10px;color:var(--text-secondary);border:1px solid rgba(139,92,246,.12)}.set-badge{font-size:9px;padding:1px 8px;border-radius:3px;background:#7aacff1f;color:var(--blue);font-weight:700;display:inline-block;margin-top:3px;text-transform:uppercase;letter-spacing:.06em;font-family:Cinzel,serif;border:1px solid rgba(122,172,255,.2)}.req-warn{font-size:10px;color:var(--red);margin-top:3px}.stat-sources{display:none;position:fixed;z-index:500;background:#0e0e18fa;border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:8px 12px;min-width:200px;max-width:260px;box-shadow:0 4px 32px #000000b3,var(--glow-soft);font-size:11px;white-space:nowrap;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.stat-row:hover .stat-sources{display:block}.stat-source-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0;border-bottom:1px solid var(--border-light);color:var(--text-secondary)}.stat-source-row:last-child{border-bottom:none}.stat-source-total{font-weight:700;color:var(--accent2);font-family:Cinzel,serif}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .16s ease both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:linear-gradient(160deg,#141420,#0e0e1a);border-radius:var(--radius-xl);border:1px solid var(--border-gold);padding:1.7rem;width:580px;max-width:96vw;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 64px #000000d1,0 0 0 1px #8b5cf61f,var(--glow-soft);animation:modalIn .24s cubic-bezier(.34,1.3,.64,1) both;position:relative}@keyframes modalIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.modal:before{content:"";position:absolute;top:0;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,.55),transparent)}.modal h2{font-family:Cinzel,serif;font-size:15px;font-weight:700;color:var(--accent2);letter-spacing:.1em;text-shadow:0 0 22px rgba(139,92,246,.45)}.form-row{display:flex;flex-direction:column;gap:5px}.form-row label{font-size:9.5px;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-family:Cinzel,serif}.form-row input,.form-row select,.form-row textarea{padding:8px 12px;border:1px solid var(--border-mid);border-radius:var(--radius-md);background:#080812d9;color:var(--text-primary);width:100%;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.form-row input:focus,.form-row select:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf629,var(--glow-soft)}.form-row select option{background:#14141f}.form-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.full{grid-column:1/-1}.build-row{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:11px 14px;display:flex;align-items:center;gap:10px;margin-bottom:5px;background:linear-gradient(155deg,#10101efc,#0a0a14fc);transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast);box-shadow:var(--shadow-card)}.build-row:hover{border-color:var(--border-mid);box-shadow:var(--glow-soft),var(--shadow-card);transform:translateY(-1px)}.build-row h4{font-size:12.5px;font-weight:600;font-family:Cinzel,serif}.build-date{font-size:10px;color:var(--text-tertiary)}.notice{font-size:12px;color:var(--text-tertiary);text-align:center;padding:2rem 1rem;font-style:italic;opacity:.7;line-height:1.6}.toast-container{position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:6px;pointer-events:none;align-items:center}.toast{background:#0c0c16f7;color:var(--text-primary);border:1px solid var(--border-gold);padding:9px 22px;border-radius:var(--radius-md);font-size:12.5px;font-weight:600;box-shadow:0 6px 28px #0009,var(--glow-soft);animation:toastIn .2s ease,toastOut .3s 2.2s forwards;white-space:nowrap;letter-spacing:.03em;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:Cinzel,serif}.toast.success{border-color:#5ecf7a94;box-shadow:0 4px 20px #00000080,0 0 16px #5ecf7a4d}.toast.error{border-color:#dc505094;box-shadow:0 4px 20px #00000080,0 0 16px #dc50504d}@keyframes toastIn{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;transform:translateY(-6px)}}.delta-pos{color:var(--green);font-size:10px;font-weight:700}.delta-neg{color:var(--red);font-size:10px;font-weight:700}.chat-badge{background:var(--red);color:#fff;font-size:9px;font-weight:700;border-radius:10px;padding:1px 5px;min-width:16px;text-align:center}.lib-toolbar{display:flex;gap:5px;margin-bottom:8px;flex-wrap:wrap}.lib-toolbar input{flex:1;min-width:120px;padding:7px 11px;border:1px solid var(--border-mid);border-radius:var(--radius-md);background:#080812cc;color:var(--text-primary);font-size:12px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.lib-toolbar input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf61f}.lib-toolbar select{padding:7px 8px;border:1px solid var(--border-mid);border-radius:var(--radius-md);background:#080812cc;color:var(--text-primary);font-size:11px;outline:none;font-family:Cinzel,serif;cursor:pointer;transition:border-color var(--t-fast)}.lib-toolbar select:focus{border-color:var(--accent)}.lib-toolbar select option{background:#14141f}.lib-filters{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px;padding:7px 9px;background:#8b5cf60a;border:1px solid var(--border-light);border-radius:var(--radius-md)}.lib-filter-label{font-size:8.5px;color:var(--text-tertiary);font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.1em;align-self:center;flex-shrink:0}.chat-panel{position:fixed;bottom:0;right:16px;width:370px;max-height:540px;display:flex;flex-direction:column;background:linear-gradient(180deg,#141420,#0f0f1a);border:1px solid var(--border-gold);border-bottom:none;border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:-4px -8px 48px #0009,var(--glow-soft);z-index:400;transition:max-height .26s cubic-bezier(.4,0,.2,1),box-shadow var(--t-mid)}.chat-panel:before{content:"";position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,.65),transparent);border-radius:100%}.chat-panel.collapsed{max-height:48px;overflow:hidden}.chat-panel.collapsed:hover{box-shadow:-4px -4px 32px #00000080,var(--glow-gold)}.chat-header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border-light);cursor:pointer;flex-shrink:0;background:transparent;border-radius:var(--radius-xl) var(--radius-xl) 0 0;-webkit-user-select:none;user-select:none;transition:background var(--t-fast)}.chat-header:hover{background:#8b5cf60a}.chat-header h3{font-size:11px;font-weight:700;flex:1;font-family:Cinzel,serif;color:var(--accent2);letter-spacing:.1em;text-shadow:0 0 14px rgba(139,92,246,.35)}.chat-toggle-icon{font-size:11px;color:var(--text-tertiary);transition:transform .24s ease;display:inline-block}.chat-panel:not(.collapsed) .chat-toggle-icon{transform:rotate(180deg)}.chat-messages{flex:1;overflow-y:auto;padding:10px 13px;display:flex;flex-direction:column;gap:8px;min-height:0}.chat-msg{max-width:90%;padding:8px 12px;border-radius:10px;font-size:12.5px;line-height:1.55}.chat-msg.user{align-self:flex-end;background:linear-gradient(135deg,#8b5cf6,#7a5010);color:#f0e8d0;border-radius:10px 10px 2px;font-weight:600;box-shadow:0 2px 10px #8b5cf659}.chat-msg.ai{align-self:flex-start;background:#141424f5;border:1px solid var(--border-light);border-radius:10px 10px 10px 2px;color:var(--text-primary);box-shadow:0 1px 6px #00000052}.chat-footer{display:flex;gap:6px;padding:9px 12px;border-top:1px solid var(--border-light);flex-shrink:0}.chat-footer input{flex:1;padding:7px 12px;border:1px solid var(--border-mid);border-radius:var(--radius-md);background:#080812d9;color:var(--text-primary);outline:none;font-size:12px;transition:border-color var(--t-fast),box-shadow var(--t-fast);font-family:Inter,ui-sans-serif,system-ui,sans-serif}.chat-footer input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8b5cf61f}.chat-suggestions{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 8px}.chat-chip{font-size:10px;padding:3px 10px;border-radius:3px;border:1px solid var(--border-mid);background:#8b5cf60d;color:var(--text-tertiary);cursor:pointer;transition:all var(--t-fast);font-family:Cinzel,serif}.chat-chip:hover{background:#8b5cf624;border-color:var(--border-gold);color:var(--accent2);transform:translateY(-1px)}.typing-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);animation:blink 1.2s infinite;margin:0 1px}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.item-quick-actions{display:flex;gap:4px;position:absolute;bottom:6px;right:6px;opacity:0;transform:translateY(4px);transition:opacity var(--t-fast),transform var(--t-fast);pointer-events:none}.item-card:hover .item-quick-actions{opacity:1;transform:translateY(0);pointer-events:all}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.score-bar{display:flex;gap:6px;align-items:center;margin-top:5px}.score-segment{height:5px;border-radius:3px;transition:width .55s cubic-bezier(.4,0,.2,1)}.role-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 12px;border-radius:10px;font-size:9.5px;font-weight:700;letter-spacing:.06em;border:1px solid;font-family:Cinzel,serif}.compare-col{flex:1;min-width:0}.compare-delta{font-size:10px;font-weight:700;min-width:36px;text-align:center;font-family:Cinzel,serif}.build-note{font-size:11.5px;color:var(--text-secondary);font-style:italic;margin-top:3px;white-space:pre-wrap;word-break:break-word}.warn-banner{background:#dc505012;border:1px solid rgba(220,80,80,.3);border-radius:var(--radius-md);padding:7px 12px;font-size:11.5px;color:var(--red);display:flex;align-items:center;gap:8px}.tag-pill{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:10px;font-size:9px;font-weight:700;background:#7aacff1a;color:var(--blue);border:1px solid rgba(122,172,255,.22);cursor:pointer;font-family:Cinzel,serif;transition:all var(--t-fast)}.tag-pill:hover{background:#7aacff38;transform:translateY(-1px)}.tag-pill.active{background:#7aacff4d;border-color:var(--blue)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.btn-export-img{background:linear-gradient(90deg,#8b5cf6,#a78bfa,#8b5cf6);background-size:200% 100%;animation:shimmer 2.5s linear infinite;border:none;color:#0a0a10;font-weight:700}.delete-confirm{background:#dc505014;border:1px solid rgba(220,80,80,.4);border-radius:var(--radius-sm);padding:5px 9px;margin-top:6px;display:flex;align-items:center;gap:7px;font-size:11px;color:var(--red);animation:fadeIn .15s ease}.rune-tooltip{position:fixed;z-index:600;background:#0a0a14fa;border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:7px 12px;font-size:11.5px;color:var(--text-primary);pointer-events:none;white-space:nowrap;box-shadow:0 6px 24px #000000b3,var(--glow-soft);animation:fadeIn .1s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.kbd{display:inline-block;padding:1px 5px;border:1px solid var(--border-mid);border-radius:3px;font-size:9px;font-family:monospace;color:var(--text-tertiary);background:#ffffff0a}.empty-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:36px 16px;color:var(--text-tertiary);text-align:center}.empty-state-icon{font-size:32px;opacity:.5}.empty-state-title{font-family:Cinzel,serif;font-size:12px;font-weight:700;color:var(--text-secondary)}.empty-state-sub{font-size:11px;line-height:1.6;max-width:200px}.lib-cat-header{display:flex;align-items:center;gap:6px;padding:6px 4px 4px;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-light);margin-bottom:5px}.lib-cat-header:hover{color:var(--text-secondary)}.lib-cat-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-weight:700;flex:1;font-family:Cinzel,serif}.lib-cat-count{font-size:9px;color:var(--text-tertiary);opacity:.5}.lib-cat-arrow{font-size:12px;color:var(--text-tertiary);transition:transform .15s}.lib-cat-arrow.open{transform:rotate(90deg)}.build-deleted{opacity:.45;filter:grayscale(.6);pointer-events:none;transition:opacity .2s}.confirm-modal{background:linear-gradient(160deg,#14141f,#0e0e18);border-radius:var(--radius-xl);border:1px solid var(--border-gold);padding:1.6rem;width:380px;max-width:96vw;display:flex;flex-direction:column;gap:14px;box-shadow:0 12px 56px #000000bf,var(--glow-soft);animation:modalIn .22s cubic-bezier(.34,1.3,.64,1) both}.missing-items{background:#dc50500f;border:1px solid rgba(220,80,80,.25);border-radius:var(--radius-md);padding:8px 11px;margin-top:4px}.missing-items-title{font-size:10px;font-weight:700;color:var(--red);margin-bottom:4px;text-transform:uppercase;letter-spacing:.07em;font-family:Cinzel,serif}.missing-item-row{font-size:11.5px;color:var(--text-secondary);padding:2px 0;display:flex;align-items:center;gap:6px}.missing-item-row:before{content:"✗";color:var(--red);font-size:9px}.slot-tooltip{display:none;position:absolute;left:calc(100% + 8px);top:0;z-index:500;background:#0c0c16fa;border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:10px 14px;min-width:200px;max-width:250px;box-shadow:0 4px 28px #000000b3,var(--glow-soft);font-size:11.5px;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.equip-slot:hover .slot-tooltip{display:block}.slot-tooltip-name{font-weight:700;font-size:12.5px;margin-bottom:6px;font-family:Cinzel,serif;color:var(--accent2)}.slot-tooltip-stat{display:flex;justify-content:space-between;gap:12px;padding:2px 0;border-bottom:1px solid var(--border-light);color:var(--text-secondary);font-size:10.5px}.slot-tooltip-stat:last-child{border-bottom:none}.slot-tooltip-stat-val{font-weight:600;color:var(--text-primary)}.slot-stat-preview{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px}.slot-stat-chip{font-size:9px;padding:1px 6px;border-radius:3px;background:#8b5cf612;border:1px solid rgba(139,92,246,.14);color:var(--text-tertiary);font-weight:600;font-family:Cinzel,serif}.slot-stat-chip.pos{color:var(--green);border-color:#5ecf7a40;background:#5ecf7a12}.cat-chip{padding:3px 11px;font-size:9px;font-weight:700;border-radius:4px;cursor:pointer;border:1px solid;letter-spacing:.05em;transition:all var(--t-fast);white-space:nowrap;font-family:Cinzel,serif}.cat-chip.active{background:#8b5cf638;border-color:var(--accent);color:var(--accent2);box-shadow:0 0 10px #8b5cf638}.cat-chip:not(.active){background:transparent;border-color:#8b5cf621;color:var(--text-tertiary)}.cat-chip:hover:not(.active){border-color:var(--border-mid);color:var(--text-secondary);transform:translateY(-1px)}.item-card[draggable=true]{cursor:grab}.item-card[draggable=true]:active{cursor:grabbing}.item-card.dragging{opacity:.42;transform:scale(.97) rotate(-.5deg);border-color:var(--accent)!important;box-shadow:var(--glow-gold)!important}.equip-slot.drag-over{border-color:var(--accent2)!important;border-style:solid!important;background:#8b5cf624!important;box-shadow:var(--glow-gold),inset 0 0 24px #8b5cf61a!important;transform:scale(1.04)}.equip-slot.drag-over-invalid{border-color:var(--red)!important;border-style:solid!important;background:#dc505017!important;box-shadow:0 0 16px #dc505059!important}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;background:linear-gradient(135deg,#1c1c32,#16161f);border:1px solid var(--border-gold);border-radius:var(--radius-md);padding:7px 12px;font-size:11px;color:var(--accent2);font-family:Cinzel,serif;box-shadow:var(--glow-gold),0 10px 36px #000000bf;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;opacity:0;transition:opacity .1s}.drag-hint{position:absolute;bottom:4px;left:50%;transform:translate(-50%);font-size:8px;color:var(--text-tertiary);white-space:nowrap;font-family:Cinzel,serif;letter-spacing:.05em;opacity:0;transition:opacity .2s;pointer-events:none}.panel-right:hover .drag-hint{opacity:1}.slot-unequip{display:flex;position:absolute;top:5px;right:5px;width:18px;height:18px;border-radius:50%;background:#dc50501f;border:1px solid rgba(220,80,80,.28);color:#dc505073;font-size:9px;line-height:1;cursor:pointer;align-items:center;justify-content:center;transition:all var(--t-fast);z-index:10;font-weight:700;opacity:0;transform:scale(.85)}.equip-slot:hover .slot-unequip{opacity:1;transform:scale(1);color:var(--red);background:#dc50502e;border-color:#dc505073}.slot-unequip:hover{background:#dc505085!important;border-color:var(--red)!important;color:#fff!important;transform:scale(1.2)!important;box-shadow:0 0 10px #dc505080}.skill-card{border:1px solid var(--border-light);border-radius:var(--radius-md);padding:10px 12px;background:linear-gradient(160deg,#121220f7,#0a0a14f7);margin-bottom:6px;transition:all var(--t-fast);box-shadow:0 1px 6px #00000059}.skill-card:hover{border-color:var(--border-mid);transform:translateY(-1px);box-shadow:0 4px 14px #00000080}.skill-header{display:flex;align-items:center;gap:7px;margin-bottom:4px}.skill-name{font-family:Cinzel,serif;font-size:11px;font-weight:700;color:var(--text-primary);flex:1}.skill-dmg-type{font-size:8px;font-weight:700;padding:1px 6px;border-radius:3px;border:1px solid;font-family:Cinzel,serif;flex-shrink:0}.skill-desc{font-size:10px;color:var(--text-tertiary);line-height:1.4;margin-bottom:5px;font-style:italic}.skill-stats{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.skill-stat-pill{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:10px;border:1px solid;font-family:Cinzel,serif}.skill-stat-pill.dmg-magic{background:#b888f01a;border-color:#b888f059;color:#c8a8f8}.skill-stat-pill.dmg-projectile{background:#7aacff1a;border-color:#7aacff59;color:#9ac4ff}.skill-stat-pill.dmg-physical{background:#e068681a;border-color:#e0686859;color:#e09090}.skill-stat-pill.dmg-weapon{background:#a78bfa1a;border-color:#a78bfa59;color:var(--accent2)}.skill-stat-pill.crit{background:#ff646412;border-color:#ff646440;color:#ff9090}.skill-stat-pill.cd{background:#5ecf7a12;border-color:#5ecf7a40;color:var(--green)}.skill-stat-pill.util{background:#8b5cf614;border-color:#8b5cf633;color:var(--accent)}.skill-no-class{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 0;color:var(--text-tertiary);font-size:13px;text-align:center}.skill-editor-row{display:flex;flex-direction:column;gap:10px;padding:10px;border:1px solid var(--border-light);border-radius:var(--radius-md);background:linear-gradient(160deg,#12121ef2,#0a0a14f2);position:relative}.skill-editor-row.is-passive{border-color:#b888f059;background:linear-gradient(160deg,#1e1228f2,#120a1cf2)}.skill-editor-row:hover{border-color:var(--border-mid)}.skill-passive-badge{display:inline-flex;align-items:center;gap:3px;font-size:8px;font-weight:700;padding:1px 7px;border-radius:3px;border:1px solid rgba(184,136,240,.5);color:#c8a8f8;background:#b888f01a;font-family:Cinzel,serif;letter-spacing:.06em}.skill-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.skill-editor-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);font-family:Cinzel,serif;margin-bottom:2px}.skill-editor-input{width:100%;padding:5px 8px;border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:11px;outline:none;font-family:Crimson Pro,Georgia,serif;transition:border-color .15s}.skill-editor-input:focus{border-color:var(--border-gold);box-shadow:var(--glow-soft)}.skill-editor-input.wide{grid-column:1/-1}select.skill-editor-input option{background:#13131e}.skill-list-tabs{display:flex;gap:3px;flex-wrap:wrap;margin-bottom:8px}.skill-class-tab{padding:4px 12px;font-size:10px;font-weight:700;border-radius:3px;cursor:pointer;border:1px solid;letter-spacing:.05em;transition:all .14s;font-family:Cinzel,serif}.skill-class-tab.active{background:#8b5cf633;border-color:var(--accent);color:var(--accent2)}.skill-class-tab:not(.active){background:transparent;border-color:#8b5cf61f;color:var(--text-tertiary)}.skill-class-tab:hover:not(.active){border-color:var(--border-mid);color:var(--text-secondary)}.confirm-modal{background:linear-gradient(160deg,#16161f,#0e0e1a);border-radius:var(--radius-xl);border:1px solid var(--border-gold);padding:1.7rem;width:390px;max-width:96vw;display:flex;flex-direction:column;gap:14px;box-shadow:0 16px 60px #000c,var(--glow-soft);animation:modalIn .22s cubic-bezier(.34,1.3,.64,1) both}.confirm-modal h3{font-family:Cinzel,serif;font-size:14px;font-weight:700;color:var(--accent2);letter-spacing:.08em}.confirm-modal p{font-size:13px;color:var(--text-secondary);line-height:1.6}.confirm-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.top-card:hover{border-color:var(--border-gold);box-shadow:var(--glow-soft),var(--shadow-card);transform:translateY(-1px)}.top-card{transition:all var(--t-fast)}@media (max-width: 1300px){.panel-left{width:252px;min-width:220px}.panel-right{width:268px;min-width:230px}.top-cards{grid-template-columns:repeat(3,1fr) 1.1fr 1.1fr;gap:6px}.top-card .tc-val{font-size:22px}.chat-panel{width:320px}}@media (max-width: 1100px){.panel-left{width:230px;min-width:200px}.panel-right{width:248px;min-width:218px}.equip-grid{grid-template-columns:1fr}.top-cards{grid-template-columns:repeat(3,1fr)}.top-card:nth-child(4),.top-card:nth-child(5){display:none}.chat-panel{width:300px;right:8px}.header{padding:0 .8rem;gap:6px}.header-sub{display:none}}@media (max-width: 900px){.panel-left{width:200px}.panel-right{width:224px}.header h1{font-size:12px}.char-grid{grid-template-columns:repeat(3,1fr)}.chat-panel{width:280px}}@keyframes mythique-shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.rarity-mythique{background:linear-gradient(90deg,#c060ff,#e090ff,#9040e0,#d070ff,#c060ff);background-size:300% 300%;animation:mythique-shimmer 3s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 6px rgba(192,96,255,.75))}@keyframes godlike-shimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.rarity-godlike{background:linear-gradient(90deg,#f44,#f88,#c00,#f66,#f44);background-size:300% 300%;animation:godlike-shimmer 3s ease infinite;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 6px rgba(255,60,60,.8))}:focus-visible{outline:2px solid rgba(139,92,246,.7);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid rgba(139,92,246,.7);outline-offset:2px}*{box-sizing:border-box}
