@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&display=swap";.dice-toast{background:var(--bg-secondary);border:1px solid var(--border-color);z-index:9999;border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1rem;animation:.3s ease-out toastSlideIn,.3s ease-out 2.4s forwards toastFadeOut;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 20px #0000004d}.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:.3s ease-out iconBounce}@keyframes iconBounce{0%{transform:scale(.5)rotate(-20deg)}50%{transform:scale(1.2)rotate(10deg)}to{transform:scale(1)rotate(0)}}.dice-toast-result{color:var(--text-primary);font-size:1.5rem;font-weight:700}.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{text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary);border-radius:.25rem;padding:.125rem .375rem;font-size:.75rem;font-weight:600}.dice-toast.crit .dice-toast-label{color:var(--crit-color,#fbbf24);background:#fbbf2433}.dice-toast.fail .dice-toast-label{color:var(--fail-color,#f87171);background:#f8717133}.feat-search{gap:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;max-height:450px;display:flex}.feat-search-loading,.feat-search-error{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-secondary);flex-direction:column;display:flex}.feat-search-loading .spinner{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.feat-search-header{gap:var(--spacing-xs);flex-direction:column;flex-shrink:0;display:flex}.feat-search-input-wrapper{align-items:center;display:flex;position:relative}.feat-search-input-wrapper .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.feat-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-sm) var(--spacing-sm) 42px;font-size:var(--font-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;min-height:38px;line-height:1.35}[data-compact-mode=true] .feat-search .feat-search-input{min-height:36px;line-height:1.3;padding:calc(var(--spacing-sm) - 2px) calc(var(--spacing-sm) - 2px) calc(var(--spacing-sm) - 2px) 42px!important}.feat-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-rgb), .2);outline:none}.feat-search-filters{gap:var(--spacing-xs);flex-wrap:wrap;align-items:center;display:flex}.feat-search-filters .filter-select{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;padding:4px 8px}.feat-search-filters .filter-checkbox{font-size:var(--font-xs);color:var(--text-secondary);cursor:pointer;background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);align-items:center;gap:4px;padding:4px 8px;display:flex}.feat-search-filters .filter-checkbox:hover{background:var(--bg-hover)}.feat-search-filters .filter-checkbox input{width:12px;height:12px}.feat-search-results{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-secondary);flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow:hidden auto}.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{justify-content:space-between;align-items:center;gap:var(--spacing-xs);margin-bottom:4px;display:flex}.feat-item-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.feat-item-category{color:var(--text-muted);background:var(--bg-tertiary);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 6px;font-size:10px}.feat-item-meta{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.feat-level-req{border-radius:var(--radius-sm);align-items:center;gap:2px;padding:2px 6px;font-size:10px;display:flex}.feat-level-req.met{color:var(--success);background:#22c55e26}.feat-level-req.unmet{color:var(--danger);background:#ef444426}.feat-ability-req{background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary);padding:2px 6px;font-size:10px}.feat-tag{border-radius:var(--radius-sm);padding:2px 6px;font-size:10px}.feat-tag.repeatable{background:var(--info-light);color:var(--info)}.feat-prereq-warning{color:var(--warning);align-items:center;gap:4px;margin-bottom:4px;font-size:10px;display:flex}.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);white-space:pre-wrap;margin:0 0 .5rem;line-height:1.4}.feat-search-footer{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.feat-search-help{font-size:var(--font-xs);color:var(--text-muted)}.spell-selection-list{flex-direction:column;gap:10px;display:flex}.spell-selection-list-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.spell-selection-list-counter{font-size:var(--font-xs);color:var(--text-muted);margin-top:4px}.spell-selection-pill-group{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.spell-selection-pill{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-light);font-size:var(--font-xxs);color:var(--text-secondary);align-items:center;padding:2px 8px;display:inline-flex}.spell-selection-pill.selected{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 18%, var(--bg-primary));color:var(--text-primary)}.spell-selection-search{flex-direction:column;gap:6px;display:flex}.spell-selection-search span{font-size:var(--font-xs);color:var(--text-muted)}.spell-selection-search-input-wrapper{position:relative}.spell-selection-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.spell-selection-search input{width:100%;min-width:0;padding:8px 10px 8px 34px}.spell-selection-results{flex-direction:column;gap:8px;max-height:360px;display:flex;overflow-y:auto}.spell-selection-empty{border-radius:var(--radius-md);background:var(--bg-tertiary);color:var(--text-muted);font-size:var(--font-xs);text-align:center;padding:12px}.spell-selection-card{border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-primary);text-align:left;color:inherit;cursor:pointer;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.spell-selection-card-main{grid-template-columns:68px minmax(0,1fr);align-items:start;gap:10px;display:grid}.spell-selection-card-content{min-width:0}.spell-selection-card-image{border-radius:var(--radius-sm);border:1px solid var(--border-color);object-fit:cover;background:var(--bg-tertiary);width:68px;height:68px}.spell-selection-card:hover:not(:disabled){border-color:var(--accent-primary)}.spell-selection-card.selected{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 28%, transparent)}.spell-selection-card.read-only{cursor:pointer}.spell-selection-card:disabled{opacity:.55;cursor:not-allowed}.spell-selection-card-header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.spell-selection-card-name{color:var(--text-primary);font-weight:600}.spell-selection-card-level{font-size:var(--font-xxs);color:var(--text-muted);border-radius:var(--radius-sm);background:var(--bg-tertiary);padding:2px 6px}.spell-selection-card-meta{font-size:var(--font-xxs);color:var(--text-muted);flex-wrap:wrap;gap:8px;display:flex}.spell-selection-components-inline{align-items:center;gap:4px;display:inline-flex}.spell-selection-component-tag{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-light);min-width:1.1rem;color:var(--text-secondary);justify-content:center;align-items:center;padding:0 .3rem;font-size:.7rem;font-weight:700;display:inline-flex}.spell-selection-component-tag.material{cursor:help}.spell-selection-tag{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-light);padding:1px 6px}.spell-selection-card-description{font-size:var(--font-xs);color:var(--text-secondary);flex-direction:column;gap:6px;line-height:1.45;display:flex}.spell-selection-inline-tag{background:color-mix(in srgb, var(--accent-primary) 14%, var(--bg-tertiary));color:var(--accent-primary);letter-spacing:.02em;border-radius:999px;align-items:center;margin:0 .12rem;padding:0 .35rem;font-size:.74rem;font-weight:700;display:inline-flex}.spell-selection-inline-tag.emphasis{background:color-mix(in srgb, var(--accent-primary) 20%, var(--bg-tertiary))}.spell-selection-more{font-size:var(--font-xxs);color:var(--accent-primary);align-items:center;gap:4px;display:inline-flex}@media (width<=700px){.spell-selection-list-header{flex-direction:column}.spell-selection-pill-group{justify-content:flex-start}.spell-selection-card-main{grid-template-columns:54px minmax(0,1fr);gap:8px}.spell-selection-card-image{width:54px;height:54px}}.levelup-modal-overlay{z-index:1000;padding:var(--spacing-md);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.levelup-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:min(760px,100%);max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.levelup-modal.wizard-modal{width:min(900px,100%)}.levelup-modal-header,.levelup-modal-footer{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex}.levelup-modal-footer{border-bottom:none;border-top:1px solid var(--border-color)}.levelup-modal-header h2{font-size:var(--font-lg);margin:0}.levelup-modal-header p{font-size:var(--font-sm);color:var(--text-muted);margin:4px 0 0}.levelup-modal-body{padding:var(--spacing-md);gap:var(--spacing-md);flex-direction:column;display:flex;overflow-y:auto}.wizard-steps{padding:0 var(--spacing-md) var(--spacing-md);border-bottom:1px solid var(--border-color);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;display:grid}.wizard-step{border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;align-items:center;gap:8px;padding:10px 12px;display:flex}.wizard-step:disabled{opacity:.45;cursor:not-allowed}.wizard-step.active{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary));color:var(--text-primary)}.wizard-step-index{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex}.wizard-step-label{font-size:var(--font-xs);font-weight:600}.wizard-footer-actions{gap:var(--spacing-xs);display:flex}.wizard-page-grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.wizard-page-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-field{flex-direction:column;gap:6px;display:flex;position:relative;overflow:visible}.wizard-field span{font-size:var(--font-xs);color:var(--text-muted)}.wizard-field input,.wizard-field select,.wizard-field textarea{min-width:0}.race-input-wrapper,.background-input-wrapper.inline,.wizard-picker-wrapper{position:relative}.picker-floating-menu{z-index:1400}.race-selected-summary{margin-top:6px}.wizard-class-preview{padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-primary), color-mix(in srgb, var(--accent-primary) 8%, var(--bg-primary)));min-height:104px}.wizard-class-preview strong{color:var(--text-primary)}.wizard-class-preview p{font-size:var(--font-xs);color:var(--text-secondary);margin:6px 0 0;line-height:1.4}.wizard-class-preview.final{border-color:color-mix(in srgb, var(--accent-primary) 30%, var(--border-light))}.wizard-ability-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.wizard-feat-stack{gap:var(--spacing-md);flex-direction:column;display:flex}.wizard-feat-section{gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-tertiary), var(--bg-primary));flex-direction:column;display:flex}.wizard-feat-section-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);display:flex}.wizard-feat-section-header h3{font-size:var(--font-md);margin:0}.wizard-feat-section-header p{font-size:var(--font-xs);color:var(--text-muted);margin:4px 0 0;line-height:1.4}.wizard-feat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.wizard-feat-config-card{margin-top:4px}.wizard-suggestion-btn{align-self:flex-start;margin-top:10px}.ability-allocation-row.wizard{background:var(--bg-primary);grid-template-columns:minmax(0,1fr) 72px minmax(88px,auto);align-items:center;display:grid}.ability-allocation-row.wizard.primary-ability{border-color:color-mix(in srgb, var(--accent-primary) 42%, var(--border-light));background:linear-gradient(135deg, color-mix(in srgb, var(--accent-primary) 12%, var(--bg-primary)), var(--bg-primary))}.wizard-ability-value{width:72px;min-width:0;font-size:var(--font-lg);color:var(--text-primary);justify-content:center;justify-self:center;align-items:center;font-weight:700;display:inline-flex}.levelup-state,.levelup-note,.levelup-empty{padding:var(--spacing-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);font-size:var(--font-sm);color:var(--text-secondary)}.levelup-state.error{color:var(--danger)}.levelup-state.warning{color:#fef3c7;background:#92400eeb;border:1px solid #fbbf2473}.levelup-controls{justify-content:space-between;align-items:center;gap:var(--spacing-sm);display:flex}.levelup-stepper{align-items:center;gap:var(--spacing-xs);display:inline-flex}.levelup-summary-grid{gap:var(--spacing-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.levelup-summary-grid.four-up{grid-template-columns:repeat(4,minmax(0,1fr))}.levelup-summary-card{padding:var(--spacing-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);flex-direction:column;gap:4px;display:flex}.levelup-summary-card.accent{background:linear-gradient(135deg,#f59e0b24,#fbbf2414);border:1px solid #f59e0b2e}.levelup-label{font-size:var(--font-xs);color:var(--text-muted)}.levelup-section{gap:var(--spacing-xs);flex-direction:column;display:flex}.levelup-section h3{font-size:var(--font-md);margin:0}.levelup-feature-list,.levelup-table-changes{gap:var(--spacing-xs);flex-direction:column;display:flex}.levelup-feature,.levelup-table-change{padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-primary);text-align:left;flex-direction:column;gap:4px;display:flex}.levelup-feature{cursor:pointer}.levelup-feature-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);color:var(--text-primary);font-weight:600;display:flex}.levelup-feature-level{font-size:var(--font-xs);color:var(--text-muted)}.levelup-feature-text,.levelup-table-change{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4}.levelup-choice-grid{gap:var(--spacing-sm);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.levelup-choice-grid.hp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.levelup-choice-card{padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-primary);text-align:left;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);flex-direction:column;gap:6px;display:flex}.levelup-choice-card:hover{border-color:var(--accent-primary);transform:translateY(-1px)}.levelup-choice-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 1px rgba(var(--accent-rgb,124, 58, 237), .3)}.levelup-choice-card p{font-size:var(--font-xs);color:var(--text-secondary);margin:0;line-height:1.35}.levelup-choice-header{color:var(--text-primary);align-items:center;gap:6px;font-weight:600;display:flex}.levelup-inline-actions{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.levelup-helper-text{font-size:var(--font-xs);color:var(--text-muted)}.levelup-choice-stack{gap:var(--spacing-sm);flex-direction:column;display:flex}.levelup-decision-card{padding:var(--spacing-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-light);gap:var(--spacing-sm);flex-direction:column;display:flex}.levelup-decision-card.selected{border-color:var(--accent-primary);box-shadow:0 0 0 1px rgba(var(--accent-rgb,124, 58, 237), .22);background:linear-gradient(180deg, color-mix(in srgb, var(--accent-primary) 8%, var(--bg-tertiary)), var(--bg-tertiary))}.levelup-decision-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-sm);display:flex}.levelup-decision-header p{font-size:var(--font-xs);color:var(--text-muted);margin:4px 0 0}.levelup-pill{border-radius:var(--radius-full);color:var(--warning,#f59e0b);white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b40;align-items:center;padding:2px 8px;font-size:10px;display:inline-flex}.levelup-pill.success{color:#10b981;background:#10b9811f;border-color:#10b9812e}.levelup-asi-config,.levelup-feat-config{gap:var(--spacing-xs);flex-direction:column;display:flex}.levelup-selected-feat{border-radius:var(--radius-md);background:var(--bg-primary);border:1px solid var(--border-light);gap:var(--spacing-xs);flex-direction:column;padding:10px;display:flex}.levelup-selected-feat-header,.levelup-subsection-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);display:flex}.levelup-selected-feat-type{border-radius:var(--radius-full);background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-muted);padding:2px 8px;font-size:10px}.levelup-selected-feat strong{color:var(--text-primary)}.levelup-selected-feat p{font-size:var(--font-xs);color:var(--text-secondary);margin:0;line-height:1.4}.levelup-subsection{gap:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.ability-allocation-list{flex-direction:column;gap:8px;display:flex}.ability-allocation-row{justify-content:space-between;align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-light);padding:8px 10px;display:flex}.ability-allocation-name{font-size:var(--font-xs);color:var(--text-secondary);flex-direction:column;gap:2px;display:flex}.ability-allocation-name strong{color:var(--text-primary)}.ability-allocation-actions{gap:6px;display:flex}.ability-allocation-actions .btn[disabled]{opacity:.35}.skill-choice-grid{flex-wrap:wrap;gap:6px;display:flex}.skill-choice-chip{border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-full);font-size:var(--font-xs);cursor:pointer;transition:border-color var(--transition-fast), background var(--transition-fast), color var(--transition-fast), transform var(--transition-fast);padding:6px 10px}.skill-choice-chip:hover{border-color:var(--accent-primary);transform:translateY(-1px)}.skill-choice-chip.selected{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 18%, var(--bg-primary));color:var(--text-primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 32%, transparent)}.wizard-feat-section .feat-search{border-radius:var(--radius-md);border:1px solid var(--border-light);background:var(--bg-primary)}.levelup-inline-actions.wrap{justify-content:flex-start}.levelup-ability-selects{gap:var(--spacing-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.levelup-ability-selects select{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);width:100%;min-width:0;color:var(--text-primary);padding:.45rem .55rem}.levelup-confirm-row{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);color:var(--text-primary);display:flex}.levelup-blocker-list{flex-direction:column;gap:6px;display:flex}.levelup-blocker{border-radius:var(--radius-sm);color:var(--danger);font-size:var(--font-xs);background:#dc262614;border:1px solid #dc262626;padding:8px 10px}.levelup-warning-list{flex-direction:column;gap:6px;display:flex}.levelup-warning{border-radius:var(--radius-sm);color:#f59e0b;font-size:var(--font-xs);background:#f59e0b1f;border:1px solid #f59e0b40;padding:8px 10px}.levelup-subclass-timeline{flex-direction:column;gap:6px;display:flex}.levelup-subclass-tier{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-light);flex-direction:column;gap:8px;padding:8px 10px;display:flex}.levelup-subclass-tier span{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4}.levelup-subclass-level-toggle{text-align:left;color:inherit;background:0 0;border:none;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:10px;padding:0;display:grid}.levelup-subclass-level-toggle strong{color:var(--text-primary)}.levelup-subclass-feature-list{flex-direction:column;gap:6px;display:flex}.levelup-subclass-feature{border-radius:var(--radius-sm);border:1px solid var(--border-light);background:color-mix(in srgb, var(--bg-tertiary) 75%, var(--bg-primary));text-align:left;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.levelup-feature-text.rich :is(p,.xphb-paragraph){margin:0 0 6px}.levelup-feature-text.rich :is(p,.xphb-paragraph):last-child{margin-bottom:0}.levelup-state .spinner{animation:1s linear infinite spin}@media (width<=700px){.levelup-summary-grid,.levelup-choice-grid,.levelup-choice-grid.hp-grid,.levelup-ability-selects,.wizard-steps,.wizard-page-grid,.wizard-page-grid.compact,.wizard-feat-grid,.single-column-mobile{grid-template-columns:1fr}.ability-allocation-row,.levelup-selected-feat-header,.levelup-subsection-header{flex-direction:column;align-items:flex-start}.ability-allocation-row.wizard{grid-template-columns:1fr}.wizard-ability-value{justify-self:flex-start}.levelup-controls{flex-direction:column;align-items:flex-start}.levelup-decision-header{flex-direction:column}}.character-header{gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);grid-template-columns:auto 1fr auto;display:grid}.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{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:36px;height:36px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.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;font-size:var(--font-sm);text-align:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:4px}.initiative-bonus-standalone:focus{border-color:var(--accent-primary);outline:none}.proficiency-input-only{text-align:center;width:44px!important;font-size:var(--font-md)!important}@media (width<=900px){.character-header{gap:var(--spacing-sm);grid-template-columns:auto 1fr}.combat-stats{grid-column:1/-1}}@media (width<=700px){.character-header{grid-template-columns:1fr}}.portrait-section{align-items:center;gap:var(--spacing-xs);flex-direction:column;display:flex}.portrait-container{border-radius:var(--radius-lg);cursor:pointer;background:var(--bg-tertiary);border:2px dashed var(--border-color);width:100px;height:100px;transition:all var(--transition-normal);position:relative;overflow:hidden}.portrait-container:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-glow)}.portrait-image{object-fit:cover;width:100%;height:100%}.portrait-placeholder{width:100%;height:100%;color:var(--text-muted);font-size:var(--font-xs);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.portrait-remove{background:var(--danger);color:#fff;border-radius:var(--radius-full);opacity:0;transition:opacity var(--transition-fast);z-index:30;padding:2px;position:absolute;top:2px;right:2px}.portrait-container.deceased{border-color:var(--danger)}.portrait-container.deceased .portrait-image{filter:grayscale()brightness(.6)}.portrait-deceased-overlay{color:var(--danger);z-index:20;pointer-events:auto;background:#fff0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.portrait-deceased-overlay svg{stroke-width:2px;filter:drop-shadow(0 0 6px #00000080)}.portrait-container:hover .portrait-remove{opacity:1}.play-mode-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--text-muted);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.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{gap:var(--spacing-xs);flex-direction:column;justify-content:center;display:flex}.name-row{align-items:center;gap:var(--spacing-sm);display:flex}.character-name{font-size:var(--font-xl);color:var(--text-primary);padding:var(--spacing-xs) 0;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;min-width:0;font-weight:700}.character-name:focus{border-bottom-color:var(--accent-primary);box-shadow:none;outline:none}.inspiration-box{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);display:flex}.inspiration-input{width:32px;font-size:var(--font-md);text-align:center;color:var(--crit-color);background:0 0;border:none;padding:2px;font-weight:600}.inspiration-input:focus{outline:none}.detail-row{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.detail-row.compact{gap:var(--spacing-xs)}.levelup-inline-btn{white-space:nowrap;flex:none;align-items:center;gap:6px;min-height:36px;padding-inline:10px;display:inline-flex}.detail-actions-row{align-items:center;gap:var(--spacing-xs);margin-top:4px;display:flex}.class-input-wrapper{flex:1;position:relative}.background-input-wrapper{min-width:160px;position:relative}.class-input-wrapper .detail-input{width:100%}.detail-input{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);flex:1}.detail-input.small{flex:.5;min-width:80px}.class-suggestions{z-index:20;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:420px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.class-suggestion{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:8px 10px;display:block}.class-suggestion.selected,.class-suggestion:hover{background:var(--bg-hover)}.class-suggestion-header{justify-content:space-between;align-items:center;gap:6px;display:flex}.class-name{color:var(--text-primary);font-weight:600}.class-tag{font-size:var(--font-xxs);border-radius:var(--radius-full);border:1px solid var(--border-light);padding:2px 6px}.class-tag.caster{color:var(--accent-primary);background:#6366f11f}.class-tag.non-caster{background:var(--bg-tertiary);color:var(--text-muted)}.class-desc{font-size:var(--font-xs);color:var(--text-secondary);margin-top:2px;line-height:1.3}.background-suggestions{z-index:20;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:420px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.background-suggestion{text-align:left;cursor:pointer;border:none;border-bottom:1px solid var(--border-light);width:100%;transition:background var(--transition-fast), border-left-color var(--transition-fast);background:0 0;border-left:2px solid #0000;padding:9px 10px 9px 12px;display:block}.background-suggestion:last-child{border-bottom:none}.background-suggestion.selected,.background-suggestion:hover{background:var(--bg-hover);border-left-color:var(--accent-primary)}.background-suggestion-header,.background-selected-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.background-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary);line-height:1.2}.background-tag{font-size:var(--font-xxs);border-radius:var(--radius-full);color:var(--warning,#f59e0b);white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b47;padding:2px 7px;font-weight:500}.race-input-wrapper .background-tag{color:var(--accent-primary);background:#6366f11a;border-color:#6366f140}.background-summary{font-size:var(--font-xs);color:var(--text-secondary);margin-top:4px;line-height:1.35}.background-meta{font-size:var(--font-xxs);color:var(--text-muted);flex-wrap:wrap;gap:4px;margin-top:5px;display:flex}.background-meta span{background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-light);padding:1px 5px}.background-equipment-preview{font-size:var(--font-xxs);color:var(--text-secondary);margin-top:6px;line-height:1.35}.background-selected-summary{border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-light);margin-top:6px;padding:8px 10px}.background-empty-state{text-align:center;font-size:var(--font-xs);color:var(--text-muted);padding:14px 10px}.background-empty-state.error{color:var(--danger)}.personality-toggle{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);color:var(--text-muted);font-size:var(--font-xs);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;display:flex}.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{gap:var(--spacing-sm);grid-template-columns:repeat(2,1fr);display:grid}.personality-field label{font-size:var(--font-xs);color:var(--text-muted);margin-bottom:2px;display:block}.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 (width<=600px){.personality-grid{grid-template-columns:1fr}}.combat-stats{gap:var(--spacing-xs);flex-direction:column;display:flex;position:relative}.combat-stats .floating-roll-result{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);pointer-events:none;z-index:100;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards initFloatUp;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.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{color:var(--text-primary);font-size:2rem;font-weight:700}.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);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.combat-stats .floating-roll-labels{align-items:center;gap:4px;display:flex}.combat-stats .floating-roll-adv{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{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);display:flex}.stat-box.compact{padding:var(--spacing-xs);min-width:60px}.stat-row-compact{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.stat-icon{background:var(--accent-light);border-radius:var(--radius-md);width:28px;height:28px;color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.stat-icon-inline{color:var(--accent-primary);flex-shrink:0}.stat-content{flex-direction:column;gap:0;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:9px}.stat-value{font-size:var(--font-md);color:var(--text-primary);font-weight:700}.stat-value.danger{color:var(--danger)}.stat-value.boost{color:var(--success)}.stat-value-input{font-size:var(--font-md);text-align:center;background:0 0;border:none;border-bottom:1px solid #0000;width:40px;padding:0;font-weight:700}.stat-value-input:focus{border-bottom-color:var(--accent-primary);outline:none}.proficiency-input{width:44px}.proficiency-edit{align-items:baseline;gap:6px;display:flex}.hp-box{flex-wrap:wrap}.hp-display{align-items:center;gap:2px;display:flex}.hp-current,.hp-max{width:40px;font-size:var(--font-lg);text-align:center;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;font-weight:700}.hp-current{color:var(--success)}.hp-max{color:var(--text-secondary)}.hp-current:focus,.hp-max:focus{border-bottom-color:var(--accent-primary);outline:none}.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{gap:var(--spacing-xs);flex-direction:column;margin-left:auto;display:flex}.temp-hp-input{width:50px;padding:2px var(--spacing-xs);font-size:var(--font-xs);text-align:center}.quick-damage-buttons{gap:2px;display:flex}.quick-damage-btn{background:var(--danger-light,#dc26261a);border:1px solid var(--danger);border-radius:var(--radius-sm);color:var(--danger);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:1px;padding:2px 4px;font-size:10px;font-weight:600;display:flex}.quick-damage-btn:hover{background:var(--danger);color:#fff}.speed-input{align-items:center;gap:2px;display:flex}.speed-input input{width:36px;font-size:var(--font-md);text-align:center;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;font-weight:700}.speed-input input:focus{border-bottom-color:var(--accent-primary);outline:none}.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;user-select:none;-webkit-touch-callout:none}.initiative-box.clickable:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.initiative-roll{cursor:pointer;user-select:none;-webkit-touch-callout:none}.initiative-roll:hover{text-decoration:underline}.hit-dice-row{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.hit-dice-box{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);display:flex}.hit-dice-label{font-size:var(--font-xs);color:var(--text-muted);text-transform:uppercase}.hit-dice-display{align-items:center;gap:2px;display:flex}.hit-dice-display input{width:28px;font-size:var(--font-md);text-align:center;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;font-weight:600}.hit-dice-display input:focus{border-bottom-color:var(--accent-primary);outline:none}.hit-dice-display span{color:var(--text-muted)}.hit-dice-remaining,.hit-dice-remaining-input{color:var(--accent-primary);font-weight:700}.hit-die-select{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--accent-primary);cursor:pointer;padding:2px 4px;font-weight:600}.roll-hit-die{padding:var(--spacing-xs)}.long-rest-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-xs);display:flex}.death-saves-compact{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);background:var(--danger-light,#dc26261a);border:1px solid var(--danger);border-radius:var(--radius-md);display:flex}.death-saves-edit{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.death-edit-label{color:var(--text-muted);font-size:9px;font-weight:800}.death-edit-input{text-align:center;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:26px;padding:1px;font-size:10px;font-weight:800}.death-edit-input.success{border-color:var(--success)}.death-edit-input.failure{border-color:var(--danger)}.death-saves-label{color:var(--danger);font-weight:600;font-size:var(--font-xs)}.death-saves-checks{gap:var(--spacing-sm);display:flex}.death-row{gap:3px;display:flex}.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{border-radius:var(--radius-full);background:var(--bg-tertiary);border:2px solid var(--success);cursor:pointer;width:16px;height:16px;transition:all var(--transition-fast);padding:0}.death-check:hover{transform:scale(1.1)}.roll-death-save,.reset-death{padding:2px 4px}@media (width<=600px){.stat-row-compact{grid-template-columns:repeat(3,1fr);display:grid}.hit-dice-row{flex-direction:column;align-items:flex-start}}.floating-number{font-size:var(--font-lg);pointer-events:none;z-index:10;font-weight:700;animation:2.8s ease-out forwards headerFloatingNumberUp;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.floating-number.heal{color:var(--success);left:25%}.floating-number.damage{color:var(--danger);left:50%}.floating-number.roll{color:var(--accent-primary);font-size:var(--font-md);left:75%}@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]{cursor:default;opacity:1;border-bottom:none}.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);color:var(--accent-primary);font-weight:600}.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:0 0}.hp-max-static{font-size:var(--font-lg);color:var(--text-secondary);font-weight:700}.hit-dice-total-static{font-size:var(--font-md);color:var(--text-primary);font-weight:600}.hit-die-type-static{font-size:var(--font-sm);color:var(--accent-primary);margin-left:var(--spacing-xs);font-weight:600}.abilities-panel{padding:var(--spacing-xs);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.abilities-panel .card-header{flex-shrink:0;margin-bottom:0!important}.abilities-panel .floating-roll-result{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);pointer-events:none;z-index:100;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards abilitiesFloatUp;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.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{color:var(--text-primary);font-size:2rem;font-weight:700}.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{align-items:center;gap:4px;display:flex}.abilities-panel .floating-roll-label{font-size:var(--font-xs);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.abilities-panel .floating-roll-adv{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{min-height:0;margin:0 var(--spacing-xs);flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:4px;padding-bottom:4px;display:grid;overflow:auto hidden}.abilities-panel.compact-row .abilities-grid{grid-template-rows:1fr;grid-template-columns:repeat(3,1fr);gap:2px}.abilities-panel .ability-card{padding:6px}.abilities-panel .ability-modifier{width:38px;height:38px}.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 (width<=520px){.abilities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=340px){.abilities-grid{grid-template-columns:1fr}}.ability-card{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);flex-direction:column;align-items:center;display:flex}.ability-card:hover{border-color:var(--accent-primary)}.ability-header{flex-direction:column;align-items:center;margin-bottom:2px;display:flex}.ability-abbrev{font-size:var(--font-xs);color:var(--accent-primary);letter-spacing:1px;font-weight:700}.ability-name{color:var(--text-muted);text-transform:uppercase;text-align:center;font-size:.5rem}.ability-modifier{justify-content:center;align-items:center;gap:var(--spacing-xs);background:var(--accent-light);border:2px solid var(--accent-primary);border-radius:var(--radius-lg);cursor:pointer;width:48px;height:48px;transition:all var(--transition-fast);user-select:none;-webkit-touch-callout:none;display:flex;position:relative}.ability-modifier:hover{box-shadow:var(--shadow-glow);transform:scale(1.05)}.ability-modifier:active{transform:scale(.95)}.modifier-value{color:var(--accent-primary);font-size:1.05rem;font-weight:700}.roll-icon{color:var(--accent-secondary);opacity:.6;transition:opacity var(--transition-fast);bottom:4px;right:4px}.ability-modifier:hover .roll-icon{opacity:1}.ability-score{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:24px;margin-top:2px;display:flex}.ability-score span{font-size:var(--font-sm);cursor:pointer;font-weight:600}.ability-score input{text-align:center;width:100%;height:100%;font-size:var(--font-sm);background:0 0;border:none;padding:0;font-weight:600}.ability-score input:focus{box-shadow:none;outline:none}.ability-save{border-top:1px solid var(--border-light);justify-content:center;align-items:center;gap:2px;width:100%;margin-top:6px;padding-top:6px;display:flex}.proficiency-toggle{cursor:pointer;color:var(--text-muted);transition:all var(--transition-fast);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:2px;padding:4px;display:flex}.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{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);user-select:none;-webkit-touch-callout:none;align-items:center;gap:4px;padding:4px 8px;display:flex}.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{color:var(--text-primary);font-weight:700}.skills-panel{padding:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.skills-panel .card-header{flex-shrink:0}.skills-panel .floating-roll-result{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);pointer-events:none;z-index:100;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards skillFloatUp;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.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{color:var(--text-primary);font-size:2rem;font-weight:700}.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);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.skills-panel .floating-roll-labels{align-items:center;gap:4px;display:flex}.skills-panel .floating-roll-adv{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{flex-direction:column;flex:1;gap:2px;min-height:0;margin-right:2px;padding-bottom:4px;padding-right:2px;display:flex;overflow:hidden auto}.skill-row{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);min-height:32px;display:flex}.skill-row.proficient{background:var(--success-light)}.skill-row.expertise{background:var(--expertise-bg,var(--crit-bg))}.skill-rollable{align-items:center;gap:var(--spacing-sm);cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);user-select:none;-webkit-touch-callout:none;flex:1;display:flex}.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{background:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;width:28px;min-width:28px;height:28px;color:var(--text-muted);transition:all var(--transition-fast);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;gap:1px;padding:0;display:flex;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);text-align:center;min-width:32px;color:var(--text-primary)}.skill-name{font-size:var(--font-sm);color:var(--text-primary);gap:var(--spacing-xs);flex-wrap:wrap;flex-grow:1;align-items:baseline;display:flex}.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{opacity:.6;margin-left:auto}.sort-toggle:hover{opacity:1}.sort-toggle.active{opacity:1;color:var(--accent-primary);background:var(--accent-light)}.weapons-panel{padding:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.weapons-panel .card-header{flex-shrink:0}.weapons-panel-body{flex:1;min-height:0;margin-right:1px;overflow:hidden auto}.weapons-panel .floating-roll-result{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);pointer-events:none;z-index:100;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards weaponFloatUpFade;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.weapons-panel .floating-roll-value{color:var(--text-primary);font-size:2rem;font-weight:700}.weapons-panel .floating-roll-label{font-size:var(--font-xs);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{align-items:center;gap:4px;display:flex}.weapons-panel .floating-roll-adv{font-size:var(--font-sm);border-radius:var(--radius-sm);padding:2px 8px;font-weight:700}.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{max-height:none;padding-top:var(--spacing-xs);flex-direction:column;gap:4px;margin-top:3px;padding:0;display:flex;overflow:visible}.weapons-list.scrollable{overflow:visible}.weapons-panel.expanded .weapons-list.scrollable{max-height:none}.weapons-panel.expanded{max-height:none;overflow:hidden}.weapon-card{padding:var(--spacing-sm);margin:0 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-minor-section{margin-top:var(--spacing-xs);border-top:1px solid var(--border-light);padding-top:var(--spacing-xs)}.weapon-minor-toggle{justify-content:space-between;align-items:center;gap:var(--spacing-sm);border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--bg-secondary);width:100%;color:var(--text-secondary);font-size:var(--font-sm);padding:8px 10px;display:flex}.weapon-minor-list{margin-top:var(--spacing-xs);flex-direction:column;gap:4px;display:flex}.weapon-header{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:center;display:flex}.weapon-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.weapon-actions{opacity:0;transition:opacity var(--transition-fast);gap:4px;display:flex}.minor-toggle-icon{transition:transform var(--transition-fast), color var(--transition-fast)}.minor-toggle-icon.active{color:var(--accent-primary);transform:rotate(180deg)}.weapon-card:hover .weapon-actions{opacity:1}@media (pointer:coarse){.weapon-actions{opacity:1}}.weapon-stats{gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);flex-wrap:nowrap;align-items:start;display:flex}.weapon-attack,.weapon-damage{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;display:flex}.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{font-size:var(--font-xs);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid var(--border-color);align-items:center;gap:3px;padding:4px 6px;display:flex}.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;width:12px;height:12px;margin:0}.nick-toggle:has(input:checked){color:var(--warning);background:rgba(var(--warning-rgb,234, 179, 8), .15);border-color:var(--warning)}.sneak-toggle{font-size:var(--font-xs);color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:var(--bg-primary);border:1px solid var(--border-color);align-items:center;gap:3px;padding:4px 6px;display:flex}.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;width:12px;height:12px;margin:0}.sneak-toggle:has(input:checked){background:rgba(var(--success-rgb,46, 204, 113), .12);border-color:var(--success)}.sneak-bonus{color:var(--success);background:rgba(var(--success-rgb,46, 204, 113), .06);border-radius:6px;margin-left:6px;font-weight:700}.sneak-menu{z-index:9999;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);width:auto;min-width:260px;max-width:calc(95vw - 24px);font-size:var(--font-sm);padding:6px;position:fixed}.sneak-menu-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding:4px 6px;display:flex}.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{max-height:320px;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.sneak-menu-item{cursor:pointer;border-radius:var(--radius-sm);justify-content:space-between;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.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{font-weight:600;font-size:var(--font-sm);color:var(--text-primary);display:block}.sneak-menu-cost{font-size:var(--font-xs);color:var(--text-muted);margin-left:8px}.sneak-menu-item-desc{color:var(--text-secondary);word-break:break-word;margin-top:4px;font-size:13px;line-height:1.3}.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{align-items:center;gap:6px;margin-left:8px;display:flex}.sneak-menu-footer{border-top:1px solid var(--border-color);font-size:var(--font-sm);color:var(--text-muted);justify-content:space-between;margin-top:6px;padding-top:6px;display:flex}.sneak-toggle .sneak-menu-btn,.sneak-menu-btn{border-radius:4px;justify-content:center;align-items:center;height:24px!important;min-height:24px!important;padding:4px 6px!important;line-height:1!important;display:inline-flex!important}.weapons-options{padding:3px 4px var(--spacing-xs) 4px;border-bottom:1px solid var(--border-color);background:var(--bg-secondary);z-index:4;justify-content:start;align-items:center;gap:8px;margin-left:4px;display:flex;position:sticky;top:0;overflow:auto}.weapons-options .weapons-options-left,.weapons-options .weapons-options-right{align-items:center;gap:8px;display:flex}.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{flex-wrap:wrap;gap:4px;display:flex}.property-tag{background:var(--bg-hover);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);align-items:center;gap:6px;padding:2px 6px;display:inline-flex}.weapon-form{padding:var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--accent-primary);border-radius:var(--radius-md);margin:0 0 var(--spacing-sm) 0;min-height:120px}.weapons-panel.expanded .weapon-form{min-height:220px}.weapon-search-shell{flex:1;min-width:0;position:relative}.weapon-search-shell input{width:100%}.weapon-suggestions{z-index:30;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.weapon-suggestion{text-align:left;background:0 0;border:none;flex-direction:column;gap:4px;width:100%;padding:8px 10px;display:flex}.weapon-suggestion.selected,.weapon-suggestion:hover{background:var(--bg-hover)}.weapon-suggestion-header{color:var(--text-primary);font-size:var(--font-sm);justify-content:space-between;align-items:center;gap:8px;display:flex}.weapon-suggestion-meta{flex-wrap:wrap;gap:4px;display:flex}.weapon-reference-row{margin-bottom:var(--spacing-sm);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.weapon-reference-row .item-helper-text{font-size:var(--font-xs);color:var(--text-muted)}.weapon-reference-row .item-helper-text.error{color:var(--danger)}.form-row{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.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)}.hint-text{font-size:var(--font-xs);color:var(--text-muted);align-self:center}.checkbox-label{align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:var(--font-sm);white-space:nowrap;display:flex}.checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px}.form-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm);display:flex}.custom-roll-input{align-items:center;gap:var(--spacing-sm);width:100%;min-width:0;display:flex}.custom-roll-input input{min-width:0}.custom-roll-preview{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-secondary);font-size:var(--font-xs);flex-shrink:0;padding:4px 8px;font-weight:600}.custom-expr{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.properties-autocomplete .autocomplete-container{width:100%;position:relative}.properties-autocomplete .chip-row{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:text;flex-wrap:wrap;gap:6px;padding:6px;display:flex}.properties-autocomplete input{background:0 0;border:none;outline:none;flex:1;min-width:160px;padding:4px 2px}.prop-chip{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-full);font-size:var(--font-xs);color:var(--text-primary);align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.prop-chip button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:10px;line-height:1}.prop-chip button:hover{color:var(--danger)}.suggestions-list{z-index:9999;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);max-height:260px;box-shadow:var(--shadow-lg);min-width:320px;margin-top:6px;padding:6px 0;list-style:none;position:fixed;overflow-y:auto}.suggestion-item{cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);flex-direction:column;align-items:flex-start;gap:6px;min-height:48px;padding:10px 14px;display:flex}.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-top:2px;margin-left:0;line-height:1.2;display:block}.ability-abbrev{font-size:var(--font-xs);color:var(--text-muted)}.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{background:var(--bg-hover);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);cursor:help;align-items:center;gap:6px;padding:2px 6px;display:inline-flex}.property-tag:hover{background:var(--accent-light);color:var(--text-primary)}.property-tag.compact{padding:1px 5px}.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-reference-details{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);flex-direction:column;gap:6px;display:flex}.weapon-reference-text{font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4}@media (width<=600px){.custom-roll-input{flex-direction:column;align-items:stretch}.custom-roll-preview{width:100%}}.weapon-sequence-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:12px;justify-content:center;align-items:center;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.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)}.syntax-modal-overlay{z-index:1000;padding:var(--spacing-md);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.syntax-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:600px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}.syntax-modal-header{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.syntax-modal-header h2{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);margin:0;display:flex}.syntax-tabs{gap:var(--spacing-xs);padding:0 var(--spacing-md);border-bottom:1px solid var(--border-color);display:flex}.syntax-tab{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;display:flex}.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);gap:var(--spacing-md);flex-direction:column;display:flex;overflow-y:auto}.syntax-section{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-sm)}.syntax-section h3{align-items:center;gap:var(--spacing-xs);font-size:var(--font-md);color:var(--accent-primary);margin:0 0 var(--spacing-sm) 0;display:flex}.syntax-description{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 var(--spacing-sm) 0}.syntax-examples{gap:var(--spacing-xs);flex-direction:column;display:flex}.syntax-example{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto auto;display:grid}.syntax-example code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 6px}.syntax-example span{font-size:var(--font-xs);color:var(--text-secondary)}.preview-hint{font-size:var(--font-sm);color:var(--text-muted)}.syntax-preview{background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:2px 6px;font-weight:600;color:var(--text-primary)!important}.syntax-variables{gap:var(--spacing-xs);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=500px){.syntax-variables{grid-template-columns:1fr}}.syntax-variable{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm);display:flex}.syntax-variable code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);border-radius:var(--radius-sm);padding:2px 4px}.syntax-variable span{font-size:var(--font-xs);color:var(--text-secondary)}.variable-value{margin-left:auto;font-weight:600;color:var(--success)!important}.syntax-options{gap:var(--spacing-xs);flex-direction:column;display:flex}.syntax-option{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-primary);border-radius:var(--radius-sm);display:flex}.syntax-option code{font-family:Consolas,Monaco,monospace;font-size:var(--font-xs);background:var(--warning-light);color:var(--warning);border-radius:var(--radius-sm);padding:2px 6px}.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{gap:var(--spacing-xs);align-items:center;display:flex}.playground-input-row input{font-family:Consolas,Monaco,monospace;font-size:var(--font-sm);flex:1}.playground-live-preview{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);display:flex}.preview-label{font-size:var(--font-sm);color:var(--text-secondary)}.playground-macro-btn{font-size:var(--font-sm);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);align-items:center;gap:4px;padding:4px 10px;font-weight:500;display:inline-flex}.playground-macro-btn:hover{background:var(--accent-primary);color:#fff}.playground-macro-btn svg{flex-shrink:0}.playground-result{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-family:Consolas,Monaco,monospace;font-weight:600;display:flex}.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);border-radius:var(--radius-sm);padding:2px 6px}.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{background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color);align-items:center;gap:2px;padding:2px 6px;display:inline-flex}.counter-preview .counter-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:16px;height:16px;color:var(--text-secondary);cursor:default;justify-content:center;align-items:center;padding:0;display:inline-flex}.counter-preview .counter-btn:disabled{opacity:.4}.counter-preview .counter-value{font-size:var(--font-xs);text-align:center;min-width:24px;font-weight:600}.counter-preview .counter-value.empty{color:var(--danger)}.counter-preview .counter-tag{white-space:nowrap;border-radius:2px;margin-left:2px;padding:1px 3px;font-size:8px;font-weight:700}.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{font-size:var(--font-xs);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);align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:inline-flex}.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}@media (width<=720px){.syntax-example,.counter-example,.dice-example{grid-template-columns:1fr;align-items:stretch}.playground-live-preview,.syntax-option{flex-direction:column;align-items:flex-start}}.macro-generator{border:2px solid var(--success)}.macro-generator h3{color:var(--success)}.macro-generator-form{gap:var(--spacing-sm);flex-direction:column;display:flex}.macro-gen-row{align-items:center;gap:var(--spacing-sm);display:flex}.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{align-items:center;gap:var(--spacing-xs);display:flex}.macro-gen-row .checkbox-label{align-items:center;gap:var(--spacing-xs);cursor:pointer;display:flex}.macro-gen-result{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);display:flex}.macro-gen-result code{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);flex:1}.syntax-help-btn{border:1px solid var(--border-color);border-radius:var(--radius-full);width:24px;height:24px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.syntax-help-btn:hover{background:var(--accent-light);border-color:var(--accent-primary);color:var(--accent-primary)}.hp-panel{flex-direction:column;gap:.5rem;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.hp-panel .card-header{flex-shrink:0}.hp-panel-content{flex-direction:column;flex:1;gap:.3rem;min-height:0;margin-top:0;padding:0 .2rem .2rem;display:flex;position:relative;overflow:hidden auto}.hp-panel.character-down{--card-border-color:var(--danger);box-shadow:0 0 10px var(--danger);animation:2s ease-in-out infinite characterDownPulse}@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{align-items:center;gap:.25rem;font-size:.9rem;display:flex}.hp-panel .floating-roll-result{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);pointer-events:none;z-index:100;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards hpFloatUpFade;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hp-panel .floating-roll-value{color:var(--text-primary);font-size:2rem;font-weight:700}.hp-panel .floating-roll-label{font-size:var(--font-xs);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{font-family:var(--font-medieval);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);justify-content:center;align-items:center;gap:.2rem;transition:all .15s;display:flex}.hp-conditions{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:8px;display:flex}.hp-conditions-label{font-size:var(--font-xs);color:var(--text-secondary);letter-spacing:.01em}.hp-conditions-chips{flex-wrap:wrap;gap:6px;display:flex}.hp-condition-chip{border-radius:var(--radius-full);background:var(--bg-primary);border:1px solid var(--border-light);font-size:var(--font-xs);color:var(--text-primary);align-items:center;gap:6px;padding:4px 8px;display:inline-flex}.hp-condition-name{white-space:nowrap}.hp-condition-remove{border:1px solid var(--border-light);background:var(--bg-tertiary);width:18px;height:18px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.hp-condition-remove:hover{color:var(--text-primary);border-color:var(--accent-primary)}.hp-main-display.hp-flash-damage{animation:1.2s ease-out hpFlashDamage}.hp-main-display.hp-flash-heal{animation:1.2s ease-out hpFlashHeal}@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{text-align:center;width:60px;color:var(--text-color);background:0 0;border:none;font-family:inherit;font-size:1.4rem;font-weight:700}.hp-current-large:focus{outline:2px solid var(--primary);border-radius:var(--border-radius)}.hp-separator-large{color:var(--text-muted);font-size:1.4rem}.hp-max-large{width:60px;color:var(--text-muted);text-align:center;font-size:1.4rem}.hp-max-large.editable{text-align:center;background:0 0;border:none;width:60px;font-family:inherit}.hp-max-large.editable:focus{outline:2px solid var(--primary);border-radius:var(--border-radius)}.hp-temp-row{justify-content:center;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.hp-temp-row label{color:var(--text-muted)}.temp-hp-input{text-align:center;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);width:50px;color:var(--text-color);padding:.25rem;font-size:.9rem}.quick-damage-row{flex-wrap:wrap;justify-content:center;gap:.25rem;display:flex}.quick-damage-btn{background:var(--danger);color:#fff;border-radius:var(--border-radius);cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:.125rem;padding:.2rem .4rem;font-size:.75rem;display:flex;position:relative;overflow:hidden}.quick-damage-btn:before{content:"";opacity:0;transition:opacity var(--transition-fast);background:#fff;position:absolute;inset:0}.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{background:var(--card-bg);border-radius:var(--border-radius);border:1px solid var(--card-border);flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.hit-dice-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.hit-dice-label{color:var(--text-muted);font-size:.75rem}.hit-dice-display{justify-content:center;align-items:center;gap:.25rem;font-size:.9rem;display:flex}.hit-dice-remaining-input{text-align:center;border:1px solid var(--card-border);border-radius:var(--border-radius);width:32px;color:var(--text-color);background:0 0;padding:.125rem;font-size:.9rem}.hit-die-type{color:var(--text-muted);margin-left:.25rem;font-size:.85rem}.hit-die-select{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--border-radius);color:var(--text-color);padding:.125rem;font-size:.85rem}.rest-buttons-row{gap:.5rem;display:flex}.short-rest-btn,.long-rest-btn{flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem;font-size:.8rem;display:flex}.short-rest-btn{border:1px solid var(--warning,#f59e0b);color:var(--warning,#f59e0b)}.short-rest-btn:hover{background:#f59e0b1a}.death-saves-section{background:rgba(var(--danger-rgb,220, 53, 69), .1);border-radius:var(--border-radius);border:1px solid var(--danger);flex-direction:column;gap:.5rem;padding:.5rem;display:flex}.death-saves-header{align-items:center;gap:.5rem;display:flex}.death-saves-label{color:var(--danger);flex:1;font-size:.75rem;font-weight:600}.death-saves-grid{flex-direction:column;gap:.25rem;display:flex}.death-save-row{align-items:center;gap:.25rem;font-size:.8rem;display:flex}.death-save-row span:first-child{text-align:center;width:1rem;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{cursor:pointer;background:0 0;border:2px solid;border-radius:50%;width:16px;height:16px;padding:0;transition:background-color .15s}.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{text-align:center;border:1px solid var(--card-border);border-radius:var(--border-radius);width:28px;color:var(--text-color);background:0 0;margin-left:auto;padding:.125rem;font-size:.8rem}.character-switcher{position:relative}.switcher-trigger{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);display:flex}.switcher-trigger .current-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;overflow:hidden}.switcher-trigger .rotated{transform:rotate(180deg)}.switcher-backdrop{z-index:99;position:fixed;inset:0}.switcher-dropdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:320px;max-height:400px;box-shadow:var(--shadow-lg);z-index:100;animation:.2s ease-out slideUp;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.dropdown-header{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:var(--font-sm);color:var(--text-secondary);justify-content:space-between;align-items:center;font-weight:600;display:flex}.header-actions{gap:4px;display:flex}.characters-list{max-height:250px;overflow-y:auto}.character-item{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-light);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.character-item:hover{background:var(--bg-hover)}.character-item.active{background:var(--accent-light);border-left:3px solid var(--accent-primary)}.character-info{align-items:center;gap:var(--spacing-sm);cursor:pointer;flex:1;min-width:0;display:flex}.char-avatar{border-radius:var(--radius-md);object-fit:cover;width:36px;height:36px}.char-details{flex-direction:column;min-width:0;display:flex}.char-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.char-meta{font-size:var(--font-xs);color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.character-actions{opacity:0;transition:opacity var(--transition-fast);gap:2px;display:flex}.character-item:hover .character-actions{opacity:1}@media (pointer:coarse){.character-actions{opacity:1}}.delete-confirm{align-items:center;gap:var(--spacing-sm);width:100%;font-size:var(--font-sm);color:var(--danger);display:flex}.create-form{gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--border-color);display:flex}.create-form input{flex:1}.create-btn{border-top:1px solid var(--border-color);border-radius:0;justify-content:center;width:100%}.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{z-index:199;backdrop-filter:blur(4px);background:#00000080;animation:.2s ease-out fadeIn;position:fixed;inset:0}.settings-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:var(--shadow-lg);z-index:200;animation:.3s cubic-bezier(.34,1.56,.64,1) modalSlideIn;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}@keyframes modalSlideIn{0%{opacity:0;transform:translate(-50%,-50%)scale(.9)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.settings-header{padding:var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.settings-header h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);margin:0;display:flex}.settings-content{padding:var(--spacing-md)}.settings-section{margin-bottom:var(--spacing-lg)}.section-label{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-weight:600;display:flex}.theme-options{gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=450px){.theme-options{grid-template-columns:repeat(2,1fr)}}.theme-btn{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);flex-direction:column;display:flex;position:relative;overflow:hidden}.theme-btn:before{content:"";background:var(--accent-primary);opacity:0;transition:opacity var(--transition-fast);position:absolute;inset:0}.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{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.color-option{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);border:3px solid #0000;position:relative}.color-option:after{content:"";border-radius:inherit;transition:all var(--transition-fast);border:2px solid #0000;position:absolute;inset:-4px}.color-option:hover{transform:scale(1.15)}.color-option:hover:after{opacity:.3;border-color:currentColor}.color-option.active{border-color:var(--text-primary);transform:scale(1.1);box-shadow:0 0 12px}.color-option:active{transform:scale(.95)}.font-options{gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);display:grid}.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{gap:var(--spacing-xs);margin-top:var(--spacing-sm);flex-direction:column;display:flex}.settings-toggle label{align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-primary);display:flex}.settings-toggle input[type=checkbox]{cursor:pointer;width:18px;height:18px;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{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;display:flex}.toggle-hint.weighted-info svg{color:var(--info);flex-shrink:0;margin-top:2px}.settings-content{max-height:70vh;overflow-y:auto}.offline-not-ready,.offline-ready{gap:var(--spacing-md);flex-direction:column;display:flex}.offline-description{font-size:var(--font-sm);color:var(--text-secondary);margin:0;line-height:1.5}.offline-enable-btn{justify-content:center;align-items:center;gap:var(--spacing-sm);width:100%;display:flex}.offline-status-row{gap:var(--spacing-xs);flex-direction:column;display:flex}.offline-status-item{align-items:center;gap:var(--spacing-sm);font-size:var(--font-sm);color:var(--text-primary);display:flex}.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{gap:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.offline-update-info{font-size:var(--font-sm);color:var(--text-secondary)}.offline-update-actions{gap:var(--spacing-sm);flex-direction:column;display:flex}.update-available-btn{background:var(--warning)!important;color:#fff!important;border-color:var(--warning)!important}.update-available-btn:hover{opacity:.9}.spinning{animation:1s linear infinite spin}.text-danger{color:var(--danger)!important}.inventory-with-currency{gap:var(--spacing-md);flex-direction:row;flex:1;align-items:stretch;width:100%;min-width:0;max-width:1200px;min-height:0;margin:0 auto;display:flex;overflow:hidden}.currency-sidebar{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);flex-direction:column;display:flex}@media (width<=520px){.inventory-with-currency{flex-direction:column;max-width:none;margin:0}.currency-sidebar{align-items:stretch;gap:var(--spacing-xs);flex-direction:column;width:100%;min-width:0}.currency-header{border-bottom:1px solid var(--border-light);padding-bottom:var(--spacing-xs)}.currency-total{white-space:nowrap}.currency-list{gap:var(--spacing-xs);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.currency-row{border-radius:var(--radius-sm);background:var(--bg-tertiary);border:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:6px;padding:4px 6px;display:flex}.currency-row .currency-label{text-align:left;min-width:22px;font-size:10px}.currency-row .currency-input{width:100%;font-size:var(--font-sm);padding:2px 4px}}@media (width<=360px){.currency-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.currency-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--border-light);display:flex}.currency-total{font-size:var(--font-xs);color:var(--crit-color);font-weight:700}.currency-list{gap:var(--spacing-xs);flex-direction:column;display:flex}.currency-row{align-items:center;gap:var(--spacing-xs);display:flex}.currency-row .currency-label{cursor:help;min-width:22px;font-size:10px;font-weight:700}.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{text-align:center;width:45px;font-size:var(--font-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);padding:2px 4px;font-weight:600}.currency-row .currency-input:focus{border-color:var(--accent-primary);outline:none}.currency-row .currency-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.currency-row .currency-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.currency-row .currency-input[type=number]{appearance:textfield}.inventory-panel{height:100%;min-height:0;padding:var(--spacing-sm);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden;container:inventory/inline-size}.inventory-toolbar{margin:5px;display:block;position:absolute;top:0;right:0}.inventory-toolbar-copy{flex-direction:column;gap:2px;display:flex}.inventory-title{font-size:var(--font-sm);color:var(--text-primary);font-weight:700}.inventory-stack{gap:var(--spacing-lg);flex-direction:column;display:flex}.add-item-form{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);flex-shrink:0;display:flex}.add-item-form input[type=text]{flex:1;min-width:0}.add-item-form-rich{margin-bottom:var(--spacing-sm);flex-direction:column}.add-item-row{gap:var(--spacing-xs);align-items:flex-start;display:flex}.item-search-shell{flex:1;align-items:center;min-width:0;display:flex;position:relative}.item-search-shell input{box-sizing:border-box;width:100%;min-height:38px;padding:.5rem .75rem .5rem 2.25rem;line-height:1.35}.item-search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.item-qty-input{width:64px;min-height:38px}[data-compact-mode=true] .inventory-panel .item-search-shell input{min-height:36px;line-height:1.3;padding:.45rem .65rem .45rem 2.25rem!important}[data-compact-mode=true] .inventory-panel .item-search-icon{left:8px}[data-compact-mode=true] .inventory-panel .item-qty-input{min-height:36px}.item-suggestions{z-index:25;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:250px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.item-suggestion{text-align:left;border:none;border-bottom:1px solid var(--border-light);background:0 0;width:100%;padding:8px 10px;display:block}.item-suggestion:last-child{border-bottom:none}.item-suggestion:hover,.item-suggestion.selected{background:var(--bg-hover)}.item-suggestion-header,.item-preview-header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.item-suggestion-name,.item-preview-name{color:var(--text-primary);font-weight:600}.item-suggestion-price,.item-preview-stats{font-size:var(--font-xs);color:var(--text-muted)}.item-suggestion-meta,.item-preview-meta{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.item-form-actions{align-items:center;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.attunement-toggle.compact{border-radius:var(--radius-full);background:var(--bg-primary);border:1px solid var(--border-light);padding:4px 8px}.reference-pill{border-radius:var(--radius-full);color:var(--warning,#f59e0b);font-size:var(--font-xs);background:#f59e0b1f;border:1px solid #f59e0b40;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}.item-helper-text{font-size:var(--font-xs);color:var(--text-muted)}.item-helper-text.error{color:var(--danger)}.item-preview-card{padding:var(--spacing-sm);border-radius:var(--radius-md);border:1px solid var(--border-light);background:linear-gradient(180deg, var(--bg-primary), color-mix(in srgb, var(--bg-primary) 80%, var(--accent-primary) 8%));box-shadow:0 8px 24px #0f172a1f}.item-preview-stats{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.item-preview-body{margin-top:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-secondary);line-height:1.4}.inventory-breadcrumbs{margin:var(--spacing-sm);flex-wrap:wrap;flex-shrink:0;gap:6px;display:flex}.inventory-crumb{border:1px solid var(--border-light);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-full);font-size:var(--font-xs);align-items:baseline;gap:4px;padding:4px 10px;display:inline-flex}.inventory-crumb-weight{opacity:.72;font-weight:500}.inventory-crumb.active{border-color:var(--accent-primary);color:var(--text-primary);background:color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary))}.inventory-crumb.drag-over{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 16%, var(--bg-primary));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 28%, transparent)}.item-properties-grid{gap:var(--spacing-xs);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.item-properties-grid textarea,.item-properties-grid input[type=text],.item-properties-grid input[type=number]{width:100%;min-width:0}.item-properties-grid textarea{resize:vertical}.attunement-toggle{font-size:var(--font-xs);color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.custom-properties-block{gap:var(--spacing-xs);flex-direction:column;grid-column:1/-1;display:flex}.custom-properties-header{justify-content:space-between;align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-secondary);display:flex}.custom-property-row{gap:var(--spacing-xs);grid-template-columns:1fr 1fr auto;display:grid}.inventory-list{grid-template-columns:1fr;gap:2px;min-width:0;max-width:100%;min-height:0;max-height:none;display:grid;overflow:hidden auto}@supports (container-type:inline-size){@container inventory (width>=740px){.inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@container inventory (width>=1120px){.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@container inventory (width<=420px){.inventory-item-main{align-items:flex-start}.item-actions{flex-wrap:wrap;justify-content:flex-end;max-width:110px}}}@supports not (container-type:inline-size){@media (width>=900px){.inventory-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1300px){.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr))}}}.inventory-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);transition:all var(--transition-fast);align-items:stretch;gap:var(--spacing-xs);border:1px solid #0000;flex-direction:column;min-width:0;padding:0 6px;display:flex;position:relative}[data-compact-mode=true] .inventory-panel .inventory-item{gap:6px}.inventory-item:before{content:"";background:var(--accent-primary);opacity:0;width:2px;transition:opacity var(--transition-fast);border-radius:var(--radius-sm) 0 0 var(--radius-sm);padding-right:6px;position:absolute;top:0;bottom:0;left:0}.inventory-item:hover{background:var(--bg-hover);border-color:var(--border-color)}.inventory-item:hover:before{opacity:1}.inventory-item.editing{background:var(--bg-primary);border-color:var(--accent-primary)}.inventory-item.editing:before{opacity:1}.inventory-item.expanded{background:var(--bg-primary);border-color:var(--border-color)}.inventory-item.dragging{opacity:.55}.inventory-item.drag-over{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 10%, var(--bg-primary));box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 24%, transparent)}.inventory-item.drag-over:before{opacity:1}.inventory-item.drag-over-before:after,.inventory-item.drag-over-after:after{content:"";background:var(--accent-primary);border-radius:var(--radius-full);height:2px;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 28%, transparent);position:absolute;left:6px;right:6px}.inventory-item.drag-over-before:after{top:-1px}.inventory-item.drag-over-after:after{bottom:-1px}@supports (container-type:inline-size){@container inventory (width>=740px){.inventory-item.drag-over-before:after,.inventory-item.drag-over-after:after{width:2px;height:auto;inset:6px auto}.inventory-item.drag-over-before:after{left:-1px}.inventory-item.drag-over-after:after{right:-1px}}}@supports not (container-type:inline-size){@media (width>=900px){.inventory-item.drag-over-before:after,.inventory-item.drag-over-after:after{width:2px;height:auto;inset:6px auto}.inventory-item.drag-over-before:after{left:-1px}.inventory-item.drag-over-after:after{right:-1px}}}.inventory-item-main{justify-content:space-between;align-items:center;gap:var(--spacing-xs);min-width:0;display:flex}.item-info{align-items:center;gap:var(--spacing-xs);cursor:pointer;min-width:0;transition:background-color var(--transition-fast);flex-wrap:wrap;flex:1;padding:2px 0;display:flex}[data-compact-mode=true] .inventory-panel .item-info{gap:6px;padding:3px 0}.item-info:hover{background-color:var(--bg-hover);border-radius:var(--radius-sm)}.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);white-space:normal;overflow-wrap:anywhere;word-break:break-word;-webkit-box-orient:vertical;min-width:0;display:-webkit-box;overflow:hidden}.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-badge{border-radius:var(--radius-full);background:var(--bg-secondary);border:1px solid var(--border-light);color:var(--text-secondary);align-items:center;gap:4px;padding:2px 6px;font-size:10px;display:inline-flex}.item-badge.mini{padding:1px 5px}.item-open-pack{flex:none}.item-actions{flex:none;align-items:center;gap:2px;display:flex}[data-compact-mode=true] .inventory-panel .item-actions{gap:4px}.quantity-btn{font-size:var(--font-md);font-weight:700}.item-edit{gap:var(--spacing-xs);width:100%;display:flex}.item-edit input[type=text]{flex:1}.item-detail-card{gap:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.item-detail-grid{font-size:var(--font-xs);color:var(--text-muted);flex-wrap:wrap;gap:8px;display:flex}.item-detail-grid.polished{gap:6px}.item-detail-pill{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-light);flex-direction:column;gap:2px;padding:6px 8px;display:inline-flex}.item-detail-pill strong{color:var(--text-muted);font-size:10px}.item-detail-pill span{color:var(--text-primary)}.item-detail-moves{flex-wrap:wrap;gap:6px;display:flex}.item-detail-description{font-size:var(--font-xs);color:var(--text-secondary);padding:var(--spacing-xs);line-height:1.4}.item-detail-description.rich{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-light);padding:10px}.item-detail-description.rich .xphb-paragraph{margin:0 0 8px}.item-detail-description.rich .xphb-paragraph:last-child{margin-bottom:0}.item-custom-properties{flex-wrap:wrap;gap:6px;display:flex}.item-custom-property{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-light);align-items:center;gap:4px;padding:2px 6px;font-size:10px;display:inline-flex}.item-custom-key{color:var(--text-primary);font-weight:700}.item-custom-value{color:var(--text-secondary)}.inventory-footer{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);margin-right:var(--spacing-md);border-top:1px solid var(--border-light);font-size:var(--font-xs);color:var(--text-muted);text-align:right;background:var(--bg-primary);border-radius:var(--radius-sm);z-index:0;user-select:none;position:absolute;bottom:4px;right:6px}.empty-state{padding:var(--spacing-lg);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;margin:4px;display:flex}@media (width<=720px){.add-item-row{flex-wrap:wrap}.item-qty-input{width:100%}.item-properties-grid,.custom-property-row{grid-template-columns:1fr}}.features-panel{padding:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.features-header{margin-bottom:var(--spacing-xs);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.features-header .card-title{font-size:var(--font-md);margin:0;font-weight:600}.features-header-actions{gap:var(--spacing-xs);display:flex}.counter-help{padding:2px var(--spacing-sm);margin-bottom:var(--spacing-xs);color:var(--text-muted);font-size:var(--font-xs);flex-shrink:0}.features-list{flex:1;min-height:0;padding-bottom:4px;padding-right:4px;overflow:hidden auto}.features-list.is-dragging{user-select:none}.feature-card{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:stretch;gap:0;margin-bottom:3px;display:flex;position:relative;overflow:hidden}.feature-card:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.feature-card.dragging{opacity:.4;cursor:grabbing;z-index:1000;transform:scale(.95)}.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:"";background:var(--accent-primary);height:2px;box-shadow:0 0 8px var(--accent-primary);position:absolute;top:-2px;left:0;right:0}.feature-card.new-spark{border-color:var(--accent-primary);position:relative;overflow:visible;box-shadow:0 0 0 3px #6366f10f,0 2px 10px #0206170a}.feature-spark-inline{width:22px;height:22px;color:var(--accent-primary);z-index:1;background:linear-gradient(#6366f114,#6366f105);border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin:0 8px;animation:.9s cubic-bezier(.2,.9,.2,1) both sparkPop,2s ease-in-out infinite sparkGlow;display:inline-flex;transform:translateY(0);box-shadow:0 0 10px #6366f11f}@keyframes sparkPop{0%{opacity:0;transform:translateY(-10px)scale(.8)}40%{opacity:1;transform:translateY(0)scale(1.05)}to{opacity:1;transform:translateY(-2px)scale(1)}}@keyframes sparkGlow{0%{box-shadow:0 0 #6366f124}50%{box-shadow:0 0 14px 6px #6366f10f}to{box-shadow:0 0 #6366f100}}.feature-card.editing{cursor:default;flex-direction:column}.feature-drag-handle{padding:var(--spacing-xs);color:var(--text-muted);cursor:grab;background:var(--bg-hover);border-right:1px solid var(--border-color);opacity:.6;transition:all var(--transition-fast);touch-action:none;user-select:none;-webkit-touch-callout:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.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{min-width:0;padding:var(--spacing-xs) var(--spacing-sm);flex:1}.feature-header{align-items:baseline;gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.feature-name{font-size:var(--font-sm);color:var(--text-primary);margin:0;font-weight:600}.feature-source{color:var(--accent-primary);background:var(--accent-light);border-radius:var(--radius-sm);padding:1px 4px;font-size:10px}.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{-webkit-line-clamp:2;line-clamp:2;white-space:pre-wrap;-webkit-box-orient:vertical;max-height:2.8em;display:-webkit-box;overflow:hidden}.feature-description.expanded .feature-description-content{white-space:pre-wrap;max-height:none}.feature-description-content{white-space:pre-wrap}.feature-description .expand-btn{font-size:var(--font-xs);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);align-items:center;gap:4px;margin-top:4px;padding:4px 10px;font-weight:500;display:inline-flex}.feature-description .expand-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.feature-counter{vertical-align:middle;align-items:center;gap:2px;margin:0 2px;display:inline-flex}.counter-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);width:18px;height:18px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0;display:inline-flex}.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);text-align:center;background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-color);min-width:28px;padding:0 4px}.counter-value.empty{color:var(--danger);border-color:var(--danger);background:#ef44441a}.counter-lr,.counter-sr{color:var(--success);border-radius:var(--radius-sm);cursor:help;background:#22c55e26;margin-left:2px;padding:1px 3px;font-size:9px;font-weight:700}.counter-sr{color:var(--info);background:#3b82f626}.feature-macro-btn{background:var(--accent-light);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);vertical-align:middle;align-items:center;gap:3px;margin:0 2px;padding:2px 6px;font-weight:600;display:inline-flex}.feature-macro-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.feature-macro-btn:active{transform:scale(.95)}.feature-actions{opacity:0;transition:opacity var(--transition-fast);padding-right:var(--spacing-xs);flex-shrink:0;align-items:center;gap:2px;display:flex}.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{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-muted);text-align:center;flex-direction:column;display:flex}.new-feature{cursor:default;flex-direction:column;min-height:200px;overflow:auto!important}.add-feature-mode-tabs{gap:var(--spacing-xs);padding:var(--spacing-xs);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-xs);display:flex}.add-feature-mode-tabs .mode-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:4px;display:flex}.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{gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.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{border-color:var(--accent-primary);outline:none}.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{border-color:var(--accent-primary);outline:none}.form-actions{justify-content:flex-end;gap:var(--spacing-xs);display:flex}.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)}.new-feature{padding:var(--spacing-sm);gap:var(--spacing-xs);background:linear-gradient(180deg, var(--bg-tertiary), var(--bg-secondary));box-shadow:var(--shadow-sm);border-left:3px solid #00000008}.add-feature-intro{padding:0 var(--spacing-sm);margin-bottom:var(--spacing-xs);flex-direction:column;gap:4px;display:flex}.add-feature-title{font-size:var(--font-sm);color:var(--text-primary);font-weight:700}.add-feature-subtitle{font-size:var(--font-xs);color:var(--text-muted)}.form-input.form-input-lg{padding:calc(var(--spacing-xs) + 2px);font-size:var(--font-md);font-weight:600}.add-feature-helpers{justify-content:space-between;align-items:center;gap:var(--spacing-xs);padding:0 var(--spacing-sm);margin-top:6px;display:flex}.helper-text{font-size:var(--font-xs);color:var(--text-muted)}.helper-actions{gap:var(--spacing-xs);display:flex}.add-feature-preview{margin-top:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);border:1px dashed var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary)}.preview-label{font-size:var(--font-xs);color:var(--text-muted);margin-bottom:6px;display:block}.preview-body{font-size:var(--font-sm);color:var(--text-primary)}.preview-empty{color:var(--text-muted);font-size:var(--font-sm)}.preview-inner{border-radius:var(--radius-sm);background:0 0;padding:4px 6px}.floating-roll-result{pointer-events:none;z-index:100;animation:2s ease-out forwards featuresFloatUpFade;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.floating-roll-value{color:var(--accent-primary);text-shadow:0 0 10px var(--accent-primary);font-size:2rem;font-weight:700}@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-sm);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.backstory-panel .card-header{flex-shrink:0}.backstory-sections{gap:var(--spacing-sm);flex-direction:column;flex:1;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.backstory-section{border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:all var(--transition-fast);flex-shrink:0;min-height:32px;overflow:hidden}.backstory-section:hover,.backstory-section.expanded{border-color:var(--accent-primary)}.section-header{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);cursor:pointer;color:var(--text-primary);text-align:left;transition:background var(--transition-fast);border:none;display:flex}.section-header:hover{background:var(--bg-hover)}.section-icon{color:var(--accent-primary);align-items:center;display:flex}.section-title{font-weight:500;font-size:var(--font-sm);flex:1}.char-count{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-secondary);border-radius:var(--radius-full);padding:2px 6px}.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:.2s ease-out slideDown}@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);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.6}.section-content textarea:focus{border-color:var(--accent-primary);outline:none}.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);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.notes-panel .card-header{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.notes-panel .card-header .syntax-help-trigger{margin-left:auto}.notes-panel .card-header .btn{opacity:.6;transition:opacity var(--transition-fast)}.notes-panel .card-header:hover .btn{opacity:1}.notes-count{background:var(--bg-tertiary);border-radius:var(--radius-full);font-size:var(--font-xs);color:var(--text-muted);padding:2px 8px;font-weight:600}.notes-search{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);display:flex}.notes-search svg{color:var(--text-muted);flex-shrink:0}.notes-search input{font-size:var(--font-sm);color:var(--text-primary);background:0 0;border:none;flex:1;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{gap:var(--spacing-xs);display:flex}.note-input-row input{flex:1}.notes-list{flex-direction:column;flex:1;gap:4px;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.note-card{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);display:flex;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:"";background:var(--accent-primary);border-radius:50%;width:6px;height:6px;position:absolute;top:2px;right:2px}.note-card.dragging{opacity:.4;cursor:grabbing;transform:scale(.95)}.note-card.drag-over{border-top:2px solid var(--accent-primary);box-shadow:0 -2px 8px #6366f14d}.note-drag-handle{color:var(--text-muted);cursor:grab;opacity:.4;transition:opacity var(--transition-fast);align-items:flex-start;padding-top:2px;display:flex}.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);word-break:break-word;white-space:pre-wrap;line-height:1.4}.note-content .btn{background:var(--accent-light);border:1px solid var(--accent-primary);color:var(--accent-primary);margin-top:4px;padding:2px 6px;font-size:11px}.note-content .btn:hover{background:var(--accent-primary);color:#fff}.note-link{color:var(--accent-primary);cursor:pointer;word-break:break-all;text-decoration:underline}.note-link:hover{color:var(--accent-secondary);text-decoration:none}.note-macro-btn{background:var(--accent-light);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);color:var(--accent-primary);font-size:var(--font-xs);cursor:pointer;transition:all var(--transition-fast);vertical-align:middle;align-items:center;gap:3px;margin:0 2px;padding:1px 5px;font-weight:600;display:inline-flex}.note-macro-btn:hover{background:var(--accent-primary);color:#fff;transform:scale(1.05)}.note-macro-btn:active{transform:scale(.95)}.note-footer{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.note-time{font-size:var(--font-xs);color:var(--text-muted)}.note-actions{gap:2px;display:flex}.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{gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.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{border-color:var(--accent-primary);outline:none}.note-edit-actions{justify-content:flex-end;align-items:center;gap:var(--spacing-xs);display:flex}.note-edit-actions .btn{align-items:center;gap:4px;display:flex}.keyboard-hint{color:var(--text-muted);margin-right:auto;font-size:10px;font-style:italic}@media (pointer:coarse){.pin-btn,.edit-btn,.delete-btn,.note-drag-handle{opacity:.6}}.whiteboard-preview{margin-top:var(--spacing-xs);border-radius:var(--radius-sm);border:1px solid var(--border-color);cursor:pointer;max-width:180px;display:block}.dice-roller{padding:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.dice-roller .card-header{flex-shrink:0}.dice-roller-content{padding-top:var(--spacing-sm);gap:var(--spacing-sm);flex-direction:column;flex:1;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.roll-name-input input{width:100%;font-size:var(--font-sm)}.dice-groups{align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.dice-group{align-items:center;gap:var(--spacing-xs);background:var(--bg-tertiary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);display:flex}.dice-operator{color:var(--text-muted);font-weight:600;font-size:var(--font-lg)}.dice-count{align-items:center;gap:2px;display:flex}.dice-count input{text-align:center;width:36px;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);padding:4px}.dice-count input::-webkit-inner-spin-button{-webkit-appearance:none}.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{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;padding:4px 8px}.delete-dice{margin-left:var(--spacing-xs);color:var(--text-muted)}.delete-dice:hover{color:var(--error)}.add-dice-row{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.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{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);display:flex}.modifier-label{font-size:var(--font-sm);color:var(--text-muted)}.modifier-input{text-align:center;width:60px;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);padding:4px}.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);color:var(--accent-primary);font-weight:600}.roll-actions{gap:var(--spacing-sm);flex-wrap:wrap;justify-content:center;display:flex}.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{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);flex-direction:column;animation:.5s cubic-bezier(.34,1.56,.64,1) diceResultPop;display:flex;position:relative;overflow:hidden}.roll-result:before{content:"";background:radial-gradient(circle at center, var(--accent-light) 0%, transparent 70%);opacity:.5;animation:2s ease-in-out infinite resultGlow;position:absolute;inset:0}@keyframes resultGlow{0%,to{opacity:.3}50%{opacity:.6}}@keyframes diceResultPop{0%{opacity:0;transform:scale(.5)rotate(-10deg)}50%{opacity:1;transform:scale(1.1)rotate(2deg)}70%{transform:scale(.95)rotate(-1deg)}to{opacity:1;transform:scale(1)rotate(0)}}.result-total{color:var(--accent-primary);text-shadow:0 2px 10px var(--accent-light);z-index:1;font-size:3rem;font-weight:700;line-height:1;position:relative}.result-breakdown{font-size:var(--font-sm);color:var(--text-muted);text-align:center;word-break:break-all;z-index:1;position:relative}.saved-rolls-section{border-top:1px solid var(--border-color);padding-top:var(--spacing-sm);margin-top:var(--spacing-xs)}.saved-rolls-actions{gap:var(--spacing-sm);justify-content:center;display:flex}.saved-rolls-actions .btn.active{background:var(--accent-light);color:var(--accent-primary)}.saved-rolls-list{margin-top:var(--spacing-sm);gap:var(--spacing-xs);max-height:200px;padding:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-sm);flex-direction:column;display:flex;overflow-y:auto}.saved-roll-item{align-items:center;gap:var(--spacing-xs);display:flex}.saved-roll-load{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);flex:1;justify-content:space-between;align-items:center;display:flex}.saved-roll-load:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.saved-roll-name{color:var(--text-primary);font-weight:500}.saved-roll-formula{font-size:var(--font-xs);color:var(--text-muted);font-family:Courier New,monospace}.spell-search{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.spell-search-loading,.spell-search-error{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:2rem;display:flex}.spell-search-loading .spinner{animation:1s linear infinite spin}.spell-search-header{border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);flex-shrink:0;padding:.75rem}.spell-search-input-wrapper{margin-bottom:.5rem;position:relative}.spell-search-input-wrapper .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.spell-search-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);width:100%;color:var(--text-primary);box-sizing:border-box;min-height:38px;padding:.5rem .75rem .5rem 2.5rem;font-size:.95rem;line-height:1.35}[data-compact-mode=true] .spell-search .spell-search-input{min-height:36px;line-height:1.3;padding:.45rem .7rem .45rem 2.5rem!important}.spell-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px rgba(var(--accent-rgb,139, 92, 246), .2);outline:none}.spell-search-filters{flex-wrap:wrap;gap:.5rem;display:flex}.filter-select{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);min-width:100px;color:var(--text-primary);flex:1;padding:.35rem .5rem;font-size:.8rem}.filter-select:focus{border-color:var(--accent-primary);outline:none}.spell-search-results{flex:1;min-height:0;overflow:hidden auto}.spell-search-empty,.spell-search-hint{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem;display:flex}.spell-search-item{border-bottom:1px solid var(--border-light);cursor:pointer;padding:.75rem;transition:background-color .15s}.spell-item-main{grid-template-columns:64px minmax(0,1fr);align-items:start;gap:.75rem;display:grid}.spell-item-content{min-width:0}.spell-item-image{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-color);background:var(--bg-tertiary);width:64px;height:64px}.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{justify-content:space-between;align-items:baseline;margin-bottom:.25rem;display:flex}.spell-item-name{color:var(--text-primary);font-weight:600}.spell-item-level{color:var(--text-muted);background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:.1rem .4rem;font-size:.75rem}.spell-item-meta{color:var(--text-muted);gap:.5rem;margin-bottom:.25rem;font-size:.8rem;display:flex}.spell-item-school{color:var(--accent-primary);font-style:italic}.spell-item-classes{opacity:.7}.spell-item-details{color:var(--text-muted);flex-wrap:wrap;gap:.5rem;font-size:.75rem;display:flex}.spell-detail{align-items:center;gap:.25rem;display:flex}.spell-tag-mini{border-radius:var(--radius-sm);padding:.1rem .3rem;font-size:.65rem;font-weight:600}.spell-tag-mini.conc{background:var(--warning-light,#ffc10726);color:var(--warning,#ffc107)}.spell-tag-mini.ritual{color:#9c27b0;background:#9c27b026}.spell-item-description{border-top:1px solid var(--border-light);margin-top:.5rem;padding-top:.5rem}.spell-description-text{color:var(--text-secondary);white-space:pre-wrap;margin:0 0 .5rem;font-size:.8rem;line-height:1.4}.spell-search-footer{border-top:1px solid var(--border-color);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.spell-search-help{color:var(--text-muted);font-size:.75rem}@media (width<=500px){.spell-search-filters{flex-direction:column}.filter-select{min-width:100%}.spell-item-main{grid-template-columns:52px minmax(0,1fr);gap:.55rem}.spell-item-image{width:52px;height:52px}.spell-search-help{display:none}}.spells-panel{flex-direction:column;gap:6px;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}.copy-notice{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary);font-size:var(--font-sm);margin:0 4px;padding:4px 8px}.spells-panel .floating-roll-result{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);pointer-events:none;z-index:150;flex-direction:column;align-items:center;gap:2px;animation:5s ease-out forwards spellsFloatUpFade;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spells-panel .floating-roll-value{color:var(--text-primary);font-size:2rem;font-weight:700}.spells-panel .floating-roll-labels{align-items:center;gap:4px;display:flex}.spells-panel .floating-roll-adv{font-size:var(--font-sm);border-radius:var(--radius-sm);padding:2px 8px;font-weight:700}.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);text-transform:uppercase;border-radius:var(--radius-sm);padding:2px 6px;font-weight:700}.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{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:4px;min-width:0;display:flex}.spell-stat{font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:2px;min-height:22px;padding:2px 6px;display:flex}.spell-stat.ability-stat{color:var(--accent-primary);background:var(--accent-light);font-weight:600}.spellcasting-ability-row{font-size:var(--font-xs);color:var(--text-secondary);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;display:flex}.spellcasting-ability-row label{font-size:var(--font-xs)}.spellcasting-ability-row select{font-size:var(--font-xs);padding:2px 6px}.ability-display{color:var(--accent-primary);background:var(--bg-tertiary);border-radius:var(--radius-sm);padding:2px 8px;font-weight:600}.pact-magic-toggle{font-size:var(--font-xs);cursor:pointer;background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:4px;margin-left:auto;padding:2px 6px;display:flex}.pact-magic-toggle input{width:12px;height:12px}.pact-magic-toggle svg{color:var(--warning)}.concentration-display{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-xs);flex-shrink:0;display:flex}.concentration-display svg,.concentration-display strong{color:var(--warning)}.spell-slots-section{background:var(--bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--border-color);flex-shrink:0;padding:5px 8px}.spell-slots-header{font-size:var(--font-xs);color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:4px;font-weight:600;display:flex}.spell-slots-header-right{align-items:center;gap:8px;display:inline-flex}.sorcery-points-strip{justify-content:flex-end;align-items:center;gap:5px;margin-bottom:0;display:flex}.sorcery-points-label{font-size:var(--font-xs);color:color-mix(in srgb, var(--accent-primary) 75%, var(--text-primary));font-weight:700}.sorcery-pips{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:2px;display:flex}.sorcery-pip{border:2px solid color-mix(in srgb, var(--accent-primary) 60%, var(--border-color));cursor:pointer;background:0 0;border-radius:50%;width:11px;height:11px;padding:0}.sorcery-pip.available{background:color-mix(in srgb, var(--accent-primary) 72%, white 8%);box-shadow:0 0 4px color-mix(in srgb, var(--accent-primary) 38%, transparent)}.sorcery-pip.used{opacity:.35}.sorcery-menu-anchor{position:relative}.sorcery-menu-btn{border-radius:4px;justify-content:center;align-items:center;height:24px!important;min-height:24px!important;padding:4px 6px!important;line-height:1!important;display:inline-flex!important}.sorcery-menu{z-index:50;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:var(--bg-tertiary);min-width:320px;box-shadow:var(--shadow-lg);padding:8px;position:absolute;top:calc(100% + 6px);right:0}.sorcery-menu-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;padding-bottom:6px;display:flex}.sorcery-menu-info{font-size:var(--font-xs);color:var(--text-muted)}.sorcery-menu-costs{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.sorcery-menu-section{margin-bottom:8px}.sorcery-menu-section-title{font-size:var(--font-xs);color:var(--text-secondary);margin-bottom:4px;font-weight:700}.sorcery-menu-list{flex-direction:column;gap:6px;max-height:220px;display:flex;overflow-y:auto}.sorcery-menu-list.additional{max-height:180px}.sorcery-menu-item{border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border-light);justify-content:space-between;gap:8px;padding:6px;display:flex}.sorcery-menu-item.hidden{opacity:.82}.sorcery-menu-item.disabled{opacity:.65}.sorcery-menu-item-left{flex:1;min-width:0}.sorcery-menu-item-right{align-items:center;gap:6px;display:inline-flex}.sorcery-menu-item-title{font-size:var(--font-sm);color:var(--text-primary);font-weight:600;display:block}.sorcery-menu-item-desc{font-size:var(--font-xs);color:var(--text-muted);margin-top:2px;line-height:1.3}.sorcery-menu-cost{font-size:var(--font-xs);color:var(--text-secondary);white-space:nowrap}.sorcery-menu-empty{font-size:var(--font-xs);color:var(--text-muted);padding:4px 2px}.sorcery-additional-toggle{justify-content:center;width:100%}.sorcery-menu-cost-row{font-size:var(--font-xs);color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.sorcery-cost-chip{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-secondary);min-width:28px;height:24px;color:var(--text-secondary);font-size:var(--font-xs);font-weight:600}.sorcery-cost-chip.selected{border-color:var(--accent-primary);background:color-mix(in srgb, var(--accent-primary) 12%, var(--bg-secondary));color:var(--accent-primary)}.slot-editor{gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);padding:var(--spacing-xs);background:var(--bg-secondary);border-radius:var(--radius-sm);grid-template-columns:repeat(9,1fr);display:grid}.slot-editor-row{flex-direction:column;align-items:center;gap:2px;display:flex}.slot-level{font-size:var(--font-xs);color:var(--text-muted);font-weight:600}.slot-max-input{text-align:center;width:28px;font-size:var(--font-xs);padding:2px}.spell-slots-grid{gap:var(--spacing-xs);flex-flow:wrap;align-items:center;display:flex}.spell-slots-grid.horizontal{flex-direction:row}.spell-slot-row{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);flex-direction:row;align-items:center;gap:3px;padding:3px 6px;display:flex}.slot-level-label{width:auto;min-width:14px;font-size:var(--font-xs);color:var(--accent-primary);text-align:center;font-weight:700}.slot-pips{gap:2px;display:flex}.slot-pip{border:2px solid var(--accent-primary);cursor:pointer;width:12px;height:12px;transition:all var(--transition-fast);background:0 0;border-radius:50%;padding:0}.slot-pip.available{background:var(--accent-primary);box-shadow:0 0 4px rgba(var(--accent-rgb,99, 102, 241), .4)}.slot-pip.used{opacity:.3;border-color:var(--text-muted)}.slot-pip:hover{transform:scale(1.15)}.no-slots-hint{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.add-spell-btn{align-self:flex-start;min-height:30px;padding:4px 8px}.spell-form{gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-direction:column;display:flex}.spell-form input,.spell-form select,.spell-form textarea{font-size:var(--font-sm)}.spell-form-row{gap:var(--spacing-xs);display:flex}.spell-form-row>input,.spell-form-row>select{flex:1;min-width:0}.spell-form-row input[list]{width:100%}.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);padding:0 2px;font-weight:600}.spell-form-row.checkboxes{gap:var(--spacing-md)}.spell-form-row.checkboxes label{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);cursor:pointer;display:flex}.spell-form-row.upcast-row{font-size:var(--font-sm);color:var(--text-secondary);align-items:center}.spell-form-row.upcast-row label{font-weight:500}.spell-form-actions{justify-content:flex-end;gap:var(--spacing-xs);display:flex}.spell-form-tag-preview{flex-wrap:wrap;gap:6px;margin-top:-2px;display:flex}.spell-form-mini-tag{font-size:var(--font-xxs);border-radius:var(--radius-full);border:1px solid var(--border-light);align-items:center;padding:2px 8px;display:inline-flex}.spell-form-mini-tag.damage{background:color-mix(in srgb, var(--danger) 14%, var(--bg-primary));color:color-mix(in srgb, var(--danger) 80%, var(--text-primary))}.spell-form-mini-tag.effect{background:color-mix(in srgb, var(--info) 14%, var(--bg-primary));color:color-mix(in srgb, var(--info) 85%, var(--text-primary))}.spells-list{flex-direction:column;flex:1;gap:6px;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.spell-level-group{flex-direction:column;gap:5px;display:flex}.spell-level-header{font-size:var(--font-sm);color:var(--accent-primary);align-items:center;gap:var(--spacing-xs);border-bottom:1px solid var(--border-light);margin:0;padding-bottom:4px;font-weight:600;display:flex}.spell-level-header.foldable{cursor:pointer;user-select:none;transition:color var(--transition-fast), background var(--transition-fast);border-radius:var(--radius-sm);margin:-4px -6px 0;padding:4px 6px}.spell-level-header.foldable:hover{color:var(--accent-secondary);background:var(--bg-hover)}.fold-icon{transition:transform var(--transition-fast);text-align:center;width:12px;font-size:10px;display:inline-block}.fold-icon.collapsed{transform:rotate(-90deg)}.spell-count{color:var(--text-secondary);font-weight:400;font-size:var(--font-xs);margin-left:auto}.slot-count{color:var(--text-muted);font-weight:400;font-size:var(--font-xs);margin-left:4px}.spell-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:all var(--transition-fast);padding:6px 8px}.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{align-items:flex-start;gap:6px;min-width:0;display:flex}.spell-card-image{border-radius:var(--radius-sm);object-fit:cover;border:1px solid var(--border-color);background:var(--bg-tertiary);flex-shrink:0;width:32px;height:32px}.prepared-toggle{border-radius:var(--radius-sm);border:1px solid var(--border-color);width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin-top:6px;padding:0;display:flex}.prepared-toggle.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.spell-name{font-weight:500;font-size:var(--font-sm);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.spell-title-area{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.spell-title-row{align-items:center;gap:4px;min-width:0;display:flex}.spell-image-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:8px;display:grid}.spell-image-tile{border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;min-height:40px;transition:border-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);background:0 0;outline:none;position:relative;overflow:visible}.spell-image-tile:hover,.spell-image-tile:focus-visible,.spell-image-tile.touch-open{border-color:var(--accent-primary);box-shadow:0 10px 24px color-mix(in srgb, var(--accent-primary) 20%, transparent);transform:translateY(-1px)}.spell-image-tile.disabled{opacity:.65;cursor:not-allowed}.spell-image-tile.concentrating{border-color:var(--warning)}.spell-image-media{border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-tertiary);overflow:hidden}.spell-image-art{object-fit:cover;width:100%;height:100%;min-height:40px;display:block}.spell-image-tooltip{border-radius:var(--radius-md);border:1px solid var(--border-color);background:color-mix(in srgb, var(--bg-primary) 92%, black 8%);width:min(360px,72vw);max-height:min(420px,100vh - 16px);box-shadow:var(--shadow-lg);color:var(--text-primary);z-index:4000;opacity:0;pointer-events:none;transition:opacity var(--transition-fast), transform var(--transition-fast);user-select:text;padding:10px;position:fixed;top:0;left:0;overflow:auto;transform:translateY(8px)}.spell-image-tooltip.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.spell-image-tooltip-header{font-size:var(--font-sm);align-items:center;gap:6px;display:flex}.spell-image-tooltip-header strong{font-size:var(--font-sm)}.spell-image-tooltip-meta{font-size:var(--font-xs);color:var(--text-secondary);margin:6px 0 0;line-height:1.35}.spell-image-tooltip-description{font-size:var(--font-xs);color:var(--text-secondary);white-space:normal;margin:6px 0 0;line-height:1.35}.spell-image-tooltip-description strong{color:var(--text-primary);font-weight:600}.spell-image-tooltip-actions{flex-wrap:wrap;justify-content:flex-start;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.spell-image-tooltip-actions .damage-buttons-group{flex-wrap:wrap;gap:6px;display:flex}.spell-image-tooltip-effect-note{margin-top:4px}.spell-image-slot-select{font-size:var(--font-xs)}.btn-hover-close{border:1px solid var(--border-color);justify-content:baseline!important;border-radius:var(--radius-sm)!important;min-width:26px!important;min-height:26px!important;padding:0 4px!important}.spell-tag{border-radius:var(--radius-sm);padding:1px 4px;font-size:9px;font-weight:600}.spell-tag.conc{background:var(--warning-light);color:var(--warning)}.spell-tag.conc.active{background:var(--warning);color:#fff;animation:2s infinite pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.spell-tag.ritual{background:var(--info-light);color:var(--info)}.concentrating-icon{color:var(--warning);animation:2s infinite pulse}.upcast-selector{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);display:flex}.upcast-selector select{font-size:var(--font-xs);padding:2px 6px}.spell-actions{flex-shrink:0;gap:2px;margin-left:2px;display:flex}.cast-btn:not(:disabled){color:var(--accent-primary)}.spell-card-body{flex-direction:column;gap:5px;padding-top:5px;display:flex}.spell-school{font-size:var(--font-xs);color:var(--text-muted);font-style:italic}.spell-roll-buttons{flex-wrap:wrap;gap:4px;display:flex}.spell-roll-btn{min-height:28px;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);align-items:center;gap:3px;padding:3px 7px;display:flex}.spell-roll-btn:disabled{opacity:.8;cursor:not-allowed;background:var(--danger-light)!important;border-color:var(--danger)!important;color:var(--text-primary)!important}.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{color:#fff;background:#dc2626;border-color:#dc2626}.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{color:#fff;background:#16a34a;border-color:#16a34a}.spell-roll-btn.ritual{border-color:var(--info);color:var(--info);background:0 0}.spell-roll-btn.ritual:hover{background:var(--info);color:#fff}.damage-type-small{opacity:.8;margin-left:2px;font-size:9px}.spell-save-info{font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:0;padding:0 8px;display:flex}.spell-description{font-size:var(--font-xs);color:var(--text-secondary);margin:0;line-height:1.4}.no-slot-hint{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px dashed var(--border-color);padding:4px 8px;font-style:italic}.damage-buttons-group{flex-wrap:wrap;gap:4px;display:flex}.damage-level{opacity:.7;margin-right:2px;font-weight:600}.spell-roll-btn.damage.critical{background:#ef44444d;animation:.3s ease-out crit-pulse;box-shadow:0 0 10px #ef444499}@keyframes crit-pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.spell-roll-btn{touch-action:manipulation;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)}.spell-add-modal-overlay{z-index:var(--z-modal,300);background:#00000073;justify-content:center;align-items:center;padding:clamp(8px,2vw,20px);display:flex;position:fixed;inset:0}.spell-add-modal{border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-primary);width:min(940px,100%);height:100%;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.spell-add-modal-header{justify-content:space-between;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);background:var(--bg-secondary);display:flex}.spell-add-modal-header h4{font-size:var(--font-md);color:var(--text-primary);margin:0}.spell-add-modal-body{min-height:0;padding:var(--spacing-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.add-spell-container{gap:var(--spacing-sm);flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.add-spell-mode-tabs{gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);padding-bottom:var(--spacing-xs);flex-wrap:wrap;flex-shrink:0;display:flex}.mode-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-sm);border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;border:1px solid #0000;align-items:center;gap:4px;display:flex}.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-primary);background:var(--bg-primary);font-weight:500}.spell-search-container{gap:var(--spacing-sm);flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.spell-add-modal .spell-search{flex:1;height:100%;min-height:0;display:flex;overflow-y:auto}.spell-add-modal .spell-form{max-height:100%;padding:var(--spacing-sm);background:var(--bg-secondary);border:1px solid var(--border-color);overflow-y:auto}.spell-add-modal-footer{justify-content:space-between;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color);display:flex}.spell-search-footer-actions{align-items:center;gap:var(--spacing-xs);display:inline-flex}@media (width<=720px){.spell-add-modal{border-radius:var(--radius-md);width:100%;max-height:96vh}.spell-add-modal-body{padding:var(--spacing-xs)}.spell-add-modal-header{padding:var(--spacing-xs) var(--spacing-sm)}.spell-add-modal-footer{flex-direction:column;align-items:stretch}.spell-search-footer-actions{flex-direction:column-reverse;display:flex}.spell-search-footer-actions .btn{width:100%}}.spell-meta-info{gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-muted);flex-wrap:wrap;display:flex}.spell-meta-item{background:var(--bg-tertiary);border-radius:var(--radius-sm);align-items:center;gap:3px;padding:2px 6px;display:flex}.spell-meta-item svg{opacity:.7}.spell-components{gap:4px;display:flex}.component-tag{border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--text-secondary);border:1px solid var(--border-light);padding:2px 5px;font-size:10px;font-weight:600}.component-tag.material{cursor:help}.component-tag.material:hover{background:var(--accent-light);border-color:var(--accent-primary)}.spell-list-options{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:4px;display:flex}.spell-list-options .spell-header-stats{margin-right:auto}.spell-toggles{gap:var(--spacing-xs);display:flex}.spell-view-toggle{margin-left:auto}.spell-toggle-search{align-items:center;gap:var(--spacing-xs);display:flex;overflow:hidden}.spell-toggle-search .spell-toggle-search-input{opacity:0;visibility:hidden;pointer-events:none;border-radius:var(--radius-sm);background:var(--bg-secondary);width:0;min-width:0;max-width:0;height:28px;color:var(--text-primary);font-size:var(--font-xs);box-sizing:border-box;transition:max-width var(--transition-fast), width var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), padding var(--transition-fast), border-width var(--transition-fast), border-color var(--transition-fast), visibility 0s linear var(--transition-fast);border:0 solid #0000;flex:0 0 0;padding:4px 0;transform:translate(6px)}.spell-toggle-search.open .spell-toggle-search-input{opacity:1;visibility:visible;pointer-events:auto;border-width:1px;border-color:var(--border-color);width:clamp(140px,22vw,240px);max-width:clamp(140px,22vw,240px);transition:max-width var(--transition-fast), width var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast), padding var(--transition-fast), border-width var(--transition-fast), border-color var(--transition-fast), visibility 0s linear;flex-basis:clamp(140px,22vw,240px);padding:4px 8px;transform:translate(0)}.spell-toggle-search .spell-toggle-search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-primary) 35%, transparent);outline:none}.toggle-btn.toggle-btn-icon{justify-content:center;width:28px;min-width:28px;padding:4px}.toggle-btn{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);align-items:center;gap:4px;padding:4px 8px;display:flex}.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{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:0;font-size:10px;display:flex}.spell-meta-row-compact{flex-wrap:nowrap;min-width:0;max-width:100%;line-height:1.2;overflow:hidden}.spell-meta-row .spell-school{color:var(--accent-primary);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:76px;font-style:italic;overflow:hidden}.spell-meta-row .spell-meta-item{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--bg-tertiary) 72%, transparent);text-overflow:ellipsis;white-space:nowrap;flex:0 auto;align-items:center;gap:2px;max-width:94px;min-height:16px;padding:1px 5px;display:inline-flex;overflow:hidden}.spell-meta-row .spell-meta-item svg{opacity:.6}.spell-extra-tags{flex-wrap:wrap;gap:4px;margin-bottom:0;display:flex}.spell-extra-tag{font-size:var(--font-xxs);border-radius:var(--radius-full);border:1px solid var(--border-light);align-items:center;gap:2px;padding:2px 8px;line-height:1.2;display:inline-flex}.spell-extra-tag.damage{background:color-mix(in srgb, var(--danger) 14%, var(--bg-primary));color:color-mix(in srgb, var(--danger) 80%, var(--text-primary))}.spell-extra-tag.effect{background:color-mix(in srgb, var(--info) 14%, var(--bg-primary));color:color-mix(in srgb, var(--info) 85%, var(--text-primary))}.spell-effect-note{font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:3px 7px}.spell-components-inline{flex:none;align-items:center;gap:2px;display:inline-flex}.spell-components-inline .comp-tag{background:var(--bg-tertiary);min-width:15px;min-height:15px;color:var(--text-secondary);text-align:center;border-radius:2px;padding:1px 3px;font-size:9px;font-weight:600}.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);cursor:help;font-weight:600}.spell-roll-btn.cast.prominent{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;padding:4px 10px;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.32;position:relative}.spell-description.collapsed .spell-description-content{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-height:2.64em;display:-webkit-box;overflow:hidden}.spell-description.expanded .spell-description-content{max-height:none}.spell-description-content strong{color:var(--text-primary);font-weight:600}.spell-description-content em{font-style:italic}.spell-description-content.expandable{cursor:pointer;touch-action:manipulation}.spell-description-content.expandable:hover{color:var(--text-primary)}.spell-description-content.expandable:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-primary) 32%, transparent);border-radius:2px;outline:none}@media (pointer:coarse){.spell-actions .btn-xs,.spell-roll-btn{min-height:34px}.spell-actions .btn-xs{min-width:34px}}.spell-save-info{font-size:var(--font-xs);color:var(--text-secondary);background:var(--bg-tertiary);border-radius:var(--radius-sm);border:1px solid var(--border-color);cursor:help;touch-action:manipulation;align-items:center;gap:3px;padding:3px 8px;display:flex}.spell-save-info:active{background:var(--bg-hover)}@media (width<=640px){.spell-card{padding:6px}.spell-card-header{align-items:flex-start}.spell-actions .btn-xs{min-width:32px;min-height:32px}.spell-name{white-space:normal}.spell-meta-row .spell-meta-item{max-width:108px}.spell-roll-btn{min-height:32px}.spell-image-grid{grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px}.spell-image-art,.spell-image-tile{min-height:36px}.spell-image-tooltip{width:min(320px,86vw);max-height:min(360px,100vh - 12px);padding:6px}.spell-image-tooltip-meta,.spell-image-tooltip-description{font-size:var(--font-xxs)}}.conditions-panel{gap:var(--spacing-sm);height:100%;min-height:0;padding:var(--spacing-sm);flex-direction:column;display:flex;overflow:hidden}.conditions-panel .card-header{flex-shrink:0}.conditions-panel .card-title{align-items:center;gap:var(--spacing-xs);display:flex}.active-count{background:var(--warning);color:#fff;min-width:18px;height:18px;font-size:var(--font-xs);border-radius:var(--radius-full);justify-content:center;align-items:center;padding:0 4px;font-weight:600;display:inline-flex}.active-conditions{gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--warning-light);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.active-condition-chip{background:var(--warning);color:#fff;font-size:var(--font-xs);border-radius:var(--radius-full);align-items:center;gap:4px;padding:3px 8px;font-weight:500;display:flex}.condition-chip-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.condition-rounds{opacity:.8;font-size:9px}.chip-remove{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;display:flex}.chip-remove:hover{background:#fff6}.conditions-grid{flex:1;grid-template-columns:repeat(3,1fr);align-content:start;gap:2px;min-height:0;padding-right:4px;display:grid;overflow:hidden auto}@media (width<=600px){.conditions-grid{grid-template-columns:repeat(2,1fr)}}.condition-item{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);padding:4px 8px}.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{align-items:center;gap:4px;padding:2px 4px;display:flex}.duration-controls{align-items:center;gap:2px;display:flex}.duration-value{font-size:var(--font-xs);text-align:center;min-width:16px;font-weight:600}.condition-controls .has-notes{color:var(--accent-primary)}.condition-notes-editor{background:var(--bg-secondary);border-radius:var(--radius-sm);flex-direction:column;gap:4px;padding:4px;display:flex}.condition-notes-editor textarea{font-size:var(--font-xs);resize:none}.notes-actions{justify-content:flex-end;gap:4px;display:flex}.condition-notes-display{font-size:var(--font-xs);color:var(--text-muted);margin:0;padding:2px 4px;line-height:1.3}.custom-conditions{gap:var(--spacing-xs);padding-top:var(--spacing-sm);border-top:1px solid var(--border-light);flex-direction:column;display:flex}.custom-conditions h4{font-size:var(--font-xs);color:var(--text-muted);margin:0}.condition-item.custom{align-items:center;gap:var(--spacing-xs);flex-direction:row}.condition-item.custom .condition-toggle{flex:1}.add-condition-form{gap:var(--spacing-xs);align-items:center;display:flex}.add-condition-form input{font-size:var(--font-sm);flex:1;padding:4px 8px}.add-condition-btn{align-self:flex-start}.workspace-tabs{flex-direction:column;height:100%;min-height:0;padding:0;display:flex;overflow:hidden}.workspace-tabs-header{padding:var(--spacing-sm);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.workspace-tabs-bar{flex-wrap:wrap;gap:6px;display:flex}.workspace-tab-wrapper{display:inline-flex;position:relative}.workspace-tab{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);align-items:center;gap:6px;padding:6px 10px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.workspace-tab:after{content:"";background:var(--accent-primary);width:0;height:2px;transition:all var(--transition-normal);position:absolute;bottom:0;left:50%;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{background:var(--bg-primary);border:1px solid var(--border-color);width:16px;height:16px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);opacity:0;z-index:1;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:-4px;right:-4px}.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{min-height:0;padding:var(--spacing-xs);flex-direction:column;flex:1;display:flex;overflow:hidden}.workspace-tabs-content>.card,.workspace-tabs-content>div:not(.inventory-with-currency){flex-direction:column;flex:1;min-height:0;margin:0;display:flex;overflow:hidden}.workspace-tabs-content>.inventory-with-currency{flex:1;min-height:0;margin:0;overflow:hidden}.workspace-extras{gap:var(--spacing-lg);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}@media (width<=700px){.workspace-tabs{height:auto;min-height:450px;overflow:visible}.workspace-tabs-content,.workspace-tabs-content>.card,.workspace-tabs-content>div:not(.inventory-with-currency),.workspace-tabs-content>.inventory-with-currency{overflow:visible}}.roll-history{padding:var(--spacing-sm);flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.roll-history .card-header{flex-shrink:0}.rolls-list{scroll-behavior:smooth;flex-direction:column;flex:1;gap:4px;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.roll-entry{padding:6px var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:background var(--transition-fast);flex-direction:column;gap:3px;margin-left:4px;margin-right:0;animation:.2s ease-out slideUp;display:flex}.roll-entry.newest{background:var(--bg-hover);animation:.4s ease-out newestRoll}@keyframes newestRoll{0%{opacity:0;box-shadow:0 0 0 0 var(--accent-primary);transform:scale(.95)}50%{box-shadow:0 0 8px 2px var(--accent-primary)}to{opacity:1;transform:scale(1);box-shadow:0 0 #0000}}.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{align-items:center;gap:var(--spacing-xs);width:100%;display:flex}.roll-variant-controls{flex-shrink:0;align-items:center;gap:1px;margin-left:auto;display:inline-flex}.roll-variant-controls+.roll-tag,.roll-variant-controls+.roll-tag+.roll-tag{margin-left:0}.roll-variant-btn{border-radius:var(--radius-sm);opacity:.5;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;width:18px;min-width:18px;height:18px;min-height:18px;padding:0;display:inline-flex}.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{color:var(--accent-primary);flex-shrink:0;align-items:center;display:flex}.roll-label{font-size:var(--font-xs);color:var(--text-primary);white-space:wrap;flex:1;font-weight:500}.roll-tag{border-radius:var(--radius-sm);padding:1px 4px;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{opacity:.75;flex-wrap:wrap;gap:4px;margin-top:2px;font-size:9px;display:flex}.adv-dis-reason{border-radius:var(--radius-sm);padding:1px 4px;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{align-items:center;gap:var(--spacing-xs);font-family:Courier New,monospace;display:flex}.roll-effects{font-size:var(--font-xxs);flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.roll-effect-chip{background:var(--bg-secondary);border:1px dashed var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);padding:2px 6px}.roll-dice{font-size:var(--font-xs);color:var(--text-secondary)}.roll-modifier{font-size:var(--font-xs);color:var(--text-muted);align-items:center;gap:2px;display:flex}.modifier-source{color:var(--text-muted);opacity:.8}.roll-effects-inline{font-size:var(--font-xs);gap:4px;display:flex}.effect-inline{color:var(--accent-primary);font-weight:500}.roll-total{font-size:var(--font-md);color:var(--text-primary);font-weight:700}.crit-badge,.fail-badge{border-radius:var(--radius-sm);font-family:var(--font-medieval,inherit);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:4px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:700;display:flex}.crit-badge{color:#1a1a2e;text-shadow:0 1px #ffffff4d;background:linear-gradient(135deg,gold 0%,#daa520 100%);box-shadow:0 0 8px #ffd70080}.fail-badge{color:#fff;background:linear-gradient(135deg,#dc3545 0%,#8b0000 100%);box-shadow:0 0 8px #dc354580}.roll-damage-buttons{gap:4px;margin-left:auto;display:flex}.roll-damage-btn{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;justify-content:center;align-items:center;gap:2px;padding:3px 8px;display:flex;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:1s ease-in-out infinite critPulse}.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{background:rgba(var(--success-rgb,46, 204, 113), .08);color:var(--success);border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700;display:inline-block}@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{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);margin-top:4px}.linked-damage-box.critical{background:var(--crit-bg)}.linked-damage-header{align-items:center;gap:var(--spacing-xs);margin-bottom:2px;display:flex}.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{color:var(--text-secondary);font-size:10px}.linked-damage-header .crit-badge{margin-left:auto;padding:1px 4px;font-size:9px}.linked-damage-result{align-items:center;gap:var(--spacing-xs);font-family:Courier New,monospace;display:flex}.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{padding:var(--spacing-lg);color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.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:#7c3aed33;--success:#22c55e;--success-light:#22c55e33;--warning:#f59e0b;--warning-light:#f59e0b33;--danger:#ef4444;--danger-light:#ef444433;--info:#3b82f6;--info-light:#3b82f633;--crit-color:#fbbf24;--crit-bg:#fbbf2426;--crit-text:#fbbf24;--fail-color:#f87171;--fail-bg:#f8717126;--fail-text:#f87171;--expertise-color:#fbbf24;--expertise-bg:#fbbf241f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 15px #00000080;--shadow-glow:0 0 20px #7c3aed4d;--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:#fff;--bg-tertiary:#e8e8f0;--bg-card:#fff;--bg-hover:#f0f0f8;--text-primary:#1a1a2e;--text-secondary:#4a4a60;--text-muted:#8a8aa0;--border-color:#d0d0e0;--border-light:#e0e0f0;--shadow-sm:0 1px 2px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #00000026;--shadow-glow:0 0 20px #7c3aed33;--crit-color:#b45309;--crit-bg:#ffedbe;--crit-text:#92400e;--fail-color:#dc2626;--fail-bg:#fecaca;--fail-text:#991b1b;--expertise-color:#b45309;--expertise-bg:#fbbf2433}[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-width:32px;min-height:32px;padding:var(--spacing-xs) var(--spacing-sm)}[data-compact-mode=true] .btn-sm{min-width:24px;min-height: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{-webkit-tap-highlight-color:transparent;font-size:16px}body{background:var(--bg-primary);color:var(--text-primary);font-family:Segoe UI,system-ui,-apple-system,sans-serif}@media (width<=1000px){body{overflow-y:auto}}#root{flex-direction:column;display:flex}::-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{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::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);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-secondary)}button{font-family:inherit;font-size:var(--font-md);cursor:pointer;color:inherit;background:0 0;border:none}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);background:var(--bg-secondary);outline:none}input:disabled,textarea:disabled,select:disabled{opacity:.6;cursor:not-allowed}input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:.7}input[type=number]{appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}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{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-lg);color:var(--text-primary);min-height:32px;padding-top:4px;padding-left:4px;font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-fast);min-width:44px;min-height:44px;font-weight:500;display:inline-flex;position:relative;overflow:hidden;transform:translateZ(0)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);pointer-events:none;background:currentColor;position:absolute;inset:0}.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{color:var(--text-secondary);background:0 0}.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{font-size:var(--font-xs);border-radius:var(--radius-sm);min-width:28px;min-height:28px;padding:6px}.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-width:36px;min-height:36px}.badge{padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-xs);background:var(--accent-light);color:var(--accent-primary);align-items:center;font-weight:600;display:inline-flex}.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:"";border:5px solid #0000;border-top-color:var(--bg-tertiary);opacity:0;pointer-events:none;transition:all var(--transition-fast);z-index:var(--z-tooltip);position:absolute;bottom:calc(100% - 4px);left:50%;transform:translate(-50%)translateY(4px)}.tooltip:after{content:attr(data-tooltip);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);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)translateY(4px)}.tooltip:hover:before,.tooltip:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.grid{gap:var(--spacing-md);display:grid}.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 (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 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%{opacity:0;transform:scale(.3)rotate(-180deg)}50%{opacity:1;transform:scale(1.15)rotate(10deg)}70%{transform:scale(.9)rotate(-5deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes diceRollSpin{0%{transform:rotateX(0)rotateY(0)}to{transform:rotateX(720deg)rotateY(720deg)}}.dice-animation-container{z-index:1000;pointer-events:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.dice-animation{text-shadow:0 4px 20px #00000080;font-size:4rem;animation:.6s cubic-bezier(.175,.885,.32,1.275) diceBounce}.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:.3s ease-in-out shake}.animate-pulse{animation:.5s ease-in-out pulse}.animate-roll{animation:.5s ease-out rollDice}.roll-critical{animation:.5s ease-in-out pulse;background:var(--crit-bg)!important;border-color:var(--crit-color)!important}.roll-fail{animation:.3s ease-in-out shake;background:var(--fail-bg)!important;border-color:var(--fail-color)!important}@media print{body{color:#000;background:#fff}.no-print{display:none!important}}*{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{border-radius:var(--radius-full);background:0 0}::-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{padding:var(--spacing-xl);color:var(--text-muted);text-align:center;background:radial-gradient(ellipse at center, var(--accent-light) 0%, transparent 70%);border-radius:var(--radius-lg);border:2px dashed var(--border-light);min-height:120px;transition:all var(--transition-normal);flex-direction:column;justify-content:center;align-items:center;display:flex}.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{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:40px;height:40px;animation:.8s cubic-bezier(.5,.1,.5,.9) infinite spin}.loading-spinner-sm{border-width:2px;width:16px;height:16px}.btn.loading{pointer-events:none;opacity:.7}.btn.loading:before{content:"";width:16px;height:16px;margin-right:var(--spacing-xs);border:2px solid;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite spin}input[type=checkbox]{appearance:none;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-tertiary);cursor:pointer;width:18px;min-width:18px;height:18px;min-height:18px;transition:all var(--transition-fast);padding:0;position:relative}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:"";border:2px solid #fff;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;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{appearance:textfield}textarea{resize:vertical;min-height:60px;line-height:1.5}.card-title{align-items:center;gap:var(--spacing-xs);display:flex}.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%{opacity:.5;transform:scale(0)}to{opacity:0;transform:scale(2)}}.ripple-container{position:relative;overflow:hidden}.ripple{pointer-events:none;background:currentColor;border-radius:50%;animation:.6s ease-out forwards ripple;position:absolute}@keyframes successPop{0%{opacity:0;transform:scale(.8)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(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:.4s ease-in-out errorShake}.gradient-overlay{background:linear-gradient(#0000 0%,#00000005 100%)}.status-dot{background:var(--text-muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot.active{background:var(--success);box-shadow:0 0 8px var(--success)}.status-dot.warning{background:var(--warning);animation:2s ease-in-out infinite pulse}.status-dot.error{background:var(--danger)}.tag{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);display:inline-flex}.tag:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.tag.removable{padding-right:var(--spacing-xs);cursor:pointer}.tag .tag-remove{background:var(--bg-hover);width:14px;height:14px;color:var(--text-muted);transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.tag .tag-remove:hover{background:var(--danger);color:#fff}.divider{background:var(--border-light);height:1px;margin:var(--spacing-md) 0}.divider-vertical{background:var(--border-light);width:1px;height:100%;margin:0 var(--spacing-md)}.skeleton{background:linear-gradient(90deg, var(--bg-tertiary) 0%, var(--bg-hover) 50%, var(--bg-tertiary) 100%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-loading}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.notification-dot{background:var(--danger);border:2px solid var(--bg-card);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}@keyframes attention-pulse{0%,to{box-shadow:0 0 0 0 var(--accent-light)}50%{box-shadow:0 0 0 8px #0000}}.attention{animation:2s ease-in-out infinite attention-pulse}[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:#c9a22733;--parchment-light:#f4e4bc;--parchment-dark:#d4c4a0;--ink-color:#2a1f15;--ink-faded:#4a3f30;--success:#5a8a4a;--success-light:#5a8a4a33;--warning:#c9a227;--warning-light:#c9a22733;--danger:#8b3a3a;--danger-light:#8b3a3a33;--info:#4a6a8a;--info-light:#4a6a8a33;--crit-color:#daa520;--crit-bg:#daa52033;--crit-text:#daa520;--fail-color:#cd5c5c;--fail-bg:#cd5c5c33;--fail-text:#cd5c5c;--expertise-color:#daa520;--expertise-bg:#daa52026;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 8px #00000080;--shadow-lg:0 10px 20px #0009;--shadow-glow:0 0 15px #c9a22766;--shadow-inset:inset 0 2px 4px #0000004d}[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:sienna;--accent-light:#8b451326;--shadow-sm:0 1px 2px #00000026;--shadow-md:0 4px 6px #00000026;--shadow-lg:0 10px 15px #0003;--shadow-glow:0 0 15px #8b45134d;--crit-color:#5a440e;--crit-bg:#ffe8ad;--crit-text:#5a440e;--fail-color:#991b1b;--fail-bg:#ffbebe;--fail-text:#991b1b;--expertise-color:#92400e;--expertise-bg:#fbbf2440}[data-theme=parchment] .card,[data-theme=parchment-light] .card{background:linear-gradient(135deg, #00000005 0%, transparent 50%, #0000000a 100%), var(--bg-card);border:2px solid var(--border-color);box-shadow:var(--shadow-md), var(--shadow-inset);border-radius:2px;position:relative}[data-theme=parchment] .card:before,[data-theme=parchment-light] .card:before{content:"";border:1px solid var(--border-light);pointer-events:none;opacity:.5;position:absolute;inset:4px}[data-theme=parchment] .card:after,[data-theme=parchment-light] .card:after{content:"⚜";color:var(--accent-primary);background:var(--bg-card);border-radius:20%;padding:0 3px;font-size:15px;position:absolute;top:-6px;left:50%;transform:translate(-50%);overflow:visible!important}[data-theme=parchment-light][data-compact-mode=true]{--spacing-xs:.2rem;--spacing-sm:.3rem;--spacing-md:.6rem}[data-theme=parchment-light][data-compact-mode=true] .card{padding:var(--spacing-sm)}[data-theme=parchment-light][data-compact-mode=true] .card-header{margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs)}[data-theme=parchment-light][data-compact-mode=true] .card:after{content:none}[data-theme=parchment] .card-title,[data-theme=parchment-light] .card-title{letter-spacing:1px;text-transform:uppercase;font-family:Cinzel,Times New Roman,serif;font-size:var(--font-md);color:var(--accent-primary);text-shadow:1px 1px #0003}[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{letter-spacing:2px;font-family:Cinzel,Times New Roman,serif}[data-theme=parchment] .btn-primary,[data-theme=parchment-light] .btn-primary{background:linear-gradient(180deg, var(--accent-primary) 0%, #a08020 100%);text-shadow:1px 1px #0000004d;border:1px solid #806010}[data-theme=parchment] .btn-primary:hover,[data-theme=parchment-light] .btn-primary:hover{background:linear-gradient(#d9b237 0%,#b09030 100%)}[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, #ffffff08 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{color:var(--accent-primary);font-family:Cinzel,serif}[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)}[data-theme=parchment] .roll-entry.critical,[data-theme=parchment-light] .roll-entry.critical{background:var(--crit-bg)}[data-theme=parchment] .roll-entry.fail,[data-theme=parchment-light] .roll-entry.fail{background:var(--fail-bg)}[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{color:var(--accent-primary);text-shadow:1px 1px 2px #00000080;font-family:Cinzel,serif}[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{background:var(--border-color)}[data-theme=parchment-light] ::-webkit-scrollbar-thumb{background:var(--border-color)}[data-theme=parchment] ::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}[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);box-shadow:var(--shadow-md);border-radius:2px}[data-theme=parchment] .currency-label,[data-theme=parchment-light] .currency-label{font-family:Cinzel,serif}[data-theme=parchment-light] .inspiration-box{color:#5a3010;background:#8b451326;border-color:#8b4513}[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{flex-direction:column;height:100vh;max-height:100vh;display:flex;overflow:hidden}.top-bar{padding:var(--spacing-sm) var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.top-bar-left{align-items:center;gap:var(--spacing-md);display:flex}.top-bar-right{align-items:center;gap:var(--spacing-sm);display:flex}.header-toggle-btn{justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex}.topbar-expand-btn{top:var(--spacing-xs);right:var(--spacing-md);z-index:100;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;opacity:.4;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.topbar-expand-btn:hover{opacity:1;background:var(--bg-hover);color:var(--accent-primary)}.app-logo{align-items:center;gap:var(--spacing-sm);display:flex}.logo-icon{font-size:var(--font-xl)}.logo-text{font-size:var(--font-lg);color:var(--accent-primary);font-weight:700}.main-content{min-height:0;padding-top:var(--spacing-sm);padding-left:var(--spacing-sm);padding-right:var(--spacing-sm);background:var(--bg-primary);flex:1;overflow:auto}.content-grid{gap:var(--spacing-sm);grid-template-columns:420px 1fr;max-width:1800px;height:100%;margin:0 auto;display:grid}.content-grid.sheet-layout{align-items:stretch;gap:var(--spacing-sm);grid-template:"skills abilities weapons rolllog"minmax(340px,340px)"skills main main hp"minmax(300px,1fr)/minmax(180px,340px) minmax(180px,1fr) minmax(240px,420px) minmax(180px,280px);height:100%;max-height:100%}.sheet-abilities{flex-direction:column;grid-area:abilities;max-height:340px;display:flex;overflow:hidden}.sheet-abilities>.card{min-height:0;padding:var(--spacing-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.sheet-weapons{flex-direction:column;grid-area:weapons;max-height:340px;display:flex;overflow:hidden}.sheet-weapons>.card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sheet-skills{gap:var(--spacing-md);flex-direction:column;grid-area:skills;min-height:0;display:flex;overflow:hidden}.sheet-skills>.card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sheet-main{gap:var(--spacing-md);flex-direction:column;grid-area:main;min-height:0;display:flex;overflow:hidden}.sheet-main>.card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.sheet-hp{flex-direction:column;grid-area:hp;max-height:360px;display:flex;overflow:hidden}.sheet-hp>.card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.sheet-rolllog{flex-direction:column;grid-area:rolllog;max-height:340px;display:flex;overflow:hidden}.sheet-rolllog>.card{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.xphb-inline-tag{border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);align-items:center;gap:.2rem;padding:0 .3rem;display:inline-flex}.xphb-inline-roll{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.xphb-inline-dc{color:var(--danger);background:#dc26261a}.xphb-paragraph{margin:0}@media (width<=1600px){.content-grid.sheet-layout{grid-template-columns:minmax(180px,360px) minmax(180px,1fr) minmax(220px,300px) minmax(180px,260px)}}@media (width<=1200px){.ability-name{display:none}}@media (width<=1100px){.ability-name{display:block}.app{height:auto;max-height:none;overflow:auto}.main-content{overflow:visible}.content-grid.sheet-layout{grid-template:"skills rolllog""abilities hp""weapons main"/1fr 1fr;height:auto}.sheet-skills,.sheet-abilities,.sheet-weapons,.sheet-hp,.sheet-rolllog{min-height:200px;max-height:340px}.sheet-main{min-height:400px}}@media (width<=900px){.content-grid.sheet-layout{grid-template-rows:auto auto auto auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"skills rolllog""abilities abilities""weapons weapons""main hp";align-items:start}.sheet-abilities,.sheet-weapons{max-height:none;overflow:visible}.sheet-abilities>.card,.sheet-weapons>.card{overflow:visible}.sheet-weapons>.card .weapons-panel-body{padding-right:0;overflow-y:visible}}@media (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"}.sheet-skills,.sheet-abilities,.sheet-weapons,.sheet-hp,.sheet-rolllog,.sheet-main{min-height:280px;max-height:none}.sheet-main{min-height:450px}}@media (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{justify-content:center;align-items:center;gap:var(--spacing-md);min-height:100vh;color:var(--text-muted);background:var(--bg-primary);flex-direction:column;animation:.3s ease-out fadeIn;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;width:48px;height:48px;animation:.8s cubic-bezier(.5,.1,.5,.9) infinite spin;position:relative}.loading-spinner:after{content:"⚔️";font-size:1.25rem;animation:.8s cubic-bezier(.5,.1,.5,.9) infinite spinReverse;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@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:2s ease-in-out infinite pulse}.first-character-modal-overlay{z-index:200;backdrop-filter:blur(2px);background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.first-character-modal{gap:var(--spacing-md);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:min(560px,100%);box-shadow:var(--shadow-lg);flex-direction:column;padding:1.25rem;display:flex}.first-character-modal h2{color:var(--text-primary);margin:0}.first-character-modal p{color:var(--text-secondary);margin:0}.first-character-modal-actions{gap:var(--spacing-sm);grid-template-columns:1fr;display:grid}@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}}
