@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&display=swap";.dice-toast{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:.5rem;box-shadow:0 4px 20px #0000004d;z-index:9999;animation:toastSlideIn .3s ease-out,toastFadeOut .3s ease-out 2.4s forwards}.dice-toast.crit{border-color:var(--crit-color, #fbbf24);box-shadow:0 4px 20px #fbbf244d}.dice-toast.fail{border-color:var(--fail-color, #f87171);box-shadow:0 4px 20px #f871714d}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastFadeOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(50%)}}.dice-toast-icon{font-size:1.5rem;animation:iconBounce .3s ease-out}@keyframes iconBounce{0%{transform:scale(.5) rotate(-20deg)}50%{transform:scale(1.2) rotate(10deg)}to{transform:scale(1) rotate(0)}}.dice-toast-result{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.dice-toast.crit .dice-toast-result{color:var(--crit-color, #fbbf24)}.dice-toast.fail .dice-toast-result{color:var(--fail-color, #f87171)}.dice-toast-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .375rem;border-radius:.25rem;background:var(--bg-tertiary)}.dice-toast.crit .dice-toast-label{background:#fbbf2433;color:var(--crit-color, #fbbf24)}.dice-toast.fail .dice-toast-label{background:#f8717133;color:var(--fail-color, #f87171)}.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);z-index:30}.portrait-container.deceased{border-color:var(--danger)}.portrait-container.deceased .portrait-image{filter:grayscale(100%) brightness(.6)}.portrait-deceased-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--danger);background:#fff0;z-index:20;pointer-events:auto}.portrait-deceased-overlay svg{stroke-width:2px;filter:drop-shadow(0 0 6px rgba(0,0,0,.5))}.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 5s 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)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}15%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-80%) scale(.9)}}.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.danger{color:var(--danger)}.stat-value.boost{color:var(--success)}.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;-webkit-touch-callout: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;-webkit-touch-callout: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:headerFloatingNumberUp 2.8s 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 headerFloatingNumberUp{0%{opacity:1;transform:translate(-50%) translateY(0)}75%{opacity:1;transform:translate(-50%) translateY(-18px)}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)}.character-header.play-mode input:disabled,.character-header.play-mode select:disabled,.character-header.play-mode textarea:disabled{color:var(--text-primary);-webkit-text-fill-color:var(--text-primary);opacity:1;background:transparent}.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:abilitiesFloatUp 5s 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-text, var(--crit-color))}.abilities-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-text, 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 abilitiesFloatUp{0%{opacity:1;transform:translate(-50%,-50%) scale(.5)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}15%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-80%) scale(.9)}}.abilities-grid{display:grid;grid-template-columns:repeat(3,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:border-color var(--transition-fast)}.ability-card:hover{border-color:var(--accent-primary)}.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;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.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{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(--expertise-color, var(--crit-color))}.abilities-panel.play-mode .proficiency-toggle{display:none}.abilities-panel.play-mode .save-modifier.proficient .save-value{color:var(--success)}.abilities-panel.play-mode .save-modifier.expertise .save-value{color:var(--expertise-color, #fbbf24)}.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);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.save-modifier:hover{border-color:var(--accent-primary);background:var(--accent-light)}.save-modifier.auto-fail{background:var(--danger-light);border-color:var(--danger);opacity:.7;cursor:not-allowed}.save-modifier.auto-fail:hover{background:var(--danger-light);border-color:var(--danger)}.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 5s 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-text, var(--crit-color))}.skills-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-text, 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)}10%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}15%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-80%) scale(.9)}}.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-xs);border-radius:var(--radius-sm);min-height:36px}.skill-row.proficient{background:var(--success-light)}.skill-row.expertise{background:var(--expertise-bg, 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);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.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:color-mix(in srgb,var(--expertise-color, #fbbf24) 20%,transparent)}.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-color);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-primary);transform:scale(1.1)}.proficiency-btn:active{transform:scale(.95)}.proficiency-btn:disabled{display:none}.proficiency-btn.proficient{color:var(--success);background:var(--success-light);border-color:var(--success)}.proficiency-btn.proficient:hover{box-shadow:0 0 8px var(--success-light)}.proficiency-btn.expertise{color:var(--expertise-color, var(--crit-color));background:var(--expertise-bg, var(--crit-bg));border-color:var(--expertise-color, var(--crit-color))}.proficiency-btn.expertise:hover{box-shadow:0 0 8px var(--expertise-bg, var(--crit-bg))}.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;max-height:360px}.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 5s 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)}10%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}20%{opacity:1;transform:translate(-50%,-80%) scale(1)}80%{opacity:1;transform:translate(-50%,-80%) scale(1)}to{opacity:0;transform:translate(-50%,-100%) scale(.95)}}.weapons-list{display:flex;flex-direction:column;gap:4px;max-height:none;overflow-y:auto;padding-right:4px}.weapons-list.scrollable{max-height:360px;overflow-y:auto}.weapons-panel.expanded .weapons-list.scrollable{max-height:540px}.weapons-panel.expanded{max-height:440px;overflow:visible}.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:border-color var(--transition-fast)}.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);flex-wrap:nowrap;align-items:start}.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);min-height:36px}.weapon-attack:active,.weapon-damage:active{transform:scale(.95)}.weapon-attack{color:var(--info)}.weapon-damage{color:var(--danger)}.weapon-attack.disabled,.weapon-damage.disabled{opacity:.8;cursor:not-allowed;background:var(--danger-light);border-color:var(--danger);pointer-events:none;color:var(--text-primary)}.weapon-attack.disabled:hover,.weapon-damage.disabled:hover{border-color:var(--danger);background:var(--danger-light);transform:none}.nick-toggle{display:flex;align-items:center;gap:3px;font-size:var(--font-xs);color:var(--text-muted);cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid var(--border-color)}.nick-toggle:hover{background:rgba(var(--warning-rgb, 234, 179, 8),.1);border-color:var(--warning)}.nick-toggle input[type=checkbox]{accent-color:var(--warning);cursor:pointer;margin:0;width:12px;height:12px}.nick-toggle:has(input:checked){color:var(--warning);background:rgba(var(--warning-rgb, 234, 179, 8),.15);border-color:var(--warning)}.sneak-toggle{display:flex;align-items:center;gap:3px;font-size:var(--font-xs);color:var(--text-muted);cursor:pointer;padding:4px 6px;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid var(--border-color)}.sneak-toggle:hover{background:rgba(var(--success-rgb, 46, 204, 113),.08);border-color:var(--success)}.sneak-toggle input[type=checkbox]{accent-color:var(--success);cursor:pointer;margin:0;width:12px;height:12px}.sneak-toggle:has(input:checked){background:rgba(var(--success-rgb, 46, 204, 113),.12);border-color:var(--success)}.sneak-bonus{color:var(--success);font-weight:700;margin-left:6px;border-radius:6px;background:rgba(var(--success-rgb, 46, 204, 113),.06)}.sneak-menu{position:fixed;z-index:9999;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);padding:6px;min-width:260px;width:auto;max-width:calc(95vw - 24px);font-size:var(--font-sm)}.sneak-menu-header{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 6px;border-bottom:1px solid var(--border-color);margin-bottom:6px}.sneak-menu-info-right{text-align:right;margin-left:8px}.sneak-menu-info-small{font-size:var(--font-xs);color:var(--text-muted)}.sneak-menu-list{list-style:none;padding:4px 0;margin:0;max-height:320px;overflow-y:auto}.sneak-menu-item{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;cursor:pointer;border-radius:var(--radius-sm);align-items:flex-start}.sneak-menu-item:hover{background:var(--bg-hover)}.sneak-menu-item.disabled{opacity:.6;cursor:not-allowed}.sneak-menu-item.selected{background:rgba(var(--success-rgb, 46, 204, 113),.06);border-left:3px solid var(--success)}.sneak-menu-item-title{display:block;font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.sneak-menu-cost{font-size:var(--font-xs);color:var(--text-muted);margin-left:8px}.sneak-menu-item-desc{font-size:13px;color:var(--text-secondary);margin-top:4px;line-height:1.3;word-break:break-word}.sneak-menu-req{font-size:var(--font-xs);color:var(--text-muted);margin-right:8px}.sneak-menu-item-left{flex:1;min-width:0}.sneak-menu-item-right{margin-left:8px;display:flex;align-items:center;gap:6px}.sneak-menu-footer{display:flex;justify-content:space-between;padding-top:6px;border-top:1px solid var(--border-color);margin-top:6px;font-size:var(--font-sm);color:var(--text-muted)}.sneak-toggle .sneak-menu-btn,.sneak-menu-btn{min-height:24px!important;height:24px!important;padding:4px 6px!important;line-height:1!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:4px}.weapons-options{display:flex;align-items:center;justify-content:start;gap:8px;padding-left:4px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);position:sticky;top:48px;z-index:4}.weapons-options .weapons-options-left,.weapons-options .weapons-options-right{display:flex;align-items:center;gap:8px}.weapons-options .pinned-label{font-weight:700;font-size:var(--font-sm);margin-left:6px}.sneak-menu .sneak-cost{font-weight:700}.sneak-desc{font-size:var(--font-xs);color:var(--text-secondary)}.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{display:inline-flex;align-items:center;gap:6px;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);min-height:120px}.weapons-panel.expanded .weapon-form{min-height:220px}.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)}.properties-autocomplete .autocomplete-container{position:relative;width:100%}.properties-autocomplete input{width:100%}.suggestions-list{position:fixed;z-index:9999;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);margin-top:6px;list-style:none;padding:6px 0;max-height:260px;overflow-y:auto;box-shadow:var(--shadow-lg);min-width:320px}.suggestion-item{padding:10px 14px;cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-height:48px}.suggestion-item.selected,.suggestion-item:hover{background:var(--accent-light);color:var(--text-primary)}.suggestion-key{font-weight:600}.suggestion-example{color:var(--text-muted);font-size:var(--font-xs);margin-left:0;margin-top:2px;display:block;line-height:1.2}.ability-abbrev{font-size:var(--font-xs);color:var(--text-muted);margin-left:6px}.weapon-range{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-primary);align-self:center}.property-tag{display:inline-flex;align-items:center;gap:6px;padding:2px 6px;background:var(--bg-hover);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);cursor:help}.property-tag:hover{background:var(--accent-light);color:var(--text-primary)}.property-tag.property-range{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-primary);align-self:center}.property-tag.property-range svg{color:var(--text-muted)}.property-tag .range-value{margin-left:4px}.weapon-sequence-badge{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:2px 8px;border-radius:12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.weapon-sequence-badge.first{background:rgba(var(--success-rgb, 46, 204, 113),.15);color:var(--success);border:1px solid var(--success)}.weapon-sequence-badge.second{background:rgba(var(--warning-rgb, 234, 179, 8),.15);color:var(--warning);border:1px solid var(--warning)}.hp-panel{display:flex;flex-direction:column;gap:.5rem;position:relative;max-height:fit-content}.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.character-deceased{--card-border-color: var(--danger);box-shadow:0 0 10px var(--danger);animation:none}.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:hpFloatUpFade 5s 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 hpFloatUpFade{0%{opacity:1;transform:translate(-50%,-50%) scale(.8)}10%{opacity:1;transform:translate(-50%,-70%) scale(1.2)}20%{opacity:1;transform:translate(-50%,-80%) scale(1)}80%{opacity:1;transform:translate(-50%,-80%) scale(1)}to{opacity:0;transform:translate(-50%,-100%) scale(.95)}}.hp-main-display{display:flex;align-items:center;justify-content:center;gap:.25rem;font-family:var(--font-medieval);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all .15s ease;background:var(--bg-tertiary);border:1px solid var(--border-color)}.hp-conditions{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md)}.hp-conditions-label{font-size:var(--font-xs);color:var(--text-secondary);letter-spacing:.01em}.hp-conditions-chips{display:flex;flex-wrap:wrap;gap:6px}.hp-condition-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:var(--radius-full);background:var(--bg-primary);border:1px solid var(--border-light);font-size:var(--font-xs);color:var(--text-primary)}.hp-condition-name{white-space:nowrap}.hp-condition-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.hp-condition-remove:hover{color:var(--text-primary);border-color:var(--accent-primary)}.hp-main-display.hp-flash-damage{animation:hpFlashDamage 1.2s ease-out}.hp-main-display.hp-flash-heal{animation:hpFlashHeal 1.2s ease-out}@keyframes hpFlashDamage{0%{background:#dc354566;box-shadow:0 0 15px #dc354599}50%{background:#dc354533;box-shadow:0 0 10px #dc354566}to{background:var(--bg-tertiary);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:var(--bg-tertiary);box-shadow:none}}.hp-current-large{width:60px;font-size:1.4rem;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.4rem;color:var(--text-muted)}.hp-max-large{width:60px;font-size:1.4rem;color:var(--text-muted);text-align:center}.hp-max-large.editable{width:60px;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:all var(--transition-fast);position:relative;overflow:hidden}.quick-damage-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;transition:opacity var(--transition-fast)}.quick-damage-btn:hover{background:#bb2d3b;transform:scale(1.05);box-shadow:0 2px 8px #dc354566}.quick-damage-btn:hover:before{opacity:.1}.quick-damage-btn:active{transform:scale(.92)}.hit-dice-section{display:flex;flex-direction:column;gap:.5rem;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;justify-content:space-between;gap:.5rem}.hit-dice-label{font-size:.75rem;color:var(--text-muted)}.hit-dice-display{display:flex;align-items:center;justify-content: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)}.rest-buttons-row{display:flex;gap:.5rem}.short-rest-btn,.long-rest-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem;font-size:.8rem}.short-rest-btn{border:1px solid var(--warning, #f59e0b);color:var(--warning, #f59e0b)}.short-rest-btn:hover{background:#f59e0b1a}.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;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.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:modalSlideIn .3s cubic-bezier(.34,1.56,.64,1)}@keyframes modalSlideIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.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);position:relative;overflow:hidden}.theme-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent-primary);opacity:0;transition:opacity var(--transition-fast)}.theme-btn:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.theme-btn:hover:before{opacity:.05}.theme-btn:active{transform:scale(.97)}.theme-btn.active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.theme-btn.active:before{opacity:.1}.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);position:relative}.color-option:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;border:2px solid transparent;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.15)}.color-option:hover:after{border-color:currentColor;opacity:.3}.color-option.active{border-color:var(--text-primary);transform:scale(1.1);box-shadow:0 0 12px currentColor}.color-option:active{transform:scale(.95)}.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))}.toggle-hint.weighted-info{display:flex;align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);line-height:1.4}.toggle-hint.weighted-info svg{flex-shrink:0;margin-top:2px;color:var(--info)}.settings-content{max-height:70vh;overflow-y:auto}.offline-not-ready,.offline-ready{display:flex;flex-direction:column;gap:var(--spacing-md)}.offline-description{font-size:var(--font-sm);color:var(--text-secondary);line-height:1.5;margin:0}.offline-enable-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);width:100%}.offline-status-row{display:flex;flex-direction:column;gap:var(--spacing-xs)}.offline-status-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-sm);color:var(--text-primary)}.offline-status-item .text-success{color:var(--success)}.offline-status-item .text-warning{color:var(--warning)}.offline-info{padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.offline-update-section{display:flex;flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-light)}.offline-update-info{font-size:var(--font-sm);color:var(--text-secondary)}.offline-update-actions{display:flex;flex-direction:column;gap:var(--spacing-sm)}.update-available-btn{background:var(--warning)!important;color:#fff!important;border-color:var(--warning)!important}.update-available-btn:hover{opacity:.9}.spinning{animation:spin 1s linear infinite}.text-danger{color:var(--danger)!important}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-xs)}.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)}@media (max-width: 520px){.inventory-with-currency{flex-direction:column}.currency-sidebar{width:100%;min-width:0;flex-direction:column;align-items:stretch;gap:var(--spacing-xs)}.currency-header{border-bottom:1px solid var(--border-light);padding-bottom:var(--spacing-xs)}.currency-total{white-space:nowrap}.currency-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-xs)}.currency-row{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 6px;border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-light)}.currency-row .currency-label{min-width:22px;text-align:left;font-size:10px}.currency-row .currency-input{width:100%;padding:2px 4px;font-size:var(--font-sm)}}@media (max-width: 360px){.currency-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.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);padding-left:3px;border:1px solid transparent;position:relative}.inventory-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent-primary);opacity:0;transition:opacity var(--transition-fast);border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.inventory-item:hover{background:var(--bg-hover);border-color:var(--border-color)}.inventory-item:hover:before{opacity:1}.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}.feat-search{display:flex;flex-direction:column;gap:var(--spacing-sm);max-height:450px}.feat-search-loading,.feat-search-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-secondary)}.feat-search-loading .spinner{animation:spin 1s linear infinite}.feat-search-header{display:flex;flex-direction:column;gap:var(--spacing-xs)}.feat-search-input-wrapper{position:relative;display:flex;align-items:center}.feat-search-input-wrapper .search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.feat-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-sm) 36px;font-size:var(--font-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary)}.feat-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.2)}.feat-search-filters{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;align-items:center}.feat-search-filters .filter-select{padding:4px 8px;font-size:var(--font-xs);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);min-width:120px}.feat-search-filters .filter-checkbox{display:flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--text-secondary);cursor:pointer;padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color)}.feat-search-filters .filter-checkbox:hover{background:var(--bg-hover)}.feat-search-filters .filter-checkbox input{width:12px;height:12px}.feat-search-results{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px;max-height:300px;border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary)}.feat-search-empty{padding:var(--spacing-md);text-align:center;color:var(--text-muted);font-style:italic}.feat-search-item{padding:var(--spacing-sm);cursor:pointer;border-bottom:1px solid var(--border-light);transition:background var(--transition-fast)}.feat-search-item:last-child{border-bottom:none}.feat-search-item:hover,.feat-search-item.selected{background:var(--bg-hover)}.feat-search-item.selected{border-left:3px solid var(--accent-primary)}.feat-search-item.unqualified{opacity:.6}.feat-item-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-xs);margin-bottom:4px}.feat-item-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.feat-item-category{font-size:10px;color:var(--text-muted);padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);white-space:nowrap}.feat-item-meta{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.feat-level-req{display:flex;align-items:center;gap:2px;font-size:10px;padding:2px 6px;border-radius:var(--radius-sm)}.feat-level-req.met{background:#22c55e26;color:var(--success)}.feat-level-req.unmet{background:#ef444426;color:var(--danger)}.feat-ability-req{font-size:10px;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary)}.feat-tag{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm)}.feat-tag.repeatable{background:var(--info-light);color:var(--info)}.feat-prereq-warning{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--warning);margin-bottom:4px}.feat-item-description{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4}.feat-description-text{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4;margin:0 0 .5rem;white-space:pre-wrap}.feat-search-footer{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-xs);border-top:1px solid var(--border-light)}.feat-search-help{font-size:var(--font-xs);color:var(--text-muted)}.syntax-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.syntax-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);max-width:600px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.syntax-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.syntax-modal-header h2{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);margin:0}.syntax-tabs{display:flex;gap:var(--spacing-xs);padding:0 var(--spacing-md);border-bottom:1px solid var(--border-color)}.syntax-tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast)}.syntax-tab:hover{color:var(--text-primary)}.syntax-tab.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.syntax-modal-content{padding:var(--spacing-md);overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.syntax-section{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-sm)}.syntax-section h3{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-md);color:var(--accent-primary);margin:0 0 var(--spacing-sm) 0}.syntax-description{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.syntax-examples{display:flex;flex-direction:column;gap:var(--spacing-xs)}.syntax-example{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm)}.syntax-example code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);padding:2px 6px;border-radius:var(--radius-sm);white-space:nowrap}.syntax-example span{font-size:var(--font-xs);color:var(--text-secondary)}.syntax-preview{font-weight:600;color:var(--text-primary)!important;background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm)}.syntax-variables{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-xs)}@media (max-width: 500px){.syntax-variables{grid-template-columns:1fr}}.syntax-variable{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm)}.syntax-variable code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);padding:2px 4px;border-radius:var(--radius-sm)}.syntax-variable span{font-size:var(--font-xs);color:var(--text-secondary)}.variable-value{font-weight:600;color:var(--success)!important;margin-left:auto}.syntax-options{display:flex;flex-direction:column;gap:var(--spacing-xs)}.syntax-option{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm)}.syntax-option code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--warning-light);color:var(--warning);padding:2px 6px;border-radius:var(--radius-sm)}.syntax-option span{font-size:var(--font-xs);color:var(--text-secondary)}.full-syntax{text-align:center;padding:var(--spacing-sm);background:var(--bg-primary);border-radius:var(--radius-sm)}.full-syntax code{font-family:Consolas,Monaco,monospace;font-size:var(--font-md);background:var(--accent-light);color:var(--accent-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);display:inline-block}.full-syntax p{font-size:var(--font-xs);color:var(--text-muted);margin:var(--spacing-xs) 0 0 0}.playground{border:2px solid var(--accent-primary)}.playground-input-row{display:flex;gap:var(--spacing-xs);align-items:center}.playground-input-row input{flex:1;font-family:Consolas,Monaco,monospace;font-size:var(--font-sm)}.playground-live-preview{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-primary);border-radius:var(--radius-sm)}.preview-label{font-size:var(--font-sm);color:var(--text-secondary)}.playground-macro-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:var(--font-sm);font-weight:500;background:var(--accent-light);color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.playground-macro-btn:hover{background:var(--accent-primary);color:#fff}.playground-macro-btn svg{flex-shrink:0}.playground-result{display:flex;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-sm);background:var(--success-light);color:var(--success);border-radius:var(--radius-sm);font-weight:600;font-family:Consolas,Monaco,monospace}.playground-char-info,.playground-preview{margin-top:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-muted)}.playground-preview code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);padding:2px 6px;border-radius:var(--radius-sm)}.playground-breakdown{font-size:var(--font-xs);color:var(--text-muted);margin-left:var(--spacing-xs)}.counter-example{grid-template-columns:auto auto 1fr auto}.counter-preview{display:inline-flex;align-items:center;gap:2px;background:var(--bg-primary);padding:2px 6px;border-radius:var(--radius-sm);border:1px solid var(--border-color)}.counter-preview .counter-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:default}.counter-preview .counter-btn:disabled{opacity:.4}.counter-preview .counter-value{font-size:var(--font-xs);font-weight:600;min-width:24px;text-align:center}.counter-preview .counter-value.empty{color:var(--danger)}.counter-preview .counter-tag{font-size:8px;font-weight:700;padding:1px 3px;border-radius:2px;margin-left:2px}.counter-preview .counter-tag.lr{background:var(--info-light);color:var(--info)}.counter-preview .counter-tag.sr{background:var(--warning-light);color:var(--warning)}.dice-example{grid-template-columns:auto auto 1fr auto}.dice-preview-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;font-size:var(--font-xs);font-weight:600;background:var(--accent-light);color:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.dice-preview-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff}.dice-preview-btn:disabled{opacity:.5;cursor:not-allowed}.dice-preview-btn svg{flex-shrink:0}.macro-generator{border:2px solid var(--success)}.macro-generator h3{color:var(--success)}.macro-generator-form{display:flex;flex-direction:column;gap:var(--spacing-sm)}.macro-gen-row{display:flex;align-items:center;gap:var(--spacing-sm)}.macro-gen-row label{font-size:var(--font-sm);color:var(--text-secondary);min-width:100px}.macro-gen-row input[type=text],.macro-gen-row input[type=number]{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.macro-gen-row input[type=number]{width:60px}.macro-gen-row select{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary)}.macro-gen-row.dice-row .dice-inputs{display:flex;align-items:center;gap:var(--spacing-xs)}.macro-gen-row .checkbox-label{display:flex;align-items:center;gap:var(--spacing-xs);cursor:pointer}.macro-gen-result{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-primary);border-radius:var(--radius-sm);margin-top:var(--spacing-xs)}.macro-gen-result code{flex:1;font-family:Consolas,Monaco,monospace;font-size:var(--font-sm);background:var(--success-light);color:var(--success);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm)}.syntax-help-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast)}.syntax-help-btn:hover{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.features-panel{padding:var(--spacing-sm)}.features-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xs)}.features-header .card-title{font-size:var(--font-md);font-weight:600;margin:0}.features-header-actions{display:flex;gap:var(--spacing-xs)}.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}.features-list.is-dragging{-webkit-user-select:none;user-select:none}.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;position:relative}.feature-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.feature-card.dragging{opacity:.4;transform:scale(.95);cursor:grabbing;z-index:1000}.feature-card.drag-over{border-color:var(--accent-primary);background:var(--accent-light);box-shadow:0 0 0 2px var(--accent-primary),var(--shadow-md);transform:translateY(0)}.feature-card.drag-over:before{content:"";position:absolute;top:-2px;left:0;right:0;height:2px;background:var(--accent-primary);box-shadow:0 0 8px var(--accent-primary)}.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:.6;transition:all var(--transition-fast);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.feature-card:hover .feature-drag-handle{opacity:1;background:var(--accent-light);color:var(--accent-primary)}.feature-drag-handle:active,.feature-card.dragging .feature-drag-handle{cursor:grabbing;background:var(--accent-primary);color:#fff}.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.1;position:relative}.feature-description.collapsed .feature-description-content{max-height:2.8em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap}.feature-description.expanded .feature-description-content{max-height:none;white-space:pre-wrap}.feature-description-content{white-space:pre-wrap}.feature-description .expand-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;margin-top:4px;font-size:var(--font-xs);font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast)}.feature-description .expand-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.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-macro-btn{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;margin:0 2px;background:var(--accent-light);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);font-size:var(--font-xs);font-weight:600;cursor:pointer;transition:all var(--transition-fast);vertical-align:middle}.feature-macro-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.feature-macro-btn:active{transform:scale(.95)}.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:.8;background:var(--accent-light);color:var(--accent-primary)}.feature-card.dragging .feature-drag-handle{opacity:1}}.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;flex-direction:column}.add-feature-mode-tabs{display:flex;gap:var(--spacing-xs);padding:var(--spacing-xs);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-xs)}.add-feature-mode-tabs .mode-tab{display:flex;align-items:center;gap:4px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.add-feature-mode-tabs .mode-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.add-feature-mode-tabs .mode-tab.active{color:var(--accent-primary);border-color:var(--border-color);border-bottom-color:var(--bg-tertiary);background:var(--bg-secondary);font-weight:500}.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)}.floating-roll-result{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:100;animation:featuresFloatUpFade 2s ease-out forwards}.floating-roll-value{font-size:2rem;font-weight:700;color:var(--accent-primary);text-shadow:0 0 10px var(--accent-primary)}@keyframes featuresFloatUpFade{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)}}.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-panel .card-header{display:flex;align-items:center;gap:var(--spacing-sm)}.notes-panel .card-header .syntax-help-trigger{margin-left:auto}.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)}.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:none;overflow:visible}.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);position:relative}.note-card:hover{background:var(--bg-hover)}.note-card.editing{cursor:default;background:var(--bg-hover);flex-direction:column;transform:none}.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:.4;transform:scale(.95);cursor:grabbing}.note-card.drag-over{border-top:2px solid var(--accent-primary);box-shadow:0 -2px 8px #6366f14d}.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-macro-btn{display:inline-flex;align-items:center;gap:3px;padding:1px 5px;margin:0 2px;background:var(--accent-light);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);font-size:var(--font-xs);font-weight:600;cursor:pointer;transition:all var(--transition-fast);vertical-align:middle}.note-macro-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.note-macro-btn:active{transform:scale(.95)}.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;align-items:center;gap:var(--spacing-xs)}.note-edit-actions .btn{display:flex;align-items:center;gap:4px}.keyboard-hint{font-size:10px;color:var(--text-muted);font-style:italic;margin-right:auto}@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);transition:all var(--transition-fast)}.add-dice-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.add-dice-btn:active{transform:scale(.95)}.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-md);background:linear-gradient(135deg,var(--bg-tertiary),var(--bg-secondary));border:2px solid var(--accent-primary);border-radius:var(--radius-md);animation:diceResultPop .5s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.roll-result:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at center,var(--accent-light) 0%,transparent 70%);opacity:.5;animation:resultGlow 2s ease-in-out infinite}@keyframes resultGlow{0%,to{opacity:.3}50%{opacity:.6}}@keyframes diceResultPop{0%{transform:scale(.5) rotate(-10deg);opacity:0}50%{transform:scale(1.1) rotate(2deg);opacity:1}70%{transform:scale(.95) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}.result-total{font-size:3rem;font-weight:700;color:var(--accent-primary);line-height:1;text-shadow:0 2px 10px var(--accent-light);position:relative;z-index:1}.result-breakdown{font-size:var(--font-sm);color:var(--text-muted);text-align:center;word-break:break-all;position:relative;z-index:1}.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}.spell-search{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;max-height:500px}.spell-search-loading,.spell-search-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--text-muted)}.spell-search-loading .spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spell-search-header{padding:.75rem;border-bottom:1px solid var(--border-color);background:var(--bg-tertiary)}.spell-search-input-wrapper{position:relative;margin-bottom:.5rem}.spell-search-input-wrapper .search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.spell-search-input{width:100%;padding:.5rem .75rem .5rem 2.25rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:.95rem}.spell-search-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-rgb, 139, 92, 246),.2)}.spell-search-filters{display:flex;gap:.5rem;flex-wrap:wrap}.filter-select{flex:1;min-width:100px;padding:.35rem .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:.8rem}.filter-select:focus{outline:none;border-color:var(--accent-primary)}.spell-search-results{flex:1;overflow-y:auto;min-height:200px;max-height:350px}.spell-search-empty,.spell-search-hint{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--text-muted);text-align:center}.spell-search-item{padding:.75rem;border-bottom:1px solid var(--border-light);cursor:pointer;transition:background-color .15s}.spell-search-item:hover,.spell-search-item.selected{background:var(--bg-hover)}.spell-search-item.selected{border-left:3px solid var(--accent-primary);padding-left:calc(.75rem - 3px)}.spell-item-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem}.spell-item-name{font-weight:600;color:var(--text-primary)}.spell-item-level{font-size:.75rem;color:var(--text-muted);padding:.1rem .4rem;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.spell-item-meta{display:flex;gap:.5rem;font-size:.8rem;color:var(--text-muted);margin-bottom:.25rem}.spell-item-school{color:var(--accent-primary);font-style:italic}.spell-item-classes{opacity:.7}.spell-item-details{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;color:var(--text-muted)}.spell-detail{display:flex;align-items:center;gap:.25rem}.spell-tag-mini{padding:.1rem .3rem;border-radius:var(--radius-sm);font-size:.65rem;font-weight:600}.spell-tag-mini.conc{background:var(--warning-light, rgba(255, 193, 7, .15));color:var(--warning, #ffc107)}.spell-tag-mini.ritual{background:#9c27b026;color:#9c27b0}.spell-item-description{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-light)}.spell-description-text{font-size:.8rem;color:var(--text-secondary);line-height:1.4;margin:0 0 .5rem;white-space:pre-wrap}.spell-search-footer{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-top:1px solid var(--border-color);background:var(--bg-tertiary)}.spell-search-help{font-size:.75rem;color:var(--text-muted)}@media (max-width: 500px){.spell-search-filters{flex-direction:column}.filter-select{min-width:100%}.spell-search-help{display:none}}.spells-panel{display:flex;flex-direction:column;gap:var(--spacing-sm);position:relative;overflow:visible}.copy-notice{margin:0 var(--spacing-xs);padding:6px 10px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:var(--font-sm)}.spells-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:spellsFloatUpFade 5s ease-out forwards;pointer-events:none;z-index:150}.spells-panel .floating-roll-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.spells-panel .floating-roll-labels{display:flex;gap:4px;align-items:center}.spells-panel .floating-roll-adv{font-size:var(--font-sm);font-weight:700;padding:2px 8px;border-radius:var(--radius-sm)}.spells-panel .floating-roll-adv.advantage{background:var(--success);color:#fff}.spells-panel .floating-roll-adv.disadvantage{background:var(--danger);color:#fff}.spells-panel .floating-roll-label{font-size:var(--font-xs);font-weight:700;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm)}.spells-panel .floating-roll-result.crit{background:var(--crit-bg);border-color:var(--crit-color)}.spells-panel .floating-roll-result.crit .floating-roll-value{color:var(--crit-text, var(--crit-color))}.spells-panel .floating-roll-result.crit .floating-roll-label{background:var(--crit-color);color:var(--bg-primary)}.spells-panel .floating-roll-result.fail{background:var(--fail-bg);border-color:var(--fail-color)}.spells-panel .floating-roll-result.fail .floating-roll-value{color:var(--fail-text, var(--fail-color))}.spells-panel .floating-roll-result.fail .floating-roll-label{background:var(--fail-color);color:#fff}.spells-panel .floating-roll-result.heal{background:var(--bg-secondary);border-color:var(--success)}.spells-panel .floating-roll-result.heal .floating-roll-value{color:var(--success)}.spells-panel .floating-roll-result.damage{background:var(--bg-secondary);border-color:var(--danger)}.spells-panel .floating-roll-result.damage .floating-roll-value{color:var(--danger)}@keyframes spellsFloatUpFade{0%{opacity:0;transform:translate(-50%,-42%) scale(.96)}10%{opacity:1;transform:translate(-50%,-50%) scale(1)}75%{opacity:1;transform:translate(-50%,-58%) scale(1)}to{opacity:0;transform:translate(-50%,-68%) scale(.98)}}.spell-header-stats{display:flex;gap:var(--spacing-sm)}.spell-stat{display:flex;align-items:center;gap:2px;font-size:var(--font-xs);color:var(--text-secondary);padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.spellcasting-ability-row{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-sm);color:var(--text-secondary);flex-wrap:wrap}.spellcasting-ability-row select{padding:2px 8px;font-size:var(--font-sm)}.ability-display{font-weight:600;color:var(--accent-primary);padding:2px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.pact-magic-toggle{display:flex;align-items:center;gap:4px;font-size:var(--font-xs);cursor:pointer;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-left:auto}.pact-magic-toggle input{width:12px;height:12px}.pact-magic-toggle svg{color:var(--warning)}.concentration-display{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:linear-gradient(90deg,var(--warning-light),transparent);border-left:3px solid var(--warning);border-radius:var(--radius-sm);font-size:var(--font-sm)}.concentration-display svg{color:var(--warning)}.concentration-display strong{color:var(--warning)}.spell-slots-section{padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);border:2px solid var(--border-color);box-shadow:inset 0 1px 3px #0000001a}.spell-slots-header{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-sm);font-weight:600;margin-bottom:var(--spacing-xs)}.slot-editor{display:grid;grid-template-columns:repeat(9,1fr);gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-secondary);border-radius:var(--radius-sm)}.slot-editor-row{display:flex;flex-direction:column;align-items:center;gap:2px}.slot-level{font-size:var(--font-xs);font-weight:600;color:var(--text-muted)}.slot-max-input{width:28px;padding:2px;text-align:center;font-size:var(--font-xs)}.spell-slots-grid{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--spacing-sm)}.spell-slots-grid.horizontal{flex-direction:row}.spell-slot-row{display:flex;flex-direction:column;align-items:center;gap:2px}.slot-level-label{width:16px;font-size:var(--font-sm);font-weight:600;color:var(--accent-primary)}.slot-pips{display:flex;gap:3px}.slot-pip{width:16px;height:16px;border-radius:50%;border:2px solid var(--accent-primary);background:transparent;cursor:pointer;transition:all var(--transition-fast);padding:0}.slot-pip.available{background:var(--accent-primary)}.slot-pip.used{opacity:.4}.slot-pip:hover{transform:scale(1.2)}.no-slots-hint{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.add-spell-btn{align-self:flex-start}.spell-form{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}.spell-form input,.spell-form select,.spell-form textarea{font-size:var(--font-sm)}.spell-form-row{display:flex;gap:var(--spacing-xs)}.spell-form-row.damage-row{align-items:center}.spell-form-row.damage-row input,.spell-form-row.damage-row select{flex:1}.damage-plus{color:var(--text-muted);font-weight:600;padding:0 2px}.spell-form-row.checkboxes{gap:var(--spacing-md)}.spell-form-row.checkboxes label{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);cursor:pointer}.spell-form-row.upcast-row{align-items:center;font-size:var(--font-sm);color:var(--text-secondary)}.spell-form-row.upcast-row label{font-weight:500}.spell-form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-xs)}.spells-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.spell-level-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.spell-level-header{font-size:var(--font-sm);font-weight:600;color:var(--accent-primary);display:flex;align-items:center;gap:var(--spacing-xs);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-light);margin:0}.spell-level-header.foldable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast),background var(--transition-fast);padding:var(--spacing-xs);margin:calc(-1 * var(--spacing-xs));margin-bottom:0;border-radius:var(--radius-sm)}.spell-level-header.foldable:hover{color:var(--accent-secondary);background:var(--bg-hover)}.fold-icon{font-size:10px;transition:transform var(--transition-fast);display:inline-block;width:12px;text-align:center}.fold-icon.collapsed{transform:rotate(-90deg)}.spell-count{font-weight:400;color:var(--text-secondary);font-size:var(--font-xs);margin-left:auto}.slot-count{font-weight:400;color:var(--text-muted);font-size:var(--font-xs);margin-left:4px}.spell-card{padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.spell-card.not-prepared{opacity:.6}.spell-card.concentrating{border-color:var(--warning);box-shadow:0 0 0 1px var(--warning-light)}.spell-card:hover{border-color:var(--accent-primary)}.spell-card-header{display:flex;align-items:center;gap:var(--spacing-xs)}.prepared-toggle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-sm);background:transparent;border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;padding:0}.prepared-toggle.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.spell-name{flex:1;font-weight:500;font-size:var(--font-sm)}.spell-tag{font-size:9px;font-weight:600;padding:1px 4px;border-radius:var(--radius-sm)}.spell-tag.conc{background:var(--warning-light);color:var(--warning)}.spell-tag.conc.active{background:var(--warning);color:#fff;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.spell-tag.ritual{background:var(--info-light);color:var(--info)}.concentrating-icon{color:var(--warning);animation:pulse 2s infinite}.upcast-selector{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);margin-top:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--font-xs)}.upcast-selector select{padding:2px 6px;font-size:var(--font-xs)}.spell-actions{display:flex;gap:2px}.cast-btn:not(:disabled){color:var(--accent-primary)}.spell-card-body{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-xs)}.spell-school{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.spell-roll-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.spell-roll-btn{display:flex;align-items:center;gap:3px;padding:3px 8px;font-size:var(--font-xs);border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-tertiary);cursor:pointer;transition:all var(--transition-fast)}.spell-roll-btn:disabled{background:var(--danger-light)!important;border-color:var(--danger)!important;color:var(--text-primary)!important;opacity:.8;cursor:not-allowed}.spell-roll-btn.attack{border-color:var(--accent-primary);color:var(--accent-primary)}.spell-roll-btn.attack:hover{background:var(--accent-primary);color:#fff}.spell-roll-btn.damage{border-color:var(--danger);color:#fff;background:var(--danger)}.spell-roll-btn.damage:hover{background:#dc2626;border-color:#dc2626;color:#fff}.spell-roll-btn.incapacitated{background:var(--danger-light);border-color:var(--danger);color:var(--text-primary);opacity:.8;cursor:not-allowed}.spell-roll-btn.incapacitated:hover{background:var(--danger-light);border-color:var(--danger);color:var(--text-primary)}.spell-roll-btn.heal{border-color:var(--success);color:#fff;background:var(--success)}.spell-roll-btn.heal:hover{background:#16a34a;border-color:#16a34a;color:#fff}.spell-roll-btn.ritual{border-color:var(--info);color:var(--info);background:transparent}.spell-roll-btn.ritual:hover{background:var(--info);color:#fff}.damage-type-small{font-size:9px;opacity:.8;margin-left:2px}.spell-save-info{display:flex;align-items:center;gap:3px;font-size:var(--font-xs);color:var(--text-secondary);padding:3px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.spell-description{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4;margin:0}.no-slot-hint{font-size:var(--font-xs);color:var(--text-muted);font-style:italic;padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px dashed var(--border-color)}.damage-buttons-group{display:flex;flex-wrap:wrap;gap:4px}.damage-level{font-weight:600;margin-right:2px;opacity:.7}.spell-roll-btn.damage.critical{background:#ef44444d;box-shadow:0 0 10px #ef444499;animation:crit-pulse .3s ease-out}@keyframes crit-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.spell-roll-btn{touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.spells-panel .empty-state{padding:var(--spacing-lg);text-align:center;color:var(--text-muted)}.spells-panel .empty-state svg{opacity:.5;margin-bottom:var(--spacing-xs)}.add-spell-container{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);border:2px solid var(--border-color)}.add-spell-mode-tabs{display:flex;gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-xs)}.mode-tab{display:flex;align-items:center;gap:4px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);background:transparent;border:1px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.mode-tab:hover{color:var(--text-primary);background:var(--bg-hover)}.mode-tab.active{color:var(--accent-primary);border-color:var(--border-color);border-bottom-color:var(--bg-tertiary);background:var(--bg-secondary);font-weight:500}.spell-search-container{display:flex;flex-direction:column;gap:var(--spacing-sm)}.spell-meta-info{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-muted)}.spell-meta-item{display:flex;align-items:center;gap:3px;padding:2px 6px;background:var(--bg-tertiary);border-radius:var(--radius-sm)}.spell-meta-item svg{opacity:.7}.spell-components{display:flex;gap:4px}.component-tag{font-size:10px;font-weight:600;padding:2px 5px;border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-light)}.component-tag.material{cursor:help}.component-tag.material:hover{background:var(--accent-light);border-color:var(--accent-primary)}.spell-list-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.spell-toggles{display:flex;gap:var(--spacing-xs)}.toggle-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;font-size:var(--font-xs);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast)}.toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toggle-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.spell-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:10px;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.spell-meta-row .spell-school{font-style:italic;color:var(--accent-primary)}.spell-meta-row .spell-meta-item{display:flex;align-items:center;gap:2px;padding:1px 4px;background:transparent}.spell-meta-row .spell-meta-item svg{opacity:.6}.spell-components-inline{display:flex;gap:2px}.spell-components-inline .comp-tag{font-size:9px;font-weight:600;padding:1px 3px;background:var(--bg-tertiary);border-radius:2px;color:var(--text-secondary)}.spell-components-inline .comp-tag.material{cursor:help}.spell-components-inline .comp-tag.blocked{background:var(--danger);color:#fff;cursor:help}.spell-range-blocked{color:var(--danger);font-weight:600;cursor:help}.spell-roll-btn.cast.prominent{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;padding:6px 12px;font-weight:500}.spell-roll-btn.cast.prominent:hover{background:var(--accent-secondary);border-color:var(--accent-secondary)}.spell-description{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4;position:relative}.spell-description.collapsed .spell-description-content{max-height:2.8em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.spell-description.expanded .spell-description-content{max-height:none}.spell-description-content strong{font-weight:600;color:var(--text-primary)}.spell-description-content em{font-style:italic}.expand-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;margin-top:4px;font-size:var(--font-xs);font-weight:500;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast)}.expand-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.spell-save-info{display:flex;align-items:center;gap:3px;font-size:var(--font-xs);color:var(--text-secondary);padding:6px 10px;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);cursor:help;touch-action:manipulation}.spell-save-info:active{background:var(--bg-hover)}.conditions-panel{display:flex;flex-direction:column;gap:var(--spacing-sm)}.conditions-panel .card-title{display:flex;align-items:center;gap:var(--spacing-xs)}.active-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--warning);color:#fff;font-size:var(--font-xs);font-weight:600;border-radius:var(--radius-full)}.active-conditions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--warning-light);border-radius:var(--radius-md)}.active-condition-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--warning);color:#fff;font-size:var(--font-xs);font-weight:500;border-radius:var(--radius-full)}.condition-chip-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.condition-rounds{font-size:9px;opacity:.8}.chip-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer}.chip-remove:hover{background:#fff6}.conditions-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}@media (max-width: 600px){.conditions-grid{grid-template-columns:repeat(2,1fr)}}.condition-item{padding:4px 8px;font-size:var(--font-xs);text-align:left;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.condition-item:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.condition-item.active{background:var(--warning);border-color:var(--warning);color:#fff;font-weight:600}.condition-controls{display:flex;align-items:center;gap:4px;padding:2px 4px}.duration-controls{display:flex;align-items:center;gap:2px}.duration-value{font-size:var(--font-xs);font-weight:600;min-width:16px;text-align:center}.condition-controls .has-notes{color:var(--accent-primary)}.condition-notes-editor{display:flex;flex-direction:column;gap:4px;padding:4px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.condition-notes-editor textarea{font-size:var(--font-xs);resize:none}.notes-actions{display:flex;justify-content:flex-end;gap:4px}.condition-notes-display{font-size:var(--font-xs);color:var(--text-muted);padding:2px 4px;margin:0;line-height:1.3}.custom-conditions{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid var(--border-light)}.custom-conditions h4{font-size:var(--font-xs);color:var(--text-muted);margin:0}.condition-item.custom{flex-direction:row;align-items:center;gap:var(--spacing-xs)}.condition-item.custom .condition-toggle{flex:1}.add-condition-form{display:flex;gap:var(--spacing-xs);align-items:center}.add-condition-form input{flex:1;font-size:var(--font-sm);padding:4px 8px}.add-condition-btn{align-self:flex-start}.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-wrapper{position:relative;display:inline-flex}.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;position:relative;overflow:hidden}.workspace-tab:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--accent-primary);transition:all var(--transition-normal);transform:translate(-50%)}.workspace-tab:hover{background:var(--bg-hover);color:var(--text-primary);transform:translateY(-1px)}.workspace-tab:hover:after{width:60%}.workspace-tab:active{transform:scale(.97)}.workspace-tab.active{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.workspace-tab.active:after{width:80%}.workspace-tab.will-hide{opacity:.5;border-style:dashed}.workspace-tab.will-hide:hover{opacity:.8}.tab-visibility-toggle{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);opacity:0;z-index:1}.workspace-tab-wrapper:hover .tab-visibility-toggle{opacity:1}.tab-visibility-toggle:hover{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary);transform:scale(1.1)}.tab-visibility-toggle.hidden-in-play{background:var(--danger-light);border-color:var(--danger);color:var(--danger);opacity:1}.tab-visibility-toggle.hidden-in-play:hover{background:var(--danger);color:#fff}.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:100%}.roll-history .card-header{flex-shrink:0}.rolls-list{display:flex;flex-direction:column;gap:4px;flex:none;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;max-height:280px;min-height:100px;padding-right:4px}.roll-entry{padding:6px var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);animation:slideUp .2s ease-out;transition:background var(--transition-fast);display:flex;flex-direction:column;gap:3px}.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.critical .roll-label,.roll-entry.critical .roll-total{color:var(--crit-text, var(--crit-color))}.roll-entry.fail{background:var(--fail-bg);border-color:var(--fail-color)}.roll-entry.fail .roll-label,.roll-entry.fail .roll-total{color:var(--fail-text, var(--fail-color))}.roll-header{display:flex;align-items:center;gap:var(--spacing-xs);width:100%}.roll-variant-controls{display:inline-flex;align-items:center;gap:1px;margin-left:auto;flex-shrink:0}.roll-variant-controls+.roll-tag,.roll-variant-controls+.roll-tag+.roll-tag{margin-left:0}.roll-variant-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border-radius:var(--radius-sm);opacity:.5;background:transparent;border:1px solid transparent}.roll-variant-btn:hover{opacity:1;background:var(--bg-hover)}.roll-variant-btn.active{opacity:1;background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.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:wrap}.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-adv-dis-reasons{display:flex;flex-wrap:wrap;gap:4px;font-size:9px;margin-top:2px;opacity:.75}.adv-dis-reason{padding:1px 4px;border-radius:var(--radius-sm);font-weight:400}.adv-dis-reason.advantage{background:var(--success-light);color:var(--success)}.adv-dis-reason.disadvantage{background:var(--danger-light);color:var(--danger)}.adv-dis-reason.cancelled{background:var(--warning-light);color:var(--warning)}.roll-result{display:flex;align-items:center;gap:var(--spacing-xs);font-family:Courier New,monospace}.roll-effects{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;font-size:var(--font-xxs)}.roll-effect-chip{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-sm);padding:2px 6px;color:var(--text-secondary)}.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-effects-inline{display:flex;gap:4px;font-size:var(--font-xs)}.effect-inline{color:var(--accent-primary);font-weight:500}.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}.roll-damage-buttons{display:flex;gap:4px;margin-left:auto}.roll-damage-btn{display:flex;align-items:center;justify-content:center;gap:2px;padding:3px 8px;border-radius:var(--radius-sm);background:var(--danger-light);border:1px solid var(--danger);color:var(--danger);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-xs);pointer-events:auto;position:relative}.roll-damage-btn:hover{background:var(--danger);color:#fff;transform:scale(1.05)}.roll-damage-btn.crit{background:var(--crit-bg);border-color:var(--crit-color);color:var(--crit-color);animation:critPulse 1s ease-in-out infinite}.roll-damage-btn.crit:hover{background:var(--crit-color);color:var(--bg-primary)}.roll-damage-btn.sneak{border-color:var(--border-color);color:var(--text-muted)}.roll-damage-btn.sneak:hover{background:var(--bg-hover)}.roll-damage-btn.sneak.crit{border-color:var(--crit-color)}.sneak-label{display:inline-block;padding:2px 6px;border-radius:4px;background:rgba(var(--success-rgb, 46, 204, 113),.08);color:var(--success);font-size:9px;font-weight:700}.sneak-label{font-size:9px;font-weight:700}@keyframes critPulse{0%,to{box-shadow:0 0 0 0 var(--crit-color)}50%{box-shadow:0 0 8px 2px var(--crit-color)}}.roll-entry.has-linked{padding-bottom:var(--spacing-xs)}.linked-damage-box{margin-top:4px;padding:6px var(--spacing-sm);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);border-left:3px solid var(--danger)}.linked-damage-box.critical{border-left-color:var(--crit-color);background:var(--crit-bg)}.linked-damage-header{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.linked-damage-header .roll-icon{color:var(--danger)}.linked-damage-box.critical .linked-damage-header .roll-icon{color:var(--crit-color)}.linked-damage-header .roll-label{font-size:10px;color:var(--text-secondary)}.linked-damage-header .crit-badge{padding:1px 4px;font-size:9px;margin-left:auto}.linked-damage-result{display:flex;align-items:center;gap:var(--spacing-xs);font-family:Courier New,monospace}.linked-damage-result .roll-dice,.linked-damage-result .roll-modifier{font-size:var(--font-xs)}.linked-damage-result .damage-total{color:var(--danger);font-size:var(--font-md)}.linked-damage-box.critical .linked-damage-result .damage-total{color:var(--crit-color)}.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: #fbbf24;--crit-bg: rgba(251, 191, 36, .15);--crit-text: #fbbf24;--fail-color: #f87171;--fail-bg: rgba(248, 113, 113, .15);--fail-text: #f87171;--expertise-color: #fbbf24;--expertise-bg: rgba(251, 191, 36, .12);--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 cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .4s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-tooltip: 400;--z-toast: 500}[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);--crit-color: #b45309;--crit-bg: rgb(255, 237, 190);--crit-text: #92400e;--fail-color: #dc2626;--fail-bg: rgb(254, 202, 202);--fail-text: #991b1b;--expertise-color: #b45309;--expertise-bg: rgba(251, 191, 36, .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}[data-compact-mode=true]{--spacing-xs: .15rem;--spacing-sm: .3rem;--spacing-md: .6rem;--spacing-lg: 1rem;--spacing-xl: 1.4rem}[data-compact-mode=true][data-font-size=small]{--font-xs: .6rem;--font-sm: .7rem;--font-md: .8rem;--font-lg: .9rem;--font-xl: 1rem;--font-2xl: 1.2rem;--font-3xl: 1.5rem}[data-compact-mode=true][data-font-size=medium]{--font-xs: .65rem;--font-sm: .75rem;--font-md: .85rem;--font-lg: .95rem;--font-xl: 1.05rem;--font-2xl: 1.25rem;--font-3xl: 1.6rem}[data-compact-mode=true][data-font-size=large]{--font-xs: .75rem;--font-sm: .85rem;--font-md: .95rem;--font-lg: 1.1rem;--font-xl: 1.2rem;--font-2xl: 1.45rem;--font-3xl: 1.9rem}[data-compact-mode=true] .card{padding:var(--spacing-xs)}[data-compact-mode=true] .card-header{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs)}[data-compact-mode=true] .btn{min-height:32px;min-width:32px;padding:var(--spacing-xs) var(--spacing-sm)}[data-compact-mode=true] .btn-sm{min-height:24px;min-width:24px}[data-compact-mode=true] input,[data-compact-mode=true] textarea,[data-compact-mode=true] select{padding:var(--spacing-xs) var(--spacing-sm)}*,*: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)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;border-radius:var(--radius-sm)}:focus:not(:focus-visible){outline:none}.btn:focus-visible{outline-offset:3px;box-shadow:0 0 0 4px var(--accent-light)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::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),background-color var(--transition-fast)}input:hover:not(:focus):not(:disabled),textarea:hover:not(:focus):not(:disabled),select:hover:not(:focus):not(:disabled){border-color:var(--text-muted)}input:focus,textarea:focus,select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-light);outline:none;background:var(--bg-secondary)}input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.7}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);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast)}.card:hover{border-color:color-mix(in srgb,var(--accent-primary) 30%,var(--border-color));box-shadow:var(--shadow-md)}.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;position:relative;overflow:hidden;transform:translateZ(0)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:currentColor;opacity:0;transition:opacity var(--transition-fast);pointer-events:none}.btn:hover:after{opacity:.08}.btn:active{transform:scale(.97)}.btn:active:after{opacity:.15}.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-xs{padding:6px;font-size:var(--font-xs);min-height:28px;min-width:28px;border-radius:var(--radius-sm)}.btn-sm.btn-icon{padding:var(--spacing-xs)}.btn-xs.btn-icon{padding:5px}.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:before{content:"";position:absolute;bottom:calc(100% - 4px);left:50%;transform:translate(-50%) translateY(4px);border:5px solid transparent;border-top-color:var(--bg-tertiary);opacity:0;pointer-events:none;transition:all var(--transition-fast);z-index:var(--z-tooltip)}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%) translateY(4px);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:all var(--transition-fast);z-index:var(--z-tooltip);box-shadow:var(--shadow-md);border:1px solid var(--border-light)}.tooltip:hover:before,.tooltip:hover:after{opacity:1;transform:translate(-50%) translateY(0)}.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)}}@keyframes diceBounce{0%{transform:scale(.3) rotate(-180deg);opacity:0}50%{transform:scale(1.15) rotate(10deg);opacity:1}70%{transform:scale(.9) rotate(-5deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes diceRollSpin{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(720deg) rotateY(720deg)}}.dice-animation-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;pointer-events:none}.dice-animation{font-size:4rem;animation:diceBounce .6s cubic-bezier(.175,.885,.32,1.275);text-shadow:0 4px 20px rgba(0,0,0,.5)}.dice-animation.crit{color:var(--crit-color);text-shadow:0 0 30px var(--crit-color),0 0 60px var(--crit-color)}.dice-animation.fail{color:var(--fail-color);text-shadow:0 0 30px var(--fail-color)}.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}}*{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}html{scroll-behavior:smooth}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xl);color:var(--text-muted);text-align:center;min-height:120px;background:radial-gradient(ellipse at center,var(--accent-light) 0%,transparent 70%);border-radius:var(--radius-lg);border:2px dashed var(--border-light);transition:all var(--transition-normal)}.empty-state:hover{border-color:var(--accent-primary);background:radial-gradient(ellipse at center,var(--accent-light) 0%,transparent 60%)}.empty-state svg{margin-bottom:var(--spacing-sm);opacity:.5;transition:all var(--transition-normal)}.empty-state:hover svg{opacity:.8;transform:scale(1.1)}.empty-state p{font-size:var(--font-sm);margin:0}.empty-state .empty-hint{font-size:var(--font-xs);margin-top:var(--spacing-xs);opacity:.7}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s cubic-bezier(.5,.1,.5,.9) infinite}.loading-spinner-sm{width:16px;height:16px;border-width:2px}.btn.loading{pointer-events:none;opacity:.7}.btn.loading:before{content:"";width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;margin-right:var(--spacing-xs)}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;min-width:18px;min-height:18px;padding:0;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-tertiary);cursor:pointer;position:relative;transition:all var(--transition-fast)}input[type=checkbox]:hover{border-color:var(--accent-primary)}input[type=checkbox]:checked{background:var(--accent-primary);border-color:var(--accent-primary)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}select{cursor:pointer;padding-right:calc(var(--spacing-md) + 16px);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236a6a80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-sm) center}input[type=number]:hover{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}textarea{resize:vertical;min-height:60px;line-height:1.5}.card-title{display:flex;align-items:center;gap:var(--spacing-xs)}.card-title svg{color:var(--accent-primary);flex-shrink:0}.interactive-item{padding:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer}.interactive-item:hover{background:var(--bg-hover)}.interactive-item:active{transform:scale(.99)}.stat-clickable{cursor:pointer;transition:all var(--transition-fast)}.stat-clickable:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.stat-clickable:active{transform:scale(.97)}@keyframes ripple{0%{transform:scale(0);opacity:.5}to{transform:scale(2);opacity:0}}.ripple-container{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:currentColor;pointer-events:none;animation:ripple .6s ease-out forwards}@keyframes successPop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes errorShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.success-feedback{animation:successPop .3s var(--transition-bounce)}.error-feedback{animation:errorShake .4s ease-in-out}.gradient-overlay{background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.02) 100%)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.status-dot.active{background:var(--success);box-shadow:0 0 8px var(--success)}.status-dot.warning{background:var(--warning);animation:pulse 2s ease-in-out infinite}.status-dot.error{background:var(--danger)}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--font-xs);color:var(--text-secondary);transition:all var(--transition-fast)}.tag:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.tag.removable{padding-right:var(--spacing-xs);cursor:pointer}.tag .tag-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--bg-hover);color:var(--text-muted);transition:all var(--transition-fast)}.tag .tag-remove:hover{background:var(--danger);color:#fff}.divider{height:1px;background:var(--border-light);margin:var(--spacing-md) 0}.divider-vertical{width:1px;height:100%;background:var(--border-light);margin:0 var(--spacing-md)}.skeleton{background:linear-gradient(90deg,var(--bg-tertiary) 0%,var(--bg-hover) 50%,var(--bg-tertiary) 100%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.notification-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--danger);border-radius:50%;border:2px solid var(--bg-card)}@keyframes attention-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-light)}50%{box-shadow:0 0 0 8px transparent}}.attention{animation:attention-pulse 2s ease-in-out infinite}[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: #daa520;--crit-bg: rgba(218, 165, 32, .2);--crit-text: #daa520;--fail-color: #cd5c5c;--fail-bg: rgba(205, 92, 92, .2);--fail-text: #cd5c5c;--expertise-color: #daa520;--expertise-bg: rgba(218, 165, 32, .15);--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);--crit-color: #5a440e;--crit-bg: rgb(255, 232, 173);--crit-text: #5a440e;--fail-color: #991b1b;--fail-bg: rgb(255, 190, 190);--fail-text: #991b1b;--expertise-color: #92400e;--expertise-bg: rgba(251, 191, 36, .25)}[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(240px,420px) minmax(180px,280px);grid-template-rows:1fr auto;grid-template-areas:"skills  abilities  weapons  rolllog" "skills  main       main     hp";align-items:stretch;gap:var(--spacing-sm)}.sheet-abilities{grid-area:abilities;display:flex;flex-direction:column}.sheet-abilities>.card{flex:1;display:flex;flex-direction:column;padding:var(--spacing-sm)}.sheet-weapons{grid-area:weapons;display:flex;flex-direction:column}.sheet-weapons>.card{flex:1;display:flex;flex-direction:column}.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}.sheet-hp>.card{flex:1;display:flex;flex-direction:column}.sheet-rolllog{grid-area:rolllog;display:flex;flex-direction:column}.sheet-rolllog>.card{flex:1;display:flex;flex-direction:column}@media (max-width: 1600px){.content-grid.sheet-layout{grid-template-columns:minmax(180px,320px) minmax(180px,1fr) minmax(220px,380px) minmax(180px,260px)}}@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(220px,380px) minmax(180px,260px);grid-template-areas:"skills  abilities  abilities  rolllog" "skills  weapons    weapons    hp" "skills  main       main       main"}}@media (max-width: 1100px){.content-grid.sheet-layout{grid-template-columns:1fr 1fr;grid-template-areas:"skills rolllog" "abilities   hp" "weapons    main"}.skills-list{max-height:300px}.skills-panel{overflow-y:auto}}@media (max-width: 900px){.content-grid.sheet-layout{grid-template-columns:1fr 1fr;grid-template-areas:"skills rolllog" "weapons   hp" "abilities    main"}.skills-list{max-height:300px}.skills-panel{overflow-y:auto}.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"}.skills-list{max-height:250px}}@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);background:var(--bg-primary);animation:fadeIn .3s ease-out}.loading-spinner{width:48px;height:48px;border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s cubic-bezier(.5,.1,.5,.9) infinite;position:relative}.loading-spinner:after{content:"⚔️";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.25rem;animation:spinReverse .8s cubic-bezier(.5,.1,.5,.9) infinite}@keyframes spinReverse{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(-360deg)}}.loading-screen p{font-size:var(--font-md);letter-spacing:.5px;animation:pulse 2s ease-in-out 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}}
