.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0a0a0fbf;display:flex;justify-content:center;align-items:center;z-index:9999}.modal-content{background-color:#2c2f3a;border:1px solid var(--border-color);border-radius:8px;padding:2rem;width:90%;max-width:480px;box-shadow:0 12px 32px #0009;color:var(--text-color);position:relative;animation:scaleIn .2s ease-in-out}.modal-close{position:absolute;top:10px;right:12px;font-size:1.5rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer}.modal-close:hover{color:var(--text-color)}.modal-body h3{margin-top:0;font-size:1.3rem}.modal-body p{margin:.4rem 0}.resistance-list{list-style:none;padding:0;font-size:.95rem}.debuffed{color:var(--text-muted);margin-left:.25rem}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}:root{--accent: #7ed957;--druid-accent: #4caf50;--warrior-accent: #ef4444;--mage-accent: #3b8cf6;--rogue-accent: #8c0bf5;--ranger-accent: #e7ca24;--text-color: #f3f4f6;--text-muted: #9ca3af;--input-bg: #374151;--border-color: #4b5563}body.druid{--accent: var(--druid-accent)}body.warrior{--accent: var(--warrior-accent)}body.mage{--accent: var(--mage-accent)}body.rogue{--accent: var(--rogue-accent)}body.ranger{--accent: var(--ranger-accent)}body{margin:0;font-family:Segoe UI,sans-serif;background-color:#1c1e26;color:var(--text-color);min-height:100vh}.page-container{width:100%;margin:0 auto;padding:2rem;box-sizing:border-box}@media (max-width: 768px){.page-container{padding:1rem}}.layout-left,.layout-right{min-width:0}header{text-align:center;margin-bottom:2rem}h1{font-size:2rem;margin-bottom:.25rem}h1 span{color:#60a5fa}.class-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;max-width:600px;margin:0 auto}.class-button{background:transparent;border:2px solid;padding:1rem 1.5rem;border-radius:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease-in-out;display:flex;align-items:center;gap:.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.class-button:hover{transform:scale(1.05);background-color:#ffffff0d}@media (max-width: 500px){.class-button{width:100%;justify-content:center;font-size:.95rem;padding:.75rem}}.layout-grid{display:grid;gap:2rem;grid-template-columns:1fr 2.5fr;max-width:1800px;padding:0 2rem;box-sizing:border-box;margin:auto;width:100%}.left-panel,.right-panel{display:flex;flex-direction:column;gap:1.5rem}@media (max-width: 768px){.layout-grid{grid-template-columns:1fr}}.card{background-color:#2c2f3a;padding:1rem 1.25rem;border-radius:.75rem;box-shadow:0 8px 16px #0006;border-left:4px solid var(--accent);transition:transform .3s ease,box-shadow .3s ease;width:100%;max-width:100%;box-sizing:border-box;position:relative}.card:hover{transform:translateY(-4px);box-shadow:0 15px 24px #00000080}.card.animate-swap{animation:flip-swap .6s ease;transform-style:preserve-3d;backface-visibility:hidden}@keyframes flip-swap{0%{transform:rotateY(0)}50%{transform:rotateY(90deg)}to{transform:rotateY(0)}}.skills-grid{column-count:2;column-gap:2rem;width:100%}@media (min-width: 1600px){.skills-grid{column-count:3}}@media (max-width: 900px){.skills-grid{column-count:1}}.skill-block{break-inside:avoid;display:block;width:100%;margin-bottom:1.25rem}.skill-input-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.25rem;margin-top:1rem}.input-pair{display:flex;flex-direction:column;gap:.25rem}.input-pair label{font-size:.85rem;color:var(--text-muted);font-weight:500}.skill-input{background-color:var(--input-bg);border:1px solid var(--border-color);color:var(--text-color);padding:.4rem .6rem;border-radius:6px;font-size:.95rem;width:100%;box-sizing:border-box}.skill-damage-block{display:flex;justify-content:space-between;gap:2rem;margin-top:1.5rem;padding:1rem;background-color:#1f232d;border:1px solid var(--border-color);border-radius:8px;font-size:.85rem;color:var(--text-muted);position:relative}.skill-damage-block h4{margin-top:0;margin-bottom:.4rem;font-size:.95rem;color:var(--text-color)}.damage-column{flex:1}.toggle-switch{position:relative;width:40px;height:22px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch label{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#444;border-radius:22px;transition:background-color .3s}.toggle-switch label:before{position:absolute;content:"";height:16px;width:16px;left:3px;top:3px;background-color:#fff;border-radius:50%;transition:transform .3s}.toggle-switch input:checked+label{background-color:var(--accent)}.toggle-switch input:checked+label:before{transform:translate(18px)}.collapse-btn{background:var(--input-bg);border:1px solid var(--border-color);color:var(--text-muted);padding:.25rem .6rem;border-radius:4px;cursor:pointer;font-size:1rem;font-weight:700;transition:all .2s}.collapse-btn:hover{background-color:var(--border-color);color:var(--text-color)}.small-button{font-family:var(--font-body, "Inter", sans-serif);font-size:.85rem;font-weight:500;padding:.45rem 1rem;background-color:var(--accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease,transform .1s ease;box-shadow:0 2px 4px #0000001a}.small-button:hover{filter:brightness(90%);transform:translateY(-1px);box-shadow:0 3px 6px #00000026}.small-button:active{transform:translateY(1px);opacity:.95}.skill-block.excluded{opacity:.5;filter:grayscale(.5)}.skill-block.excluded:hover{transform:none;box-shadow:0 6px 10px #0003}.skill-content-wrapper{overflow:hidden;transition:height .3s ease}.skill-content-inner{padding-top:.1rem;opacity:1;transition:opacity .3s ease}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.duration-inline{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.tiny-input{background-color:var(--input-bg);border:1px solid var(--border-color);color:var(--text-color);padding:.3rem .6rem;border-radius:6px;font-size:.85rem;width:70px;box-sizing:border-box}.input-label{font-size:.85rem;color:var(--text-muted);font-weight:500;margin-bottom:.5rem;display:block}.debuff-grid{display:flex;flex-direction:column;gap:.75rem}.debuff-row{display:flex;align-items:center;gap:.75rem}.debuff-row.inactive{opacity:.5;filter:grayscale(.5)}.debuff-label{width:120px;font-weight:500}.stat-subtext{margin-top:.5rem;font-size:.85rem;color:var(--text-muted);line-height:1.4}.skill-damage-block{display:flex;justify-content:space-between;gap:2rem;margin-top:1rem;padding:1rem;background-color:#1f232d;border:2px solid var(--border-color);border-radius:8px;font-size:.85rem;color:var(--text-muted);min-height:87px;max-height:87px}.skill-damage-block h4{margin-top:-.5rem;margin-bottom:0rem;font-size:.95rem;color:var(--text-color);white-space:nowrap}.damage-column{flex:1;min-width:130px;max-width:160px;display:flex;flex-direction:column;gap:.25rem}.damage-column p{margin:0;display:flex;justify-content:space-between;white-space:nowrap}.damage-column strong{text-align:right;display:inline-block;min-width:90px;font-variant-numeric:tabular-nums}#results{margin-top:1.5rem}.results-table-container{overflow-x:auto}.results-table{width:100%;border-collapse:collapse;margin-top:0;background-color:transparent}.results-table th,.results-table td{border:1px solid var(--border-color);padding:.75rem;text-align:left;font-size:.9em;white-space:nowrap;vertical-align:middle}.results-table th{background-color:#0003;font-weight:600;color:var(--text-color);text-transform:none;letter-spacing:normal}.results-table td{border-bottom:1px solid var(--border-color)}.results-table tr:last-child td{border-bottom:1px solid var(--border-color)}.results-table tr.total-row{background-color:#1e40af4d;font-weight:500}.results-table tr.total-row td{border-top:1px solid var(--border-color)}.results-table .col-avg-dmg,.results-table .col-dps,.results-table .col-percent,.results-table .col-casted-hit,.results-table td.col-avg-dmg,.results-table td.col-dps,.results-table td.col-percent,.results-table td.col-casted-hit{text-align:right;font-family:var(--results-stat-font)}.results-table tr.total-row #total-dps-output{color:var(--text-color);font-size:inherit}.damage-breakdown{margin-top:1.5rem}.damage-breakdown h3{font-size:1.125rem;font-weight:500;margin-bottom:.75rem}.damage-bar-container{height:2rem;width:100%;background-color:#4b5563;border-radius:9999px;overflow:hidden}.damage-bar-flex{display:flex;height:100%}.damage-legend{display:flex;flex-wrap:wrap;margin-top:.5rem;font-size:.875rem;color:var(--text-muted)}.legend-item{display:flex;align-items:center;margin-right:1rem;margin-bottom:.25rem}.legend-color-box{width:.75rem;height:.75rem;margin-right:.25rem;border-radius:2px}.feedback-message{text-align:right;font-size:.85rem;font-style:italic;color:var(--accent);opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}.feedback-message.visible{opacity:1;transform:translateY(0)}.class-dropdown{background-color:#1e1e1e;color:#fff;padding:.4rem .75rem;font-size:.9rem;border-radius:6px;border:1px solid var(--accent)}.shuffle-toggle-btn{display:flex;align-items:center;justify-content:center;font-size:1rem;padding:.2rem .4rem;background:var(--input-bg);border:1px solid var(--border-color, #444);border-radius:4px;color:var(--text-muted);cursor:pointer;transition:transform .2s ease,background-color .2s ease}.shuffle-toggle-btn:hover{background-color:#ffffff0d;transform:rotate(15deg)}.shuffle-toggle-btn:active{transform:scale(.95)}@keyframes info-pulse{0%{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(.95)}75%{transform:scale(1.05)}to{transform:scale(1)}}.skill-info-icon{position:absolute;bottom:.2rem;right:.2rem;opacity:.6;cursor:pointer;transition:filter .3s ease-in-out,opacity .2s ease-in-out}.skill-info-icon:hover{opacity:1;filter:drop-shadow(0 0 10px var(--accent)) brightness(1.5);animation:info-pulse .5s ease-in-out}.modal-section{padding:1.5rem;font-size:.95rem;color:var(--text-muted)}.modal-section strong{color:var(--text-color)}.modal-title{font-size:1.4rem;margin-top:0;margin-bottom:1rem;color:var(--accent);font-weight:600}.modal-section h3{margin-bottom:1rem;font-size:1.1rem;font-weight:600;color:var(--text-color)}.modal-section ul{margin:0;padding-left:1rem;list-style-type:disc}.modal-section li{margin-bottom:.4rem}
