@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&display=swap";.character-header{display:grid;grid-template-columns:auto 1fr auto;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.character-header.character-down{border-color:var(--danger);box-shadow:inset 0 0 20px rgba(var(--danger-rgb, 220, 38, 38),.1)}.play-mode-btn.top-bar-lock{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast)}.play-mode-btn.top-bar-lock:hover{background:var(--bg-hover);color:var(--text-primary)}.play-mode-btn.top-bar-lock.locked{background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary)}.initiative-bonus-standalone{width:36px;padding:4px;font-size:var(--font-sm);text-align:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.initiative-bonus-standalone:focus{outline:none;border-color:var(--accent-primary)}.proficiency-input-only{width:44px!important;font-size:var(--font-md)!important;text-align:center}@media (max-width: 900px){.character-header{grid-template-columns:auto 1fr;gap:var(--spacing-sm)}.combat-stats{grid-column:1 / -1}}@media (max-width: 700px){.character-header{grid-template-columns:1fr}}.portrait-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.portrait-container{width:100px;height:100px;border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;position:relative;background:var(--bg-tertiary);border:2px dashed var(--border-color);transition:all var(--transition-normal)}.portrait-container:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.portrait-image{width:100%;height:100%;object-fit:cover}.portrait-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-muted);font-size:var(--font-xs)}.portrait-remove{position:absolute;top:2px;right:2px;background:var(--danger);color:#fff;border-radius:var(--radius-full);padding:2px;opacity:0;transition:opacity var(--transition-fast)}.portrait-container:hover .portrait-remove{opacity:1}.play-mode-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast)}.play-mode-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.play-mode-btn.locked{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}.info-section{display:flex;flex-direction:column;gap:var(--spacing-xs);justify-content:center}.name-row{display:flex;align-items:center;gap:var(--spacing-sm)}.character-name{font-size:var(--font-xl);font-weight:700;background:transparent;border:none;color:var(--text-primary);padding:var(--spacing-xs) 0;flex:1;min-width:0;border-bottom:2px solid transparent}.character-name:focus{outline:none;border-bottom-color:var(--accent-primary);box-shadow:none}.inspiration-box{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--crit-bg);border:1px solid var(--crit-color);border-radius:var(--radius-md);color:var(--crit-color)}.inspiration-input{width:32px;padding:2px;background:transparent;border:none;font-size:var(--font-md);font-weight:600;text-align:center;color:var(--crit-color)}.inspiration-input:focus{outline:none}.detail-row{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.detail-row.compact{gap:var(--spacing-xs)}.detail-input{flex:1;min-width:100px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--font-sm)}.detail-input.small{flex:.5;min-width:80px}.personality-toggle{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:transparent;border:none;color:var(--text-muted);font-size:var(--font-xs);cursor:pointer;transition:color var(--transition-fast)}.personality-toggle:hover{color:var(--text-primary)}.personality-section{margin-top:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}.personality-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}.personality-field label{display:block;font-size:var(--font-xs);color:var(--text-muted);margin-bottom:2px}.personality-field textarea{width:100%;min-height:40px;padding:var(--spacing-xs);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--font-xs);resize:vertical}@media (max-width: 600px){.personality-grid{grid-template-columns:1fr}}.combat-stats{display:flex;flex-direction:column;gap:var(--spacing-xs);position:relative}.combat-stats .floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border-color);box-shadow:var(--shadow-lg);animation:initFloatUp 3s ease-out forwards;pointer-events:none;z-index:100}.combat-stats .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.combat-stats .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.combat-stats .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.combat-stats .floating-roll-result.crit .floating-roll-value{color:var(--crit-color)}.combat-stats .floating-roll-result.fail .floating-roll-value{color:var(--fail-color)}.combat-stats .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.combat-stats .floating-roll-labels{display:flex;gap:4px;align-items:center}.combat-stats .floating-roll-adv{font-size:var(--font-xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm)}.combat-stats .floating-roll-adv.advantage{background:var(--success);color:#fff}.combat-stats .floating-roll-adv.disadvantage{background:var(--danger);color:#fff}.combat-stats .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.combat-stats .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}@keyframes initFloatUp{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(.8)}}.stat-box{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.stat-box.compact{padding:var(--spacing-xs);min-width:60px}.stat-row-compact{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.stat-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-light);border-radius:var(--radius-md);color:var(--accent-primary);flex-shrink:0}.stat-icon-inline{color:var(--accent-primary);flex-shrink:0}.stat-content{display:flex;flex-direction:column;gap:0}.stat-label{font-size:9px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}.stat-value{font-size:var(--font-md);font-weight:700;color:var(--text-primary)}.stat-value-input{font-size:var(--font-md);font-weight:700;width:40px;padding:0;background:transparent;border:none;border-bottom:1px solid transparent;text-align:center}.stat-value-input:focus{outline:none;border-bottom-color:var(--accent-primary)}.proficiency-input{width:44px}.proficiency-edit{display:flex;align-items:baseline;gap:6px}.hp-box{flex-wrap:wrap}.hp-display{display:flex;align-items:center;gap:2px}.hp-current,.hp-max{width:40px;padding:0;font-size:var(--font-lg);font-weight:700;background:transparent;border:none;border-bottom:1px solid transparent;text-align:center}.hp-current{color:var(--success)}.hp-max{color:var(--text-secondary)}.hp-current:focus,.hp-max:focus{outline:none;border-bottom-color:var(--accent-primary)}.hp-separator{color:var(--text-muted);font-size:var(--font-md)}.hp-temp{font-size:var(--font-xs);color:var(--info);font-weight:500}.hp-controls{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-left:auto}.temp-hp-input{width:50px;padding:2px var(--spacing-xs);font-size:var(--font-xs);text-align:center}.quick-damage-buttons{display:flex;gap:2px}.quick-damage-btn{display:flex;align-items:center;gap:1px;padding:2px 4px;background:var(--danger-light, rgba(220, 38, 38, .1));border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);font-size:10px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.quick-damage-btn:hover{background:var(--danger);color:#fff}.speed-input{display:flex;align-items:center;gap:2px}.speed-input input{width:36px;padding:0;font-size:var(--font-md);font-weight:700;background:transparent;border:none;border-bottom:1px solid transparent;text-align:center}.speed-input input:focus{outline:none;border-bottom-color:var(--accent-primary)}.speed-input span{color:var(--text-muted);font-size:var(--font-xs)}.proficiency-box{background:var(--accent-light);border-color:var(--accent-primary);min-width:90px}.proficiency-value{color:var(--accent-primary)}.initiative-box{position:relative}.initiative-box.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.initiative-box.clickable:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.initiative-roll{cursor:pointer;-webkit-user-select:none;user-select:none}.initiative-roll:hover{text-decoration:underline}.hit-dice-row{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.hit-dice-box{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.hit-dice-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase}.hit-dice-display{display:flex;align-items:center;gap:2px}.hit-dice-display input{width:28px;padding:0;font-size:var(--font-md);font-weight:600;text-align:center;background:transparent;border:none;border-bottom:1px solid transparent}.hit-dice-display input:focus{outline:none;border-bottom-color:var(--accent-primary)}.hit-dice-display span{color:var(--text-muted)}.hit-dice-remaining,.hit-dice-remaining-input{font-weight:700;color:var(--accent-primary)}.hit-die-select{padding:2px 4px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--font-sm);font-weight:600;color:var(--accent-primary);cursor:pointer}.roll-hit-die{padding:var(--spacing-xs)}.long-rest-btn{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-xs)}.death-saves-compact{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--danger-light, rgba(220, 38, 38, .1));border:1px solid var(--danger);border-radius:var(--radius-md)}.death-saves-header{display:flex;align-items:center;gap:var(--spacing-xs)}.death-saves-edit{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.death-edit-label{font-size:9px;font-weight:800;color:var(--text-muted)}.death-edit-input{width:26px;padding:1px;text-align:center;font-size:10px;font-weight:800;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.death-edit-input.success{border-color:var(--success)}.death-edit-input.failure{border-color:var(--danger)}.death-saves-label{font-weight:600;color:var(--danger);font-size:var(--font-xs)}.death-saves-checks{display:flex;gap:var(--spacing-sm)}.death-row{display:flex;gap:3px}.death-row.success .death-check{border-color:var(--success)}.death-row.success .death-check.checked{background:var(--success)}.death-row.failure .death-check{border-color:var(--danger)}.death-row.failure .death-check.checked{background:var(--danger)}.death-check{width:16px;height:16px;border-radius:var(--radius-full);background:var(--bg-tertiary);border:2px solid var(--success);cursor:pointer;transition:all var(--transition-fast);padding:0}.death-check:hover{transform:scale(1.1)}.roll-death-save,.reset-death{padding:2px 4px}@media (max-width: 600px){.stat-row-compact{display:grid;grid-template-columns:repeat(3,1fr)}.hit-dice-row{flex-direction:column;align-items:flex-start}}.floating-number{position:absolute;top:-10px;left:50%;transform:translate(-50%);font-size:var(--font-lg);font-weight:700;pointer-events:none;z-index:10;animation:floatUp 2.4s ease-out forwards}.floating-number.heal{color:var(--success);left:25%}.floating-number.damage{color:var(--danger);left:50%}.floating-number.roll{color:var(--accent-primary);left:75%;font-size:var(--font-md)}@keyframes floatUp{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-30px)}}.hp-display{position:relative}.character-header.play-mode .stat-value-input[disabled],.character-header.play-mode .hp-max[disabled],.character-header.play-mode .hit-dice-display input[disabled],.character-header.play-mode .speed-input input[disabled]{border-bottom:none;cursor:default;opacity:1}.character-header.play-mode .hit-die-select[disabled]{display:none}.character-header.play-mode .hit-dice-display:after{content:attr(data-die);font-size:var(--font-sm);font-weight:600;color:var(--accent-primary)}.hp-max-static{font-size:var(--font-lg);font-weight:700;color:var(--text-secondary)}.hit-dice-total-static{font-size:var(--font-md);font-weight:600;color:var(--text-primary)}.hit-die-type-static{font-size:var(--font-sm);font-weight:600;color:var(--accent-primary);margin-left:var(--spacing-xs)}.abilities-panel{padding:var(--spacing-sm);position:relative}.abilities-panel .floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border-color);box-shadow:var(--shadow-lg);animation:floatUp 3s ease-out forwards;pointer-events:none;z-index:100}.abilities-panel .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.abilities-panel .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.abilities-panel .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.abilities-panel .floating-roll-result.crit .floating-roll-value{color:var(--crit-color)}.abilities-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-color)}.abilities-panel .floating-roll-labels{display:flex;gap:4px;align-items:center}.abilities-panel .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.abilities-panel .floating-roll-adv{font-size:var(--font-xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm)}.abilities-panel .floating-roll-adv.advantage{background:var(--success);color:#fff}.abilities-panel .floating-roll-adv.disadvantage{background:var(--danger);color:#fff}.abilities-panel .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.abilities-panel .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}@keyframes floatUp{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(.8)}}.abilities-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--spacing-xs)}@media (max-width: 1200px){.abilities-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.abilities-panel .ability-card{padding:var(--spacing-xs)}.abilities-panel .ability-modifier{width:40px;height:40px}.abilities-panel .modifier-value{font-size:var(--font-lg)}.abilities-panel .ability-score{width:32px;height:20px}.abilities-panel .ability-score span,.abilities-panel .ability-score input{font-size:var(--font-xs)}@media (max-width: 520px){.abilities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 340px){.abilities-grid{grid-template-columns:1fr}}.ability-card{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-xs);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast)}.ability-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.ability-header{display:flex;flex-direction:column;align-items:center;margin-bottom:2px}.ability-abbrev{font-size:var(--font-xs);font-weight:700;color:var(--accent-primary);letter-spacing:1px}.ability-name{font-size:.55rem;color:var(--text-muted);text-transform:uppercase}.ability-modifier{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs);width:52px;height:52px;background:var(--accent-light);border:2px solid var(--accent-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);position:relative}.ability-modifier:hover{transform:scale(1.05);box-shadow:var(--shadow-glow)}.ability-modifier:active{transform:scale(.95)}.modifier-value{font-size:var(--font-xl);font-weight:700;color:var(--accent-primary)}.roll-icon{position:absolute;bottom:4px;right:4px;color:var(--accent-secondary);opacity:.6;transition:opacity var(--transition-fast)}.ability-modifier:hover .roll-icon{opacity:1}.ability-score{margin-top:2px;width:36px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm)}.ability-score span{font-size:var(--font-sm);font-weight:600;cursor:pointer}.ability-score input{width:100%;height:100%;text-align:center;font-size:var(--font-sm);font-weight:600;padding:0;border:none;background:transparent}.ability-score input:focus{outline:none;box-shadow:none}.ability-save{display:flex;align-items:center;gap:2px;margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);width:100%;justify-content:center}.proficiency-toggle{display:flex;align-items:center;gap:2px;padding:4px;background:transparent;border:none;cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast);border-radius:var(--radius-sm)}.proficiency-toggle:hover{background:var(--bg-hover)}.proficiency-toggle.proficient{color:var(--success)}.proficiency-toggle.expertise{color:var(--crit-color)}.save-modifier{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-xs)}.save-modifier:hover{border-color:var(--accent-primary);background:var(--accent-light)}.save-modifier span:first-child{color:var(--text-muted);font-weight:500}.save-value{font-weight:700;color:var(--text-primary)}.skills-panel{padding:var(--spacing-md);position:relative}.skills-panel .floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border-color);box-shadow:var(--shadow-lg);animation:skillFloatUp 3s ease-out forwards;pointer-events:none;z-index:100}.skills-panel .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.skills-panel .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.skills-panel .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.skills-panel .floating-roll-result.crit .floating-roll-value{color:var(--crit-color)}.skills-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-color)}.skills-panel .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.skills-panel .floating-roll-labels{display:flex;gap:4px;align-items:center}.skills-panel .floating-roll-adv{font-size:var(--font-xs);font-weight:700;padding:2px 6px;border-radius:var(--radius-sm)}.skills-panel .floating-roll-adv.advantage{background:var(--success);color:#fff}.skills-panel .floating-roll-adv.disadvantage{background:var(--danger);color:#fff}.skills-panel .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.skills-panel .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}@keyframes skillFloatUp{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-80%) scale(.8)}}.skills-list{display:flex;flex-direction:column;gap:2px;overflow-y:auto;overflow-x:hidden;max-height:calc(100vh - 20px);min-height:200px;padding-right:4px;padding-bottom:4px}.skill-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);min-height:36px}.skill-row.proficient{background:var(--success-light)}.skill-row.expertise{background:var(--crit-bg)}.skill-rollable{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.skill-rollable:hover{background:var(--bg-hover)}.skill-rollable:active{transform:scale(.98)}.skill-row.proficient .skill-rollable:hover{background:#22c55e40}.skill-row.expertise .skill-rollable:hover{background:#fbbf2440}.proficiency-btn{display:flex;align-items:center;justify-content:center;gap:1px;width:28px;min-width:28px;height:28px;padding:0;background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast);border-radius:var(--radius-sm);flex-shrink:0;overflow:hidden}.proficiency-btn:hover{background:var(--bg-hover);border-color:var(--accent)}.proficiency-btn:disabled{display:none}.proficiency-btn.proficient{color:var(--success);background:var(--success-light);border-color:var(--success)}.proficiency-btn.expertise{color:var(--crit-color);background:var(--crit-bg);border-color:var(--crit-color)}.skill-modifier{font-weight:700;font-size:var(--font-md);min-width:32px;text-align:center;color:var(--text-primary)}.skill-name{flex-grow:1;font-size:var(--font-sm);color:var(--text-primary);display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:baseline}.skill-name-primary{color:var(--text-primary)}.skill-name-secondary{color:var(--text-muted);font-size:var(--font-xs)}.skill-ability{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase}.roll-hint{color:var(--text-muted);opacity:0;transition:opacity var(--transition-fast)}.skill-rollable:hover .roll-hint{opacity:1}@media (pointer: coarse){.roll-hint{opacity:.5}}.sort-toggle{margin-left:auto;opacity:.6}.sort-toggle:hover{opacity:1}.sort-toggle.active{opacity:1;color:var(--accent-primary);background:var(--accent-light)}.weapons-panel{padding:var(--spacing-sm);position:relative}.weapons-panel .floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border-color);box-shadow:var(--shadow-lg);animation:weaponFloatUpFade 3s ease-out forwards;pointer-events:none;z-index:100}.weapons-panel .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.weapons-panel .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.weapons-panel .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.weapons-panel .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}.weapons-panel .floating-roll-labels{display:flex;gap:4px;align-items:center}.weapons-panel .floating-roll-adv{font-size:var(--font-sm);font-weight:700;padding:2px 8px;border-radius:var(--radius-sm)}.weapons-panel .floating-roll-adv.advantage{background:var(--success);color:#fff}.weapons-panel .floating-roll-adv.disadvantage{background:var(--danger);color:#fff}.weapons-panel .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.weapons-panel .floating-roll-result.crit .floating-roll-value{color:var(--crit-color)}.weapons-panel .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.weapons-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-color)}.weapons-panel .floating-roll-result.damage{background:var(--fail-bg);border-color:var(--danger)}.weapons-panel .floating-roll-result.damage .floating-roll-value{color:var(--danger)}.weapons-panel .floating-roll-result.normal .floating-roll-value{color:var(--text-primary)}@keyframes weaponFloatUpFade{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}80%{opacity:1;transform:translate(-50%,-100%) scale(1)}to{opacity:0;transform:translate(-50%,-120%) scale(.9)}}.weapons-list{display:flex;flex-direction:column;gap:4px;max-height:none;overflow-y:auto;padding-right:4px}.weapons-list:has(.weapon-card:nth-child(4)){max-height:168px}.weapon-card{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast);min-height:52px}.weapon-card:hover{border-color:var(--accent-primary)}.weapon-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.weapon-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.weapon-actions{display:flex;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.weapon-card:hover .weapon-actions{opacity:1}@media (pointer: coarse){.weapon-actions{opacity:1}}.weapon-stats{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.weapon-attack,.weapon-damage{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-xs)}.weapon-attack:hover,.weapon-damage:hover{border-color:var(--accent-primary);background:var(--accent-light)}.weapon-attack:active,.weapon-damage:active{transform:scale(.95)}.weapon-attack{color:var(--info)}.weapon-damage{color:var(--danger)}.weapon-nick{color:var(--warning);border-color:var(--warning)}.weapon-nick:hover{background:rgba(var(--warning-rgb, 234, 179, 8),.1)}.damage-type{font-size:var(--font-xs);color:var(--text-muted);margin-left:4px}.weapon-properties{display:flex;flex-wrap:wrap;gap:4px}.property-tag{padding:2px 6px;background:var(--bg-hover);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary)}.weapon-form{padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--accent-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.form-row{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.form-row input[type=text],.form-row input[type=number]{flex:1;min-width:80px}.form-row select{padding:var(--spacing-xs) var(--spacing-sm)}.checkbox-label{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:var(--font-sm);white-space:nowrap}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-muted);text-align:center}.empty-state svg{margin-bottom:var(--spacing-sm);opacity:.5}.empty-state p{font-size:var(--font-sm)}.hp-panel{display:flex;flex-direction:column;gap:.5rem;position:relative}.hp-panel.character-down{--card-border-color: var(--danger);box-shadow:0 0 10px var(--danger);animation:characterDownPulse 2s ease-in-out infinite}@keyframes characterDownPulse{0%,to{box-shadow:0 0 10px var(--danger)}50%{box-shadow:0 0 20px var(--danger),0 0 30px #dc354580}}.hp-panel .card-header{padding:.5rem}.hp-panel .card-title{font-size:.9rem;display:flex;align-items:center;gap:.25rem}.hp-panel-content{padding:.5rem;display:flex;flex-direction:column;gap:.5rem;position:relative}.hp-panel .floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);background:var(--bg-secondary);border:2px solid var(--border-color);box-shadow:var(--shadow-lg);animation:floatUpFade 3s ease-out forwards;pointer-events:none;z-index:100}.hp-panel .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.hp-panel .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.hp-panel .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.hp-panel .floating-roll-result.crit .floating-roll-value{color:var(--crit-color)}.hp-panel .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.hp-panel .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.hp-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-color)}.hp-panel .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}.hp-panel .floating-roll-result.heal{background:var(--success-light);border-color:var(--success)}.hp-panel .floating-roll-result.heal .floating-roll-value{color:var(--success)}.hp-panel .floating-roll-result.damage{background:var(--fail-bg);border-color:var(--danger)}.hp-panel .floating-roll-result.damage .floating-roll-value{color:var(--danger)}.hp-panel .floating-roll-result.normal .floating-roll-value{color:var(--text-primary)}@keyframes floatUpFade{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}80%{opacity:1;transform:translate(-50%,-100%) scale(1)}to{opacity:0;transform:translate(-50%,-120%) scale(.9)}}.hp-main-display{display:flex;align-items:center;justify-content:center;gap:.25rem;font-family:var(--font-medieval);padding:var(--spacing-xs);border-radius:var(--radius-md);transition:all .15s ease}.hp-main-display.hp-flash-damage{animation:hpFlashDamage .6s ease-out}.hp-main-display.hp-flash-heal{animation:hpFlashHeal .6s ease-out}@keyframes hpFlashDamage{0%{background:#dc354566;box-shadow:0 0 15px #dc354599}50%{background:#dc354533;box-shadow:0 0 10px #dc354566}to{background:transparent;box-shadow:none}}@keyframes hpFlashHeal{0%{background:#22c55e66;box-shadow:0 0 15px #22c55e99}50%{background:#22c55e33;box-shadow:0 0 10px #22c55e66}to{background:transparent;box-shadow:none}}.hp-current-large{width:70px;font-size:1.2rem;font-weight:700;text-align:center;border:none;background:transparent;color:var(--text-color);font-family:inherit}.hp-current-large:focus{outline:2px solid var(--primary);border-radius:var(--border-radius)}.hp-separator-large{font-size:1.2rem;color:var(--text-muted)}.hp-max-large{width:70px;font-size:1.2rem;color:var(--text-muted)}.hp-max-large.editable{width:70px;text-align:center;border:none;background:transparent;font-family:inherit}.hp-max-large.editable:focus{outline:2px solid var(--primary);border-radius:var(--border-radius)}.hp-temp-row{display:flex;align-items:center;justify-content:center;gap:.5rem;font-size:.8rem}.hp-temp-row label{color:var(--text-muted)}.temp-hp-input{width:50px;text-align:center;padding:.25rem;font-size:.9rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-color)}.quick-damage-row{display:flex;gap:.25rem;justify-content:center;flex-wrap:wrap}.quick-damage-btn{display:flex;align-items:center;gap:.125rem;padding:.2rem .4rem;font-size:.75rem;background:var(--danger);color:#fff;border:none;border-radius:var(--border-radius);cursor:pointer;transition:background-color .15s,transform .1s}.quick-damage-btn:hover{background:#bb2d3b;transform:scale(1.05)}.quick-damage-btn:active{transform:scale(.95)}.hit-dice-section{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;background:var(--card-bg);border-radius:var(--border-radius);border:1px solid var(--card-border)}.hit-dice-header{display:flex;align-items:center;gap:.5rem}.hit-dice-label{font-size:.75rem;color:var(--text-muted);flex:1}.hit-dice-display{display:flex;align-items:center;gap:.25rem;font-size:.9rem}.hit-dice-remaining-input{width:32px;text-align:center;padding:.125rem;font-size:.9rem;background:transparent;border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-color)}.hit-die-type{font-size:.85rem;color:var(--text-muted);margin-left:.25rem}.hit-die-select{padding:.125rem;font-size:.85rem;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-color)}.long-rest-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;font-size:.8rem}.death-saves-section{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:rgba(var(--danger-rgb, 220, 53, 69),.1);border-radius:var(--border-radius);border:1px solid var(--danger)}.death-saves-header{display:flex;align-items:center;gap:.5rem}.death-saves-label{flex:1;font-size:.75rem;font-weight:600;color:var(--danger)}.death-saves-grid{display:flex;flex-direction:column;gap:.25rem}.death-save-row{display:flex;align-items:center;gap:.25rem;font-size:.8rem}.death-save-row span:first-child{width:1rem;text-align:center;font-weight:700}.death-save-row.success span:first-child{color:var(--success)}.death-save-row.failure span:first-child{color:var(--danger)}.death-check{width:16px;height:16px;border-radius:50%;border:2px solid currentColor;background:transparent;cursor:pointer;transition:background-color .15s;padding:0}.death-save-row.success .death-check{border-color:var(--success)}.death-save-row.failure .death-check{border-color:var(--danger)}.death-check.checked{background:currentColor}.death-save-row.success .death-check.checked{background:var(--success)}.death-save-row.failure .death-check.checked{background:var(--danger)}.death-edit-input{width:28px;text-align:center;font-size:.8rem;padding:.125rem;background:transparent;border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-color);margin-left:auto}.character-switcher{position:relative}.switcher-trigger{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.switcher-trigger .current-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-trigger .rotated{transform:rotate(180deg)}.switcher-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.switcher-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:320px;max-height:400px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;animation:slideUp .2s ease-out}.dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:var(--font-sm);font-weight:600;color:var(--text-secondary)}.header-actions{display:flex;gap:4px}.characters-list{max-height:250px;overflow-y:auto}.character-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-light);transition:all var(--transition-fast)}.character-item:hover{background:var(--bg-hover)}.character-item.active{background:var(--accent-light);border-left:3px solid var(--accent-primary)}.character-info{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;flex:1;min-width:0}.char-avatar{width:36px;height:36px;border-radius:var(--radius-md);object-fit:cover}.char-details{display:flex;flex-direction:column;min-width:0}.char-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.char-meta{font-size:var(--font-xs);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--transition-fast)}.character-item:hover .character-actions{opacity:1}@media (pointer: coarse){.character-actions{opacity:1}}.delete-confirm{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;font-size:var(--font-sm);color:var(--danger)}.create-form{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border-color)}.create-form input{flex:1}.create-btn{width:100%;justify-content:center;border-radius:0;border-top:1px solid var(--border-color)}.create-btn:hover{background:var(--accent-light);color:var(--accent-primary)}.settings-trigger{color:var(--text-secondary)}.settings-trigger:hover{color:var(--text-primary)}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199;animation:fadeIn .2s ease-out}.settings-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;animation:slideUp .2s ease-out}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.settings-header h3{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);margin:0}.settings-content{padding:var(--spacing-md)}.settings-section{margin-bottom:var(--spacing-lg)}.section-label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}@media (max-width: 450px){.theme-options{grid-template-columns:repeat(2,1fr)}}.theme-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-sm);color:var(--text-secondary)}.theme-btn:hover{border-color:var(--accent-primary)}.theme-btn.active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.color-options{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:var(--radius-full);border:3px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.active{border-color:var(--text-primary);box-shadow:var(--shadow-glow)}.font-options{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm)}.font-btn{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-sm);color:var(--text-secondary)}.font-btn:hover{border-color:var(--accent-primary)}.font-btn.active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.settings-info{padding-top:var(--spacing-md);border-top:1px solid var(--border-light);font-size:var(--font-sm);color:var(--text-muted)}.settings-info p{margin-bottom:var(--spacing-xs)}.settings-toggle{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.settings-toggle label{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary)}.settings-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--accent-primary)}.toggle-hint{font-size:var(--font-xs);color:var(--text-muted);margin-left:calc(18px + var(--spacing-sm))}.settings-content{max-height:70vh;overflow-y:auto}.inventory-with-currency{display:flex;gap:var(--spacing-md);min-width:0}.currency-sidebar{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:70px;padding:var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.currency-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xs);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-light)}.currency-total{font-size:var(--font-xs);font-weight:700;color:var(--crit-color)}.currency-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.currency-row{display:flex;align-items:center;gap:var(--spacing-xs)}.currency-row .currency-label{font-size:10px;font-weight:700;min-width:22px;cursor:help}.currency-row.pp .currency-label{color:#a5b4fc}.currency-row.gp .currency-label{color:#fbbf24}.currency-row.ep .currency-label{color:#94a3b8}.currency-row.sp .currency-label{color:#cbd5e1}.currency-row.cp .currency-label{color:#f59e0b}.currency-row .currency-input{width:45px;padding:2px 4px;text-align:center;font-size:var(--font-sm);font-weight:600;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.currency-row .currency-input:focus{outline:none;border-color:var(--accent-primary)}.currency-row .currency-input::-webkit-outer-spin-button,.currency-row .currency-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.currency-row .currency-input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.inventory-panel{flex:1;padding:var(--spacing-sm);min-width:0;container-name:inventory;container-type:inline-size}.inventory-stack{display:flex;flex-direction:column;gap:var(--spacing-lg)}.add-item-form{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--bg-tertiary);border:1px solid var(--accent-primary);border-radius:var(--radius-md);margin-bottom:var(--spacing-sm)}.add-item-form input[type=text]{flex:1;min-width:0}.inventory-list{display:grid;grid-template-columns:1fr;gap:2px;overflow-x:hidden;overflow-y:auto;max-height:300px;max-width:100%;min-width:0}@supports (container-type: inline-size){@container inventory (min-width: 740px){.inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@container inventory (min-width: 1120px){.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}}@supports not (container-type: inline-size){@media (min-width: 900px){.inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1300px){.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}}.inventory-item{display:flex;align-items:center;justify-content:space-between;background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);min-width:0;gap:var(--spacing-xs)}.inventory-item:hover{background:var(--bg-hover)}.item-info{display:flex;align-items:center;gap:var(--spacing-xs);flex:1;min-width:0;flex-wrap:wrap}.item-quantity{font-weight:700;font-size:var(--font-xs);color:var(--accent-primary);min-width:24px}.item-quantity.empty{color:var(--danger)}.item-name{font-size:var(--font-sm);color:var(--text-primary);min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.item-name.empty{color:var(--text-muted);text-decoration:line-through}.item-notes{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.item-actions{display:flex;gap:2px;max-width:0;overflow:hidden;opacity:0;transition:opacity var(--transition-fast),max-width var(--transition-fast)}.inventory-item:hover .item-actions{opacity:1;max-width:160px}@media (pointer: coarse){.item-actions{opacity:1;max-width:160px}}.quantity-btn{font-size:var(--font-md);font-weight:700}.item-edit{display:flex;gap:var(--spacing-xs);width:100%}.item-edit input[type=text]{flex:1}.inventory-footer{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);font-size:var(--font-xs);color:var(--text-muted);text-align:right}.features-panel{padding:var(--spacing-sm)}.counter-help{padding:2px var(--spacing-sm);margin-bottom:var(--spacing-xs);color:var(--text-muted);font-size:var(--font-xs)}.features-list{overflow-y:auto;padding-bottom:4px;height:295px}.feature-card{display:flex;align-items:stretch;gap:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast);overflow:hidden;margin-bottom:3px}.feature-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.feature-card.dragging{opacity:.5;transform:scale(.98);box-shadow:var(--shadow-lg)}.feature-card.editing{cursor:default;flex-direction:column}.feature-drag-handle{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xs);color:var(--text-muted);cursor:grab;flex-shrink:0;background:var(--bg-hover);border-right:1px solid var(--border-color);opacity:.5;transition:all var(--transition-fast)}.feature-card:hover .feature-drag-handle{opacity:1;background:var(--accent-light);color:var(--accent-primary)}.feature-drag-handle:active{cursor:grabbing}.feature-content{flex:1;min-width:0;padding:var(--spacing-xs) var(--spacing-sm)}.feature-header{display:flex;align-items:baseline;gap:var(--spacing-xs);flex-wrap:wrap}.feature-name{font-size:var(--font-sm);font-weight:600;color:var(--text-primary);margin:0}.feature-source{font-size:10px;color:var(--accent-primary);background:var(--accent-light);padding:1px 4px;border-radius:var(--radius-sm)}.feature-description{font-size:var(--font-xs);color:var(--text-secondary);margin:0;line-height:1.4;white-space:pre-wrap}.feature-counter{display:inline-flex;align-items:center;gap:2px;margin:0 2px;vertical-align:middle}.counter-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}.counter-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.counter-btn:disabled{opacity:.3;cursor:not-allowed}.counter-btn.minus:hover:not(:disabled){background:var(--danger);border-color:var(--danger)}.counter-value{font-weight:700;font-size:var(--font-xs);padding:0 4px;min-width:28px;text-align:center;background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.counter-value.empty{color:var(--danger);background:#ef44441a;border-color:var(--danger)}.counter-lr,.counter-sr{font-size:9px;font-weight:700;color:var(--success);background:#22c55e26;padding:1px 3px;border-radius:var(--radius-sm);margin-left:2px;cursor:help}.counter-sr{color:var(--info);background:#3b82f626}.feature-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast);padding-right:var(--spacing-xs)}.feature-card:hover .feature-actions{opacity:1}@media (pointer: coarse){.feature-actions{opacity:1}.feature-drag-handle{opacity:.6}}.features-empty{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-muted);text-align:center}.new-feature{cursor:default;overflow:auto!important;min-height:200px}.add-feature-form,.edit-feature-form{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%}.form-input{padding:var(--spacing-xs);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--text-primary)}.form-input:focus{outline:none;border-color:var(--accent-primary)}.form-textarea{padding:var(--spacing-xs);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--text-primary);resize:vertical;min-height:50px;font-family:inherit}.form-textarea:focus{outline:none;border-color:var(--accent-primary)}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-xs)}.btn-xs{padding:var(--spacing-xs)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm)}.btn-danger:hover{color:var(--danger)}.backstory-panel{padding:var(--spacing-md);height:auto}.backstory-sections{display:flex;flex-direction:column;gap:var(--spacing-sm)}.backstory-section{border:1px solid var(--border-color);border-radius:var(--radius-sm);overflow:hidden;transition:all var(--transition-fast)}.backstory-section:hover,.backstory-section.expanded{border-color:var(--accent-primary)}.section-header{width:100%;display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:none;cursor:pointer;color:var(--text-primary);text-align:left;transition:background var(--transition-fast)}.section-header:hover{background:var(--bg-hover)}.section-icon{display:flex;align-items:center;color:var(--accent-primary)}.section-title{flex:1;font-weight:500;font-size:var(--font-sm)}.char-count{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-secondary);padding:2px 6px;border-radius:var(--radius-full)}.expand-icon{color:var(--text-muted);transition:transform var(--transition-fast)}.expand-icon.rotated{transform:rotate(180deg)}.section-content{padding:var(--spacing-sm);background:var(--bg-secondary);animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.section-content textarea{width:100%;min-height:60px;padding:var(--spacing-sm);font-size:var(--font-sm);line-height:1.6;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);resize:vertical;font-family:inherit}.section-content textarea:focus{outline:none;border-color:var(--accent-primary)}.section-content textarea::placeholder{color:var(--text-muted);font-style:italic}[data-theme=parchment] .backstory-section,[data-theme=parchment-light] .backstory-section{border-color:var(--border-color)}[data-theme=parchment] .section-content textarea,[data-theme=parchment-light] .section-content textarea{background:var(--bg-primary);font-family:Georgia,serif}.notes-panel{padding:var(--spacing-sm)}.notes-count{background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;color:var(--text-muted)}.notes-search{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm)}.notes-search svg{color:var(--text-muted);flex-shrink:0}.notes-search input{flex:1;border:none;background:transparent;font-size:var(--font-sm);color:var(--text-primary);padding:0}.notes-search input:focus{outline:none}.notes-search input::placeholder{color:var(--text-muted)}.note-input-container{margin-bottom:var(--spacing-sm)}.color-picker{display:flex;gap:4px;margin-bottom:var(--spacing-xs)}.color-btn{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:var(--text-primary);transform:scale(1.15)}.note-input-row{display:flex;gap:var(--spacing-xs)}.note-input-row input{flex:1}.notes-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto}.note-card{display:flex;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-left:3px solid var(--accent-primary);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;gap:var(--spacing-xs)}.note-card:hover{background:var(--bg-hover)}.note-card.editing{cursor:default;background:var(--bg-hover);flex-direction:column}.note-card.pinned{background:var(--bg-hover);border-left-width:4px}.note-card.pinned:before{content:"";position:absolute;top:2px;right:2px;width:6px;height:6px;background:var(--accent-primary);border-radius:50%}.note-card.dragging{opacity:.5;transform:scale(.98)}.note-card.drag-over{border-top:2px solid var(--accent-primary)}.note-drag-handle{display:flex;align-items:flex-start;padding-top:2px;color:var(--text-muted);cursor:grab;opacity:.4;transition:opacity var(--transition-fast)}.note-card:hover .note-drag-handle{opacity:1}.note-drag-handle:active{cursor:grabbing}.note-main{flex:1;min-width:0}.note-content{font-size:var(--font-sm);color:var(--text-primary);line-height:1.4;word-break:break-word;white-space:pre-wrap}.note-link{color:var(--accent-primary);text-decoration:underline;cursor:pointer;word-break:break-all}.note-link:hover{color:var(--accent-secondary);text-decoration:none}.note-footer{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.note-time{font-size:var(--font-xs);color:var(--text-muted)}.note-actions{display:flex;gap:2px}.pin-btn,.edit-btn,.delete-btn{opacity:0;transition:opacity var(--transition-fast)}.note-card:hover .pin-btn,.note-card:hover .edit-btn,.note-card:hover .delete-btn{opacity:1}.pin-btn.active{opacity:1;color:var(--accent-primary)}.delete-btn:hover{color:var(--error)}.edit-btn:hover,.pin-btn:hover{color:var(--accent-primary)}.note-edit{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%}.note-edit textarea{width:100%;min-height:60px;padding:var(--spacing-xs);font-size:var(--font-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);resize:vertical;font-family:inherit;line-height:1.4}.note-edit textarea:focus{outline:none;border-color:var(--accent-primary)}.note-edit-actions{display:flex;justify-content:flex-end;gap:var(--spacing-xs)}.note-edit-actions .btn{display:flex;align-items:center;gap:4px}@media (pointer: coarse){.pin-btn,.edit-btn,.delete-btn,.note-drag-handle{opacity:.6}}.dice-roller{padding:var(--spacing-md)}.dice-roller-content{padding-top:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.roll-name-input input{width:100%;font-size:var(--font-sm)}.dice-groups{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-sm)}.dice-group{display:flex;align-items:center;gap:var(--spacing-xs);background:var(--bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.dice-operator{font-weight:600;color:var(--text-muted);font-size:var(--font-lg)}.dice-count{display:flex;align-items:center;gap:2px}.dice-count input{width:36px;text-align:center;padding:4px;font-weight:600;font-size:var(--font-base);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.dice-count input::-webkit-inner-spin-button,.dice-count input::-webkit-outer-spin-button{-webkit-appearance:none}.dice-d{font-weight:700;font-size:var(--font-lg);color:var(--accent-primary)}.dice-sides{padding:4px 8px;font-weight:600;font-size:var(--font-base);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer}.delete-dice{margin-left:var(--spacing-xs);color:var(--text-muted)}.delete-dice:hover{color:var(--error)}.add-dice-row{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.add-dice-btn{font-weight:600;font-size:var(--font-xs);color:var(--accent-primary)}.add-dice-btn:hover{background:var(--accent-primary);color:#fff}.modifier-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.modifier-label{font-size:var(--font-sm);color:var(--text-muted)}.modifier-input{width:60px;text-align:center;padding:4px;font-weight:600;font-size:var(--font-base);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary)}.roll-preview{text-align:center;padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.roll-preview code{font-size:var(--font-lg);font-weight:600;color:var(--accent-primary)}.roll-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);justify-content:center}.roll-actions .btn-primary{min-width:120px}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:color-mix(in srgb,var(--success),black 10%)}.btn-error{background:var(--error);color:#fff}.btn-error:hover{background:color-mix(in srgb,var(--error),black 10%)}.roll-result{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border:2px solid var(--accent-primary);border-radius:var(--radius-md);animation:diceResultPop .5s ease-out}@keyframes diceResultPop{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1);opacity:1}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}.result-total{font-size:3rem;font-weight:700;color:var(--accent-primary);line-height:1}.result-breakdown{font-size:var(--font-sm);color:var(--text-muted);text-align:center;word-break:break-all}.saved-rolls-section{border-top:1px solid var(--border-color);padding-top:var(--spacing-sm);margin-top:var(--spacing-xs)}.saved-rolls-actions{display:flex;gap:var(--spacing-sm);justify-content:center}.saved-rolls-actions .btn.active{background:var(--accent-light);color:var(--accent-primary)}.saved-rolls-list{margin-top:var(--spacing-sm);display:flex;flex-direction:column;gap:var(--spacing-xs);max-height:200px;overflow-y:auto;padding:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.saved-roll-item{display:flex;align-items:center;gap:var(--spacing-xs)}.saved-roll-load{flex:1;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.saved-roll-load:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.saved-roll-name{font-weight:500;color:var(--text-primary)}.saved-roll-formula{font-size:var(--font-xs);color:var(--text-muted);font-family:Courier New,monospace}.workspace-tabs{padding:0;display:flex;flex-direction:column}.workspace-tabs-header{padding:var(--spacing-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.workspace-tabs-bar{display:flex;flex-wrap:wrap;gap:6px}.workspace-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-sm);font-weight:600}.workspace-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.workspace-tab.active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.workspace-tab-icon{display:inline-flex}.workspace-tab-label{white-space:nowrap}.workspace-tabs-content{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.workspace-tabs-content>.card{margin:0}.workspace-extras{display:flex;flex-direction:column;gap:var(--spacing-lg)}@media (max-width: 700px){.workspace-tabs{height:auto;min-height:520px}}.roll-history{padding:var(--spacing-sm);display:flex;flex-direction:column;height:fit-content}.roll-history .card-header{flex-shrink:0}.rolls-list{display:flex;flex-direction:column;gap:2px;flex:none;overflow-y:auto;scroll-behavior:smooth;height:auto;max-height:268px;min-height:100px}.roll-entry{padding:3px var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);animation:slideUp .2s ease-out;transition:all var(--transition-fast);display:flex;flex-direction:column;gap:2px}.roll-entry.newest{animation:newestRoll .4s ease-out;background:var(--bg-hover)}@keyframes newestRoll{0%{transform:scale(.95);opacity:0;box-shadow:0 0 0 0 var(--accent-primary)}50%{box-shadow:0 0 8px 2px var(--accent-primary)}to{transform:scale(1);opacity:1;box-shadow:0 0 0 0 transparent}}.roll-entry.critical{background:var(--crit-bg);border-color:var(--crit-color)}.roll-entry.fail{background:var(--fail-bg);border-color:var(--fail-color)}.roll-header{display:flex;align-items:center;gap:var(--spacing-xs);width:100%}.roll-icon{display:flex;align-items:center;flex-shrink:0;color:var(--accent-primary)}.roll-label{font-size:var(--font-xs);font-weight:500;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roll-tag{padding:1px 4px;border-radius:var(--radius-sm);font-size:9px;font-weight:600}.roll-tag.advantage{background:var(--success-light);color:var(--success)}.roll-tag.disadvantage{background:var(--danger-light);color:var(--danger)}.roll-result{display:flex;align-items:center;gap:var(--spacing-xs);font-family:Courier New,monospace}.roll-dice{font-size:var(--font-xs);color:var(--text-secondary)}.roll-modifier{font-size:var(--font-xs);color:var(--text-muted);display:flex;align-items:center;gap:2px}.modifier-source{color:var(--text-muted);opacity:.8}.roll-total{font-size:var(--font-md);font-weight:700;color:var(--text-primary)}.crit-badge,.fail-badge{display:flex;align-items:center;gap:4px;padding:2px 6px;border-radius:var(--radius-sm);margin-left:auto;font-family:var(--font-medieval, inherit);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.crit-badge{background:linear-gradient(135deg,gold,#daa520);color:#1a1a2e;box-shadow:0 0 8px #ffd70080;text-shadow:0 1px 0 rgba(255,255,255,.3)}.fail-badge{background:linear-gradient(135deg,#dc3545,#8b0000);color:#fff;box-shadow:0 0 8px #dc354580}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-lg);color:var(--text-muted);text-align:center}.empty-state svg{margin-bottom:var(--spacing-xs);opacity:.5}.empty-state p{font-size:var(--font-xs)}:root{--bg-primary: #0f0f1a;--bg-secondary: #1a1a2e;--bg-tertiary: #252542;--bg-card: #1e1e35;--bg-hover: #2a2a4a;--text-primary: #f0f0f5;--text-secondary: #a0a0b5;--text-muted: #6a6a80;--border-color: #3a3a5a;--border-light: #2a2a4a;--accent-primary: var(--custom-accent, #7c3aed);--accent-secondary: #a855f7;--accent-light: rgba(124, 58, 237, .2);--success: #22c55e;--success-light: rgba(34, 197, 94, .2);--warning: #f59e0b;--warning-light: rgba(245, 158, 11, .2);--danger: #ef4444;--danger-light: rgba(239, 68, 68, .2);--info: #3b82f6;--info-light: rgba(59, 130, 246, .2);--crit-color: #5a440e;--crit-bg: rgb(255, 232, 173);--fail-color: #ef4444;--fail-bg: rgb(255, 174, 174);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(124, 58, 237, .3);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease}[data-theme=light]{--bg-primary: #f5f5fa;--bg-secondary: #ffffff;--bg-tertiary: #e8e8f0;--bg-card: #ffffff;--bg-hover: #f0f0f8;--text-primary: #1a1a2e;--text-secondary: #4a4a60;--text-muted: #8a8aa0;--border-color: #d0d0e0;--border-light: #e0e0f0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .15);--shadow-glow: 0 0 20px rgba(124, 58, 237, .2)}[data-font-size=small]{--font-xs: .7rem;--font-sm: .8rem;--font-md: .9rem;--font-lg: 1rem;--font-xl: 1.1rem;--font-2xl: 1.3rem;--font-3xl: 1.7rem}[data-font-size=large]{--font-xs: .85rem;--font-sm: .95rem;--font-md: 1.1rem;--font-lg: 1.25rem;--font-xl: 1.4rem;--font-2xl: 1.7rem;--font-3xl: 2.3rem}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-tap-highlight-color:transparent}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}::selection{background:var(--accent-primary);color:#fff}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}h1{font-size:var(--font-3xl)}h2{font-size:var(--font-2xl)}h3{font-size:var(--font-xl)}h4{font-size:var(--font-lg)}a{color:var(--accent-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-secondary)}button{font-family:inherit;font-size:var(--font-md);cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:var(--font-md);color:var(--text-primary);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light);outline:none}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-sm);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--font-lg);font-weight:600;color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-weight:500;transition:all var(--transition-fast);min-height:44px;min-width:44px}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-secondary);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-icon{padding:var(--spacing-sm);border-radius:var(--radius-md)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);min-height:36px;min-width:36px}.badge{display:inline-flex;align-items:center;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600;background:var(--accent-light);color:var(--accent-primary)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--font-xs);border-radius:var(--radius-sm);white-space:nowrap;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);z-index:100}.tooltip:hover:after{opacity:1}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.text-center{text-align:center}.text-sm{font-size:var(--font-sm)}.text-xs{font-size:var(--font-xs)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-bold{font-weight:700}.font-medium{font-weight:500}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes rollDice{0%{transform:rotate(0) scale(1)}25%{transform:rotate(90deg) scale(1.1)}50%{transform:rotate(180deg) scale(1)}75%{transform:rotate(270deg) scale(1.1)}to{transform:rotate(360deg) scale(1)}}.animate-fadeIn{animation:fadeIn var(--transition-normal)}.animate-slideUp{animation:slideUp var(--transition-normal)}.animate-shake{animation:shake .3s ease-in-out}.animate-pulse{animation:pulse .5s ease-in-out}.animate-roll{animation:rollDice .5s ease-out}.roll-critical{background:var(--crit-bg)!important;border-color:var(--crit-color)!important;animation:pulse .5s ease-in-out}.roll-fail{background:var(--fail-bg)!important;border-color:var(--fail-color)!important;animation:shake .3s ease-in-out}@media (pointer: coarse){.btn,input,select,textarea{min-height:48px}.btn-sm{min-height:40px}}@media print{body{background:#fff;color:#000}.no-print{display:none!important}}[data-theme=parchment]{--bg-primary: #1a1510;--bg-secondary: #2a2218;--bg-tertiary: #3a3020;--bg-card: #2e2519;--bg-hover: #3d3225;--text-primary: #e8dcc8;--text-secondary: #c4b59a;--text-muted: #8a7a60;--border-color: #5a4a35;--border-light: #4a3a28;--accent-primary: #c9a227;--accent-secondary: #dbb730;--accent-light: rgba(201, 162, 39, .2);--parchment-light: #f4e4bc;--parchment-dark: #d4c4a0;--ink-color: #2a1f15;--ink-faded: #4a3f30;--success: #5a8a4a;--success-light: rgba(90, 138, 74, .2);--warning: #c9a227;--warning-light: rgba(201, 162, 39, .2);--danger: #8b3a3a;--danger-light: rgba(139, 58, 58, .2);--info: #4a6a8a;--info-light: rgba(74, 106, 138, .2);--crit-color: #5a440e;--crit-bg: rgb(255, 232, 173);--fail-color: #ef4444;--fail-bg: rgb(255, 174, 174);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 8px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 20px rgba(0, 0, 0, .6);--shadow-glow: 0 0 15px rgba(201, 162, 39, .4);--shadow-inset: inset 0 2px 4px rgba(0, 0, 0, .3)}[data-theme=parchment-light]{--bg-primary: #e8dcc8;--bg-secondary: #f4e8d4;--bg-tertiary: #ddd0b8;--bg-card: #f0e4d0;--bg-hover: #e4d8c0;--text-primary: #2a1f15;--text-secondary: #4a3f30;--text-muted: #6a5f50;--border-color: #b8a890;--border-light: #c8b8a0;--accent-primary: #8b4513;--accent-secondary: #a0522d;--accent-light: rgba(139, 69, 19, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .15);--shadow-md: 0 4px 6px rgba(0, 0, 0, .15);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .2);--shadow-glow: 0 0 15px rgba(139, 69, 19, .3)}[data-theme=parchment] .card,[data-theme=parchment-light] .card{background:linear-gradient(135deg,rgba(0,0,0,.02) 0%,transparent 50%,rgba(0,0,0,.04) 100%),var(--bg-card);border:2px solid var(--border-color);border-radius:2px;box-shadow:var(--shadow-md),var(--shadow-inset);position:relative}[data-theme=parchment] .card:before,[data-theme=parchment-light] .card:before{content:"";position:absolute;top:4px;left:4px;right:4px;bottom:4px;border:1px solid var(--border-light);pointer-events:none;opacity:.5}[data-theme=parchment] .card:after,[data-theme=parchment-light] .card:after{content:"⚜";position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:16px;color:var(--accent-primary);background:var(--bg-card);padding:0 8px}[data-theme=parchment] .card-title,[data-theme=parchment-light] .card-title{font-family:Cinzel,Times New Roman,serif;letter-spacing:1px;text-transform:uppercase;font-size:var(--font-md);color:var(--accent-primary);text-shadow:1px 1px 0 rgba(0,0,0,.2)}[data-theme=parchment] .character-header,[data-theme=parchment-light] .character-header{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-bottom:3px double var(--border-color)}[data-theme=parchment] .character-name,[data-theme=parchment-light] .character-name{font-family:Cinzel,Times New Roman,serif;letter-spacing:2px}[data-theme=parchment] .btn-primary,[data-theme=parchment-light] .btn-primary{background:linear-gradient(180deg,var(--accent-primary) 0%,#a08020 100%);border:1px solid #806010;text-shadow:1px 1px 0 rgba(0,0,0,.3)}[data-theme=parchment] .btn-primary:hover,[data-theme=parchment-light] .btn-primary:hover{background:linear-gradient(180deg,#d9b237,#b09030)}[data-theme=parchment] .btn-secondary,[data-theme=parchment-light] .btn-secondary{background:linear-gradient(180deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%);border:1px solid var(--border-color)}[data-theme=parchment] .ability-card,[data-theme=parchment-light] .ability-card{background:linear-gradient(135deg,rgba(255,255,255,.03) 0%,transparent 100%),var(--bg-tertiary);border:2px solid var(--border-color);border-radius:2px}[data-theme=parchment] .ability-modifier,[data-theme=parchment-light] .ability-modifier{background:radial-gradient(ellipse at center,var(--accent-light) 0%,transparent 70%),var(--bg-secondary);border:2px solid var(--accent-primary);border-radius:50%}[data-theme=parchment] .ability-abbrev,[data-theme=parchment-light] .ability-abbrev{font-family:Cinzel,serif;color:var(--accent-primary)}[data-theme=parchment] .skill-row,[data-theme=parchment-light] .skill-row{border-bottom:1px dotted var(--border-light);border-radius:0}[data-theme=parchment] .skill-row:last-child,[data-theme=parchment-light] .skill-row:last-child{border-bottom:none}[data-theme=parchment] .stat-box,[data-theme=parchment-light] .stat-box{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:2px}[data-theme=parchment] .stat-icon,[data-theme=parchment-light] .stat-icon{background:var(--accent-light);border:1px solid var(--accent-primary)}[data-theme=parchment] .roll-entry,[data-theme=parchment-light] .roll-entry{background:var(--bg-tertiary);border:1px solid var(--border-color);border-left:3px solid var(--accent-primary)}[data-theme=parchment] .roll-entry.critical,[data-theme=parchment-light] .roll-entry.critical{background:var(--crit-bg);border-left-color:var(--crit-color)}[data-theme=parchment] .roll-entry.fail,[data-theme=parchment-light] .roll-entry.fail{background:var(--fail-bg);border-left-color:var(--fail-color)}[data-theme=parchment] .weapon-card,[data-theme=parchment-light] .weapon-card{background:var(--bg-tertiary);border:1px solid var(--border-color)}[data-theme=parchment] .note-card,[data-theme=parchment-light] .note-card{background:var(--bg-tertiary);font-family:Segoe UI,sans-serif}[data-theme=parchment] .top-bar,[data-theme=parchment-light] .top-bar{background:linear-gradient(180deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);border-bottom:2px solid var(--accent-primary)}[data-theme=parchment] .logo-text,[data-theme=parchment-light] .logo-text{font-family:Cinzel,serif;color:var(--accent-primary);text-shadow:1px 1px 2px rgba(0,0,0,.5)}[data-theme=parchment] input,[data-theme=parchment] textarea,[data-theme=parchment] select,[data-theme=parchment-light] input,[data-theme=parchment-light] textarea,[data-theme=parchment-light] select{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:2px}[data-theme=parchment] input:focus,[data-theme=parchment] textarea:focus,[data-theme=parchment] select:focus,[data-theme=parchment-light] input:focus,[data-theme=parchment-light] textarea:focus,[data-theme=parchment-light] select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-light)}[data-theme=parchment] ::-webkit-scrollbar-thumb,[data-theme=parchment-light] ::-webkit-scrollbar-thumb{background:var(--border-color)}[data-theme=parchment] ::-webkit-scrollbar-thumb:hover,[data-theme=parchment-light] ::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}[data-theme=parchment] .portrait-container,[data-theme=parchment-light] .portrait-container{border:3px solid var(--border-color);border-radius:2px;box-shadow:var(--shadow-md)}[data-theme=parchment] .currency-label,[data-theme=parchment-light] .currency-label{font-family:Cinzel,serif}[data-theme=parchment-light] .inspiration-box{background:#8b451326;border-color:#8b4513;color:#5a3010}[data-theme=parchment-light] .inspiration-input{color:#5a3010}[data-theme=parchment] .app-footer,[data-theme=parchment-light] .app-footer{background:var(--bg-secondary);border-top:2px solid var(--accent-primary)}.app{display:flex;flex-direction:column;min-height:100vh}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:50}.top-bar-left{display:flex;align-items:center;gap:var(--spacing-md)}.top-bar-right{display:flex;align-items:center;gap:var(--spacing-sm)}.header-toggle-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0}.topbar-expand-btn{position:fixed;top:var(--spacing-xs);right:var(--spacing-md);z-index:100;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;opacity:.7;transition:all var(--transition-fast)}.topbar-expand-btn:hover{opacity:1;background:var(--bg-hover);color:var(--accent-primary)}.app-logo{display:flex;align-items:center;gap:var(--spacing-sm)}.logo-icon{font-size:var(--font-xl)}.logo-text{font-size:var(--font-lg);font-weight:700;color:var(--accent-primary)}.main-content{flex:1;padding:var(--spacing-md);background:var(--bg-primary)}.content-grid{display:grid;grid-template-columns:420px 1fr;gap:var(--spacing-sm);max-width:1800px;margin:0 auto}.content-grid.sheet-layout{grid-template-columns:minmax(180px,320px) minmax(180px,1fr) minmax(200px,320px) minmax(260px,320px);grid-template-rows:auto auto;grid-template-areas:"skills  abilities  weapons  rolllog" "skills  main       main     hp";align-items:start;gap:var(--spacing-sm)}.sheet-abilities{grid-area:abilities}.sheet-weapons{grid-area:weapons}.sheet-skills{grid-area:skills;display:flex;flex-direction:column;gap:var(--spacing-md)}.sheet-main{grid-area:main;display:flex;flex-direction:column;gap:var(--spacing-md);min-height:450px}.sheet-hp{grid-area:hp;display:flex;flex-direction:column;gap:var(--spacing-md)}.sheet-rolllog{grid-area:rolllog;height:fit-content}@media (max-width: 1600px){.content-grid.sheet-layout{grid-template-columns:minmax(180px,320px) minmax(180px,1fr) minmax(200px,320px) minmax(220px,320px)}}@media (max-width: 1400px){.content-grid{grid-template-columns:380px 1fr}.content-grid.sheet-layout{grid-template-columns:minmax(180px,320px) minmax(220px,1fr) minmax(200px,260px) minmax(220px,280px);grid-template-areas:"skills  abilities  abilities  rolllog" "skills  weapons    hp         rolllog" "skills  main       main       main"}}@media (max-width: 1100px){.content-grid.sheet-layout{grid-template-columns:1fr 1fr;grid-template-areas:"abilities rolllog" "weapons   hp" "skills    main"}}@media (max-width: 900px){.content-grid.sheet-layout{grid-template-columns:1fr 1fr;grid-template-areas:"abilities rolllog" "weapons   hp" "skills    main"}.main-content{padding:var(--spacing-md)}}@media (max-width: 700px){.content-grid{grid-template-columns:1fr}.content-grid.sheet-layout{grid-template-columns:1fr;grid-template-areas:"skills" "abilities" "weapons" "rolllog" "hp" "main"}}@media (max-width: 600px){.top-bar{padding:var(--spacing-sm)}.logo-text{display:none}.main-content{padding:var(--spacing-sm)}.content-grid{gap:var(--spacing-md)}}.app-footer{padding:var(--spacing-md);background:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);font-size:var(--font-xs)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:var(--spacing-md);color:var(--text-muted)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (pointer: coarse){.card{padding:var(--spacing-md)}.btn{min-height:48px}}@media print{.top-bar,.app-footer,.character-switcher,.settings-trigger{display:none}.main-content{padding:0}.content-grid{display:block}.card{break-inside:auto;margin-bottom:1rem}}
