.nav-more-menu{position:relative;display:inline-block}.nav-more-trigger{min-width:44px;padding:var(--space-3);display:flex;align-items:center;justify-content:center}.nav-more-dropdown{position:absolute;top:calc(100% + var(--space-2));right:var(--space-2);left:auto;min-width:180px;max-width:calc(100vw - var(--space-8));background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);padding:var(--space-2);z-index:1000;display:flex;flex-direction:column;gap:var(--space-1)}.nav-more-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:left;text-decoration:none;cursor:pointer;transition:all var(--transition-base);width:100%}.nav-more-item:hover{background:var(--color-hover);color:var(--color-text-primary)}.nav-more-item svg{flex-shrink:0}.nav-more-item.nav-link-donate{color:light-dark(rgb(255,94,91),rgb(239,68,68));background:transparent;border:none}.nav-more-item.nav-link-donate svg{color:light-dark(rgb(255,94,91),rgb(239,68,68))}.nav-more-item.nav-link-donate:hover{background:light-dark(rgba(255,94,91,.1),rgba(239,68,68,.1));color:light-dark(rgb(235,74,71),rgb(220,38,38))}.nav-more-item.nav-link-donate:hover svg{color:light-dark(rgb(235,74,71),rgb(220,38,38))}.theme-toggle-mobile{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;transition:all var(--transition-base);width:100%}.theme-toggle-mobile:hover{background:var(--color-hover);color:var(--color-text-primary)}.theme-toggle-mobile svg{flex-shrink:0}.theme-toggle-desktop{display:none;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:var(--space-3);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.theme-toggle-desktop:hover{background:var(--color-hover);color:var(--color-text-primary)}.theme-toggle-desktop svg{flex-shrink:0}.theme-toggle-desktop-nav{margin-left:auto}@media(min-width:1024px){.theme-toggle-desktop{display:flex}}.spell-filters{background:var(--color-bg-overlay);border:1px solid var(--color-border-secondary);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-4)}.filters-toggle-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.filters-toggle-btn:hover{background:var(--color-bg-hover);border-color:var(--color-accent)}.filters-toggle-icon{font-size:var(--font-size-sm);transition:transform var(--transition-base)}.filters-toggle-text{flex:1;text-align:center}.filters-active-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 var(--space-2);background:var(--color-accent);color:#fff;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border-radius:var(--radius-full)}.spell-filters-content{overflow:hidden;max-height:0;opacity:0;margin-top:0;transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .4s ease .05s,margin-top .5s ease;will-change:max-height,opacity,margin-top}.spell-filters-content.expanded{max-height:3000px;opacity:1;margin-top:var(--space-4);transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .4s ease,margin-top .5s ease}.spell-filters-content.collapsed{max-height:0;opacity:0;margin-top:0;transition:max-height .4s cubic-bezier(.4,0,.2,1) .1s,opacity .3s ease,margin-top .4s ease .1s}.search-input{width:100%;padding:var(--input-padding);background:var(--color-bg-input);border:var(--input-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-md);transition:all var(--transition-base)}.search-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.search-input::placeholder{color:var(--color-text-tertiary)}.filter-section{margin-bottom:var(--space-6);text-align:center}.filter-section h3{color:var(--color-text-heading);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);margin-bottom:var(--space-3);text-align:center}.filter-buttons{display:flex;flex-wrap:wrap;gap:var(--space-1);justify-content:center}.filter-btn{padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:capitalize;cursor:pointer;transition:all var(--transition-base)}.filter-btn:hover:not([data-class]):not([data-school]){border-color:var(--color-accent);color:var(--color-text-link)}.filter-btn.active:not([data-class]):not([data-school]){background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-text-link)}.filter-btn[data-school=abjuration i]{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border-color:light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.filter-btn[data-school=abjuration i]:hover{background:light-dark(rgba(148,163,184,.35),rgba(148,163,184,.3))}.filter-btn[data-school=abjuration i].active{background:light-dark(rgb(203,213,225),rgb(148,163,184));color:light-dark(#0f172a,#0f172a);border-color:light-dark(#94a3b8,#64748b)}.filter-btn[data-school=abjuration i].active:hover{background:light-dark(rgba(148,163,184,.8),rgba(148,163,184,.8))}.filter-btn[data-school=conjuration i]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e40af,#93c5fd)}.filter-btn[data-school=conjuration i]:hover{background:light-dark(rgba(96,165,250,.35),rgba(96,165,250,.3))}.filter-btn[data-school=conjuration i].active{background:light-dark(rgb(147,197,253),rgb(96,165,250));color:light-dark(#0c2a5f,#0c2a5f);border-color:light-dark(#3b82f6,#2563eb)}.filter-btn[data-school=conjuration i].active:hover{background:light-dark(rgba(96,165,250,.8),rgba(96,165,250,.8))}.filter-btn[data-school=divination i]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.filter-btn[data-school=divination i]:hover{background:light-dark(rgba(253,224,71,.35),rgba(253,224,71,.3))}.filter-btn[data-school=divination i].active{background:light-dark(rgb(254,240,138),rgb(250,204,21));color:light-dark(#422006,#422006);border-color:light-dark(#fbbf24,#eab308)}.filter-btn[data-school=divination i].active:hover{background:light-dark(rgba(253,224,71,.8),rgba(253,224,71,.8))}.filter-btn[data-school=enchantment i]{background:light-dark(rgba(236,72,153,.2),rgba(236,72,153,.15));border-color:light-dark(#ec4899,#db2777);color:light-dark(#be185d,#f9a8d4)}.filter-btn[data-school=enchantment i]:hover{background:light-dark(rgba(236,72,153,.35),rgba(236,72,153,.3))}.filter-btn[data-school=enchantment i].active{background:light-dark(rgb(249,168,212),rgb(236,72,153));color:light-dark(#500724,#500724);border-color:light-dark(#ec4899,#db2777)}.filter-btn[data-school=enchantment i].active:hover{background:light-dark(rgba(236,72,153,.8),rgba(236,72,153,.8))}.filter-btn[data-school=evocation i]{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#dc2626,#fca5a5)}.filter-btn[data-school=evocation i]:hover{background:light-dark(rgba(239,68,68,.35),rgba(239,68,68,.3))}.filter-btn[data-school=evocation i].active{background:light-dark(rgb(252,165,165),rgb(248,113,113));color:light-dark(#450a0a,#450a0a);border-color:light-dark(#ef4444,#dc2626)}.filter-btn[data-school=evocation i].active:hover{background:light-dark(rgba(239,68,68,.8),rgba(239,68,68,.8))}.filter-btn[data-school=illusion i]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}.filter-btn[data-school=illusion i]:hover{background:light-dark(rgba(196,181,253,.35),rgba(196,181,253,.3))}.filter-btn[data-school=illusion i].active{background:light-dark(rgb(221,214,254),rgb(167,139,250));color:light-dark(#2e1065,#2e1065);border-color:light-dark(#a78bfa,#7c3aed)}.filter-btn[data-school=illusion i].active:hover{background:light-dark(rgba(196,181,253,.8),rgba(196,181,253,.8))}.filter-btn[data-school=necromancy i]{background:light-dark(rgba(217,249,157,.3),rgba(217,249,157,.2));border-color:light-dark(#a3e635,#84cc16);color:light-dark(#4d7c0f,#d9f99d)}.filter-btn[data-school=necromancy i]:hover{background:light-dark(rgba(217,249,157,.45),rgba(217,249,157,.35))}.filter-btn[data-school=necromancy i].active{background:light-dark(rgb(236,252,203),rgb(190,242,100));color:light-dark(#1a2e05,#1a2e05);border-color:light-dark(#a3e635,#84cc16)}.filter-btn[data-school=necromancy i].active:hover{background:light-dark(rgba(217,249,157,.8),rgba(217,249,157,.8))}.filter-btn[data-school=transmutation i]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#ea580c,#fdba74)}.filter-btn[data-school=transmutation i]:hover{background:light-dark(rgba(251,146,60,.35),rgba(251,146,60,.3))}.filter-btn[data-school=transmutation i].active{background:light-dark(rgb(254,215,170),rgb(251,146,60));color:light-dark(#431407,#431407);border-color:light-dark(#fb923c,#f97316)}.filter-btn[data-school=transmutation i].active:hover{background:light-dark(rgba(251,146,60,.8),rgba(251,146,60,.8))}.filter-btn[data-class=bard]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}.filter-btn[data-class=bard]:hover{background:light-dark(rgba(196,181,253,.35),rgba(196,181,253,.3))}.filter-btn[data-class=bard].active{background:light-dark(rgb(221,214,254),rgb(167,139,250));color:light-dark(#2e1065,#2e1065);border-color:light-dark(#a78bfa,#7c3aed)}.filter-btn[data-class=bard].active:hover{background:light-dark(rgba(196,181,253,.8),rgba(196,181,253,.8))}.filter-btn[data-class=cleric]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.filter-btn[data-class=cleric]:hover{background:light-dark(rgba(253,224,71,.35),rgba(253,224,71,.3))}.filter-btn[data-class=cleric].active{background:light-dark(rgb(254,240,138),rgb(250,204,21));color:light-dark(#422006,#422006);border-color:light-dark(#fbbf24,#eab308)}.filter-btn[data-class=cleric].active:hover{background:light-dark(rgba(253,224,71,.8),rgba(253,224,71,.8))}.filter-btn[data-class=druid]{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border-color:light-dark(#4ade80,#22c55e);color:light-dark(#16a34a,#86efac)}.filter-btn[data-class=druid]:hover{background:light-dark(rgba(134,239,172,.35),rgba(134,239,172,.3))}.filter-btn[data-class=druid].active{background:light-dark(rgb(187,247,208),rgb(134,239,172));color:light-dark(#052e16,#052e16);border-color:light-dark(#4ade80,#22c55e)}.filter-btn[data-class=druid].active:hover{background:light-dark(rgba(134,239,172,.8),rgba(134,239,172,.8))}.filter-btn[data-class=paladin]{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border-color:light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.filter-btn[data-class=paladin]:hover{background:light-dark(rgba(148,163,184,.35),rgba(148,163,184,.3))}.filter-btn[data-class=paladin].active{background:light-dark(rgb(203,213,225),rgb(148,163,184));color:light-dark(#0f172a,#0f172a);border-color:light-dark(#94a3b8,#64748b)}.filter-btn[data-class=paladin].active:hover{background:light-dark(rgba(148,163,184,.8),rgba(148,163,184,.8))}.filter-btn[data-class=ranger]{background:light-dark(rgba(217,119,6,.15),rgba(217,119,6,.2));border-color:light-dark(#d97706,#ea580c);color:light-dark(#92400e,#fdba74)}.filter-btn[data-class=ranger]:hover{background:light-dark(rgba(217,119,6,.3),rgba(217,119,6,.35))}.filter-btn[data-class=ranger].active{background:light-dark(rgb(254,215,170),rgb(251,146,60));color:light-dark(#1c0a00,#1c0a00);border-color:light-dark(#d97706,#ea580c)}.filter-btn[data-class=ranger].active:hover{background:light-dark(rgba(217,119,6,.8),rgba(217,119,6,.8))}.filter-btn[data-class=sorcerer]{background:light-dark(rgba(248,113,113,.2),rgba(248,113,113,.15));border-color:light-dark(#f87171,#ef4444);color:light-dark(#dc2626,#fca5a5)}.filter-btn[data-class=sorcerer]:hover{background:light-dark(rgba(248,113,113,.35),rgba(248,113,113,.3))}.filter-btn[data-class=sorcerer].active{background:light-dark(rgb(252,165,165),rgb(248,113,113));color:light-dark(#450a0a,#450a0a);border-color:light-dark(#f87171,#ef4444)}.filter-btn[data-class=sorcerer].active:hover{background:light-dark(rgba(248,113,113,.8),rgba(248,113,113,.8))}.filter-btn[data-class=warlock]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#ea580c,#fdba74)}.filter-btn[data-class=warlock]:hover{background:light-dark(rgba(251,146,60,.35),rgba(251,146,60,.3))}.filter-btn[data-class=warlock].active{background:light-dark(rgb(254,215,170),rgb(251,146,60));color:light-dark(#431407,#431407);border-color:light-dark(#fb923c,#f97316)}.filter-btn[data-class=warlock].active:hover{background:light-dark(rgba(251,146,60,.8),rgba(251,146,60,.8))}.filter-btn[data-class=wizard]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e40af,#93c5fd)}.filter-btn[data-class=wizard]:hover{background:light-dark(rgba(96,165,250,.35),rgba(96,165,250,.3))}.filter-btn[data-class=wizard].active{background:light-dark(rgb(147,197,253),rgb(96,165,250));color:light-dark(#0c2a5f,#0c2a5f);border-color:light-dark(#3b82f6,#2563eb)}.filter-btn[data-class=wizard].active:hover{background:light-dark(rgba(96,165,250,.8),rgba(96,165,250,.8))}.filter-checkboxes{display:flex;flex-direction:column;gap:var(--space-3)}.filter-badges-inline{display:grid;grid-template-columns:1fr;gap:0}.filter-badges-inline>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3);flex-wrap:wrap}.filter-badges-inline>div:not(:first-child){border-left:1px solid var(--color-border-secondary)}.filter-badges-inline h3{margin-bottom:0;flex-shrink:0;align-self:center;text-align:center}.filter-badges-inline .badge-group{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center}.checkbox-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);transition:all var(--transition-base);cursor:pointer;border:1px solid transparent}.checkbox-badge-verbal{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}.checkbox-badge-verbal:hover{background:light-dark(rgba(196,181,253,.35),rgba(196,181,253,.3))}.checkbox-badge-verbal.active{background:light-dark(rgb(221,214,254),rgb(167,139,250));color:light-dark(#2e1065,#2e1065);border-color:light-dark(#a78bfa,#7c3aed)}.checkbox-badge-verbal.active:hover{background:light-dark(rgba(196,181,253,.8),rgba(196,181,253,.8))}.checkbox-badge-somatic{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.checkbox-badge-somatic:hover{background:light-dark(rgba(253,224,71,.35),rgba(253,224,71,.3))}.checkbox-badge-somatic.active{background:light-dark(rgb(254,240,138),rgb(250,204,21));color:light-dark(#422006,#422006);border-color:light-dark(#fbbf24,#eab308)}.checkbox-badge-somatic.active:hover{background:light-dark(rgba(253,224,71,.8),rgba(253,224,71,.8))}.checkbox-badge-material{background:light-dark(rgba(236,72,153,.2),rgba(236,72,153,.15));border-color:light-dark(#ec4899,#db2777);color:light-dark(#be185d,#f9a8d4)}.checkbox-badge-material:hover{background:light-dark(rgba(236,72,153,.35),rgba(236,72,153,.3))}.checkbox-badge-material.active{background:light-dark(rgb(249,168,212),rgb(236,72,153));color:light-dark(#500724,#500724);border-color:light-dark(#ec4899,#db2777)}.checkbox-badge-material.active:hover{background:light-dark(rgba(236,72,153,.8),rgba(236,72,153,.8))}.checkbox-badge-concentration{background:light-dark(rgba(103,232,249,.2),rgba(103,232,249,.15));border-color:light-dark(#06b6d4,#0891b2);color:light-dark(#0e7490,#67e8f9)}.checkbox-badge-concentration:hover{background:light-dark(rgba(103,232,249,.35),rgba(103,232,249,.3))}.checkbox-badge-concentration.active{background:light-dark(rgb(165,243,252),rgb(103,232,249));color:light-dark(#164e63,#164e63);border-color:light-dark(#06b6d4,#0891b2)}.checkbox-badge-concentration.active:hover{background:light-dark(rgba(103,232,249,.8),rgba(103,232,249,.8))}.checkbox-badge-ritual{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#dc2626,#fca5a5)}.checkbox-badge-ritual:hover{background:light-dark(rgba(239,68,68,.35),rgba(239,68,68,.3))}.checkbox-badge-ritual.active{background:light-dark(rgb(252,165,165),rgb(248,113,113));color:light-dark(#450a0a,#450a0a);border-color:light-dark(#ef4444,#dc2626)}.checkbox-badge-ritual.active:hover{background:light-dark(rgba(239,68,68,.8),rgba(239,68,68,.8))}.filter-footer{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap}.filter-results{margin:0;display:flex;align-items:center;font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-none)}.btn-clear-filters{padding:var(--space-2) var(--space-3);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-lg);color:var(--color-error-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.level-dropdown-container{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-3)}.level-dropdown-container label{display:flex;flex:0 1 auto;min-width:fit-content;align-items:center;gap:var(--space-2);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.level-dropdown-container select{padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:var(--input-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.level-dropdown-container select:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.level-dropdown-container select option{background:var(--color-bg-primary);color:var(--color-text-primary);padding:var(--space-2)}.level-dropdown-container .level-select-0{background:#94a3b833;border-color:#94a3b8;color:#475569}.level-dropdown-container .level-select-1{background:#c4b5fd33;border-color:#a78bfa;color:#6d28d9}.level-dropdown-container .level-select-2{background:#818cf833;border-color:#6366f1;color:#3730a3}.level-dropdown-container .level-select-3{background:#3b82f640;border-color:#2563eb;color:#1e3a8a}.level-dropdown-container .level-select-4{background:#60a5fa33;border-color:#3b82f6;color:#1e40af}.level-dropdown-container .level-select-5{background:#67e8f933;border-color:#06b6d4;color:#0e7490}.level-dropdown-container .level-select-6{background:#86efac33;border-color:#4ade80;color:#16a34a}.level-dropdown-container .level-select-7{background:#fde04733;border-color:#fbbf24;color:#b45309}.level-dropdown-container .level-select-8{background:#fb923c33;border-color:#fb923c;color:#ea580c}.level-dropdown-container .level-select-9{background:#ef444433;border-color:#ef4444;color:#dc2626}.level-range-container{width:min(400px,100%);margin:0 auto}.range-labels{display:flex;justify-content:space-between;margin-bottom:var(--space-3);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.range-slider-container{position:relative;height:40px;margin-bottom:var(--space-2);padding:0 5px}.range-track{position:absolute;top:16px;left:5px;right:5px;height:8px;background:#94a3b8;border:2px solid #cbd5e1;border-radius:var(--radius-md);pointer-events:none;z-index:1}.range-active-track{position:absolute;top:16px;height:8px;background:var(--color-accent);border-radius:var(--radius-md);pointer-events:none;z-index:2;transition:left var(--transition-fast),width var(--transition-fast)}.range-slider{position:absolute;top:16px;width:100%;height:8px;-webkit-appearance:none;appearance:none;background:transparent;outline:none;pointer-events:none;z-index:2}.range-slider::-webkit-slider-track{width:100%;height:8px;background:#94a3b8;border:2px solid #cbd5e1;border-radius:var(--radius-md)}.range-slider::-moz-range-track{width:100%;height:8px;background:#94a3b8;border:2px solid #cbd5e1;border-radius:var(--radius-md)}.range-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg-primary);cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-sm);transition:all var(--transition-base);position:relative;z-index:3}.range-slider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--color-accent);border:2px solid var(--color-bg-primary);cursor:pointer;pointer-events:auto;box-shadow:var(--shadow-sm);transition:all var(--transition-base);position:relative;z-index:3}.range-slider::-webkit-slider-thumb:hover{background:var(--color-primary);box-shadow:var(--shadow-md)}.range-slider::-moz-range-thumb:hover{background:var(--color-primary);box-shadow:var(--shadow-md)}.range-slider-min{z-index:3}.range-slider-max{z-index:4}.range-ticks{display:flex;justify-content:space-between;padding:0 5px;gap:2px;margin-bottom:var(--space-2)}.range-tick{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-align:center;min-width:0;padding:1px 2px;border-radius:var(--radius-sm);transition:all var(--transition-base);flex:1 1 0;overflow:hidden;white-space:nowrap}.range-tick-0{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border:1px solid light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.range-tick-1{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border:1px solid light-dark(#ef4444,#dc2626);color:light-dark(#dc2626,#fca5a5)}.range-tick-2{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border:1px solid light-dark(#fb923c,#f97316);color:light-dark(#ea580c,#fdba74)}.range-tick-3{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border:1px solid light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.range-tick-4{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border:1px solid light-dark(#4ade80,#22c55e);color:light-dark(#16a34a,#86efac)}.range-tick-5{background:light-dark(rgba(103,232,249,.2),rgba(103,232,249,.15));border:1px solid light-dark(#06b6d4,#0891b2);color:light-dark(#0e7490,#67e8f9)}.range-tick-6{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border:1px solid light-dark(#3b82f6,#2563eb);color:light-dark(#1e40af,#93c5fd)}.range-tick-7{background:light-dark(rgba(59,130,246,.25),rgba(37,99,235,.2));border:1px solid light-dark(#2563eb,#1d4ed8);color:light-dark(#1e3a8a,#60a5fa)}.range-tick-8{background:light-dark(rgba(129,140,248,.2),rgba(129,140,248,.15));border:1px solid light-dark(#6366f1,#4f46e5);color:light-dark(#3730a3,#a5b4fc)}.range-tick-9{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border:1px solid light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}@media(min-width:768px){.spell-filters{padding:var(--space-4) var(--space-6);margin-bottom:1rem}.filter-section h3{font-size:var(--font-size-base)}.filter-buttons{gap:var(--space-2)}.filter-btn,.btn-clear-filters{padding:var(--space-2) var(--space-4);font-size:var(--font-size-base)}.filter-footer{flex-direction:row;gap:var(--space-4)}.level-dropdown-container{gap:var(--space-4)}.level-range-container{margin:0}.range-ticks{padding:0 10px;gap:var(--space-1)}.range-tick{font-size:var(--font-size-base);min-width:20px;padding:2px 4px}.range-slider-container{padding:0 10px}.range-track{left:10px;right:10px}}@media(min-width:1100px){.filter-badges-inline{grid-template-columns:1fr 1fr}.filter-badges-inline>div{flex-direction:row;align-items:flex-start;gap:var(--space-4)}.filter-badges-inline h3{text-align:left}.filter-badges-inline .badge-group{flex-wrap:nowrap}}@media(prefers-color-scheme:dark){.level-dropdown-container .level-select-0{background:#94a3b826;border-color:#64748b;color:#cbd5e1}.level-dropdown-container .level-select-1{background:#c4b5fd26;border-color:#7c3aed;color:#c4b5fd}.level-dropdown-container .level-select-2{background:#818cf826;border-color:#4f46e5;color:#a5b4fc}.level-dropdown-container .level-select-3{background:#2563eb33;border-color:#1d4ed8;color:#60a5fa}.level-dropdown-container .level-select-4{background:#60a5fa26;border-color:#2563eb;color:#93c5fd}.level-dropdown-container .level-select-5{background:#67e8f926;border-color:#0891b2;color:#67e8f9}.level-dropdown-container .level-select-6{background:#86efac26;border-color:#22c55e;color:#86efac}.level-dropdown-container .level-select-7{background:#fde04726;border-color:#eab308;color:#fde047}.level-dropdown-container .level-select-8{background:#fb923c26;border-color:#f97316;color:#fdba74}.level-dropdown-container .level-select-9{background:#ef444426;border-color:#dc2626;color:#fca5a5}}.filter-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:0}.filter-modal{background:var(--color-bg-primary);width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden;outline:none}.filter-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border-primary);background:var(--color-bg-secondary)}.filter-modal-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.filter-modal-close{background:none;border:none;font-size:var(--font-size-3xl);line-height:var(--line-height-none);color:var(--color-text-secondary);cursor:pointer;padding:0;width:var(--space-8);height:var(--space-8);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:background-color .2s ease}.filter-modal-close:hover{background-color:var(--color-hover)}.filter-modal-body{flex:1;overflow-y:auto;padding:var(--space-4)}.filter-modal-footer{padding:var(--space-4);border-top:1px solid var(--color-border-primary);background:var(--color-bg-secondary);display:flex;gap:var(--space-3)}.filter-modal-footer .btn-primary,.filter-modal-footer .btn-clear-filters{flex:1;font-size:var(--font-size-md)}@media(min-width:768px){.filter-modal-footer{justify-content:flex-end}.filter-modal-footer .btn-primary,.filter-modal-footer .btn-clear-filters{flex:0 0 auto;min-width:120px}.filter-modal-backdrop{padding:var(--space-4)}.filter-modal{width:90%;max-width:900px;height:auto;max-height:90vh;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl)}}.sort-icon{margin-left:var(--space-2);opacity:.6;user-select:none}.sortable:hover .sort-icon{opacity:1}.swipe-container{position:relative;touch-action:pan-y;transition:transform .1s ease-out;overflow:hidden}.swipe-container>td{position:relative;z-index:1}.swipe-indicator{position:absolute;inset:0;height:auto;width:auto;display:flex;align-items:center;font-weight:var(--font-weight-semibold);font-size:1.1rem;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);pointer-events:none;z-index:15;transition:opacity .1s ease;gap:var(--space-2);padding:0 var(--space-4)}.swipe-indicator-icon{display:inline-flex;align-items:center}.swipe-indicator-left{justify-content:flex-end}.swipe-indicator-right{justify-content:flex-start}.swipe-indicator-select{background:var(--color-swipe-select-bg);color:var(--color-swipe-select-text)}.swipe-indicator-select.committed{background:light-dark(rgba(34,197,94,.95),rgba(34,197,94,1))}.swipe-indicator-deselect{background:var(--color-swipe-deselect-bg);color:var(--color-swipe-deselect-text)}.swipe-indicator-deselect.committed{background:light-dark(rgba(148,163,184,.95),rgba(148,163,184,1))}@media(min-width:768px){.swipe-indicator{bottom:auto;height:100%;width:auto;z-index:10}}.dice-notation{font-weight:var(--font-weight-bold);color:var(--color-accent);background-color:rgba(var(--color-accent-rgb),.1);padding:0 2px;border-radius:var(--radius-sm);display:inline-block}.spell-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--space-4) 0;border:1px solid var(--color-border-primary);border-radius:var(--radius-sm)}.spell-table-rendered{width:100%;border-collapse:collapse;font-size:.9em}.spell-table-rendered th,.spell-table-rendered td{border:1px solid var(--color-border-primary);padding:var(--space-2);text-align:left;color:inherit}.spell-table-rendered th{background-color:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.spell-table-rendered tbody tr:nth-child(2n){background-color:var(--color-bg-elevated)}table.spell-table-rendered thead{display:table-header-group}table.spell-table-rendered th{display:table-cell}.spell-text-line{min-height:auto}.spell-text-line-empty{min-height:1em}.spell-text-h1,.spell-text-h2,.spell-text-h3{color:var(--color-text-heading);font-weight:var(--font-weight-bold);margin-top:1em;margin-bottom:.5em}.spell-text-h1{font-size:1.5em}.spell-text-h2{font-size:1.3em}.spell-text-h3{font-size:1.1em}@keyframes rise-and-fade{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-150%) scale(1.2);opacity:0}}.feedback-text{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-prepared);z-index:2000;background:var(--color-bg-primary);padding:var(--space-3) var(--space-6);border-radius:var(--radius-lg);border:2px solid var(--color-prepared);box-shadow:var(--shadow-xl)}.spell-detail-modal-prep-wrapper.animating .feedback-text,.spell-detail-modal-checkbox-wrapper.animating .feedback-text{animation:rise-and-fade 1s ease-out}.spell-detail-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.spell-detail-modal{background:var(--color-bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;height:90vh;display:flex;flex-direction:column;box-shadow:0 -4px 20px #0000004d;animation:slideUp .3s ease-out;outline:none}.spell-detail-modal:focus-visible{box-shadow:0 -4px 20px #0000004d,0 0 0 3px light-dark(rgba(6,182,212,.3),rgba(6,182,212,.3))}.spell-detail-modal-header{border-bottom:2px solid var(--color-border-primary);background:var(--color-bg-secondary);position:relative;cursor:grab;touch-action:none;padding:var(--space-4)}.spell-detail-modal-header:active{cursor:grabbing}.spell-detail-modal-header:before{content:"";position:absolute;top:var(--space-2);left:50%;transform:translate(-50%);width:40px;height:4px;background:var(--color-border-primary);border-radius:var(--radius-full);pointer-events:none}.spell-detail-modal-header-content{display:grid;align-items:center;gap:var(--space-3)}.spell-detail-modal-header-content.with-prep-icon,.spell-detail-modal-header-content.no-prep-icon{grid-template-columns:40px 1fr 40px}.spell-detail-modal-header-content.no-prep-icon:before{content:"";width:40px}.spell-prep-status-icon{display:flex;align-items:center;flex-shrink:0}.spell-prep-status-icon svg{width:20px;height:20px}.spell-prep-status-icon.unprepared{color:var(--color-text-secondary)}.spell-prep-status-icon.prepared{color:var(--color-prepared)}.spell-detail-modal-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-heading);text-align:center;flex:1}.spell-detail-modal-close{display:none}.spell-detail-modal-body{overflow-y:auto;padding:var(--space-2) var(--space-6) var(--space-6) var(--space-6);flex:1}.spell-detail-modal-footer{padding:var(--space-3);border-top:2px solid var(--color-border-primary);background:var(--color-bg-secondary);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3)}.spell-detail-modal-checkbox-wrapper{position:relative;flex-shrink:0;justify-self:start}.spell-detail-modal-footer-checkbox{width:26px;height:26px;cursor:pointer;accent-color:light-dark(rgb(96,165,250),rgb(96,165,250));flex-shrink:0}.spell-detail-modal-footer-center{display:flex;align-items:center;gap:var(--space-3);justify-self:center}.spell-detail-modal-external-link{justify-self:end}.spell-detail-modal-prep-wrapper{position:relative;flex-shrink:0}.spell-detail-modal-prep-toggle{position:relative;background:transparent;border:1px solid var(--color-border-primary);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1) var(--space-2);height:32px;min-width:90px;display:flex;align-items:center;justify-content:center;gap:var(--space-1);border-radius:var(--radius-full);transition:all var(--transition-base);flex-shrink:0;white-space:nowrap;font-size:var(--font-size-sm)}.spell-detail-modal-prep-toggle svg{width:18px;height:18px}.spell-detail-modal-prep-toggle:hover{background:var(--color-hover);color:var(--color-text-primary)}.spell-detail-modal-prep-toggle.prep-action{color:var(--color-prepared)}.spell-detail-modal-prep-toggle.prep-action:hover{background:var(--color-hover);color:var(--color-prepared)}.spell-detail-modal-remove{position:relative;background:var(--color-error-bg);border:1px solid var(--color-error);color:var(--color-error);cursor:pointer;padding:var(--space-1) var(--space-2);height:32px;display:flex;align-items:center;justify-content:center;gap:var(--space-1);border-radius:var(--radius-full);transition:all var(--transition-base);flex-shrink:0;white-space:nowrap;font-size:var(--font-size-sm)}.spell-detail-modal-remove svg{width:18px;height:18px}.spell-detail-modal-remove:hover{background:var(--color-error);color:#fff}.spell-detail-modal-external-link{background:transparent;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);transition:all var(--transition-base);text-decoration:none;flex-shrink:0}.spell-detail-modal-external-link svg{width:18px;height:18px}.spell-detail-modal-external-link:hover{background:var(--color-hover);color:var(--color-text-primary)}@media(min-width:425px){.spell-detail-modal-backdrop{align-items:center;padding:var(--space-4)}.spell-detail-modal{border-radius:var(--radius-xl);max-width:700px;width:100%;max-height:85vh;height:auto;box-shadow:var(--shadow-2xl);border:1px solid var(--color-border-primary);animation:none}.spell-detail-modal:focus-visible{box-shadow:var(--shadow-2xl),0 0 0 3px light-dark(rgba(6,182,212,.3),rgba(6,182,212,.3))}.spell-detail-modal-header{padding:1rem var(--space-6);cursor:default;touch-action:auto}.spell-detail-modal-header:active{cursor:default}.spell-detail-modal-header:before{display:none}.spell-detail-modal-header-content{gap:var(--space-4)}.spell-prep-status-icon svg{width:24px;height:24px}.spell-detail-modal-header h2{font-size:var(--font-size-2xl)}.spell-detail-modal-close{display:flex;background:transparent;border:none;font-size:var(--font-size-3xl);line-height:var(--line-height-none);color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);width:40px;height:40px;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-base);flex-shrink:0}.spell-detail-modal-close:hover{background:var(--color-hover);color:var(--color-text-primary)}.spell-detail-modal-body{flex:0 1 auto}.spell-detail-modal-footer{padding:var(--space-4);gap:var(--space-4)}.spell-detail-modal-footer-center{gap:var(--space-4)}.spell-detail-modal-prep-toggle{padding:var(--space-2) var(--space-3);height:40px;min-width:100px;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-base)}.spell-detail-modal-prep-toggle svg{width:20px;height:20px}.spell-detail-modal-remove{padding:var(--space-2) var(--space-3);height:40px;gap:var(--space-2);border-radius:var(--radius-md);font-size:var(--font-size-base)}.spell-detail-modal-remove svg{width:20px;height:20px}.spell-detail-modal-external-link{padding:var(--space-2);width:40px;height:40px;border-radius:var(--radius-md)}.spell-detail-modal-external-link svg{width:20px;height:20px}}.spell-expanded-details{display:grid;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-hover);border-radius:var(--radius-lg);font-size:var(--font-size-base);border:1px solid var(--color-border-primary)}.spell-detail-modal .spell-expanded-details{grid-template-columns:repeat(2,1fr);grid-template-rows:auto auto}@media(min-width:690px){.spell-detail-modal .spell-expanded-details{grid-template-columns:repeat(4,1fr);grid-template-rows:auto}}.spell-expanded-details strong{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.spell-expanded-components strong{margin-bottom:var(--space-2)}.expanded-badges-container{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.spell-expanded-description{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);margin:var(--space-6) 0;color:var(--color-text-primary)}.spell-materials{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-hover);border-radius:var(--radius-md);border-left:3px solid var(--color-border-primary);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.spell-materials strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);font-size:var(--font-size-xs)}.spell-materials .material-cost{color:var(--color-prepared);font-weight:var(--font-weight-bold);text-transform:none}.spell-expanded-higher-levels{margin:var(--space-6) 0;padding:var(--space-6);background:var(--color-primary-lighter);border-radius:var(--radius-lg);border-left:3px solid var(--color-primary);font-size:var(--font-size-md);line-height:var(--line-height-relaxed)}.spell-expanded-higher-levels strong{display:block;margin-bottom:var(--space-3);font-size:var(--font-size-base);color:light-dark(#ca8a04,#fbbf24);font-weight:var(--font-weight-semibold)}.spell-expanded-footer{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-secondary);font-size:var(--font-size-base);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.spell-expanded-classes{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.spell-source{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-base)}.spell-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.spell-table .desktop-only,.desktop-badge{display:none}.spell-table-container{width:100%;padding:0;background:transparent;border:none;overflow-x:visible}.spell-table thead{display:none}.spell-table,.spell-table>tbody{display:block;width:100%}.spell-table>tbody>tr{display:flex;flex-wrap:wrap;margin-bottom:var(--space-4);gap:var(--space-2);background:var(--color-unselected-bg);border:1px solid var(--color-unselected-border);border-radius:var(--radius-xl);padding:var(--space-3) var(--space-4) var(--space-4);border-left:4px solid var(--color-primary);position:relative;min-height:60px;box-shadow:light-dark(0 1px 3px rgba(0,0,0,.05),none)}.spell-table>tbody>tr:hover{background:var(--color-hover)}.spell-row{cursor:pointer}.spell-row.expanded{background:light-dark(rgba(237,233,254,.3),rgba(79,70,229,.15));border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none;margin-bottom:0;z-index:1;clip-path:inset(-20px -20px 0 -20px)}.spell-table>tbody>tr>td{padding:0;border:none}.spell-table .selected-row{background:var(--color-selected-bg);border-color:var(--color-selected-border)}.spell-table .selected-row:hover{background:var(--color-selected-hover)}.spell-name{flex:1 1 100%;display:flex;align-items:center;gap:var(--space-2);margin:0;min-width:0;order:1}.spell-name-header{flex:1 1 auto;min-width:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:light-dark(#4c1d95,#a5b4fc);line-height:var(--line-height-snug);overflow-wrap:break-word;word-break:break-word}.level-badge,.school-badge{border:1px solid}.level-badge[data-level="0"]{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border-color:light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.level-badge[data-level="1"]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#8b5cf6);color:light-dark(#6d28d9,#ddd6fe)}.level-badge[data-level="2"]{background:light-dark(rgba(129,140,248,.2),rgba(129,140,248,.15));border-color:light-dark(#6366f1,#4f46e5);color:light-dark(#3730a3,#c7d2fe)}.level-badge[data-level="3"]{background:light-dark(rgba(59,130,246,.2),rgba(59,130,246,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e3a8a,#bfdbfe)}.level-badge[data-level="4"]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#60a5fa,#3b82f6);color:light-dark(#1e3a8a,#bfdbfe)}.level-badge[data-level="5"]{background:light-dark(rgba(103,232,249,.2),rgba(103,232,249,.15));border-color:light-dark(#22d3ee,#06b6d4);color:light-dark(#164e63,#cffafe)}.level-badge[data-level="6"]{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border-color:light-dark(#4ade80,#22c55e);color:light-dark(#14532d,#dcfce7)}.level-badge[data-level="7"]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#facc15,#eab308);color:light-dark(#713f12,#fef9c3)}.level-badge[data-level="8"]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#7c2d12,#fed7aa)}.level-badge[data-level="9"]{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#7f1d1d,#fecaca)}.school-badge[data-school=abjuration i]{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border-color:light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.school-badge[data-school=conjuration i]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e40af,#93c5fd)}.school-badge[data-school=divination i]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.school-badge[data-school=enchantment i]{background:light-dark(rgba(236,72,153,.2),rgba(236,72,153,.15));border-color:light-dark(#ec4899,#db2777);color:light-dark(#be185d,#f9a8d4)}.school-badge[data-school=evocation i]{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#dc2626,#fca5a5)}.school-badge[data-school=illusion i]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}.school-badge[data-school=necromancy i]{background:light-dark(rgba(217,249,157,.3),rgba(217,249,157,.2));border-color:light-dark(#a3e635,#84cc16);color:light-dark(#4d7c0f,#d9f99d)}.school-badge[data-school=transmutation i]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#ea580c,#fdba74)}.mobile-badge.level-badge,.mobile-badge.school-badge{flex:0 0 auto;display:inline-block;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);padding:.125rem .2rem;margin:0;border-radius:var(--radius-md);white-space:nowrap;text-align:center;vertical-align:middle}.mobile-badge.level-badge{min-width:30px;width:30px;height:30px;order:2}.mobile-badge.school-badge{text-transform:uppercase;min-width:3rem;height:30px;width:3rem;border:1px solid;order:3}.checkbox-col,.level-col,.time-col,.range-col,.duration-col,.school-col,.components-col,.classes-col,.source-col{display:none}.badge{display:inline-block;margin:0 0 0 var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--font-size-xs);border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold);vertical-align:middle}.badge-concentration{background:var(--color-badge-concentration-bg);color:var(--color-badge-concentration-text);border:1px solid var(--color-badge-concentration-border);margin:0 var(--space-1) 0 0}.badge-ritual{background:var(--color-badge-ritual-bg);color:var(--color-badge-ritual-text);border:1px solid var(--color-badge-ritual-border);margin:0 0 0 var(--space-1)}.sort-button{width:100%;height:100%;background:none;border:none;padding:var(--space-2);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text-heading);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);justify-content:space-between;transition:background-color var(--transition-fast)}.sort-button:hover{background:var(--color-hover)}.th-content{display:flex;align-items:center;gap:var(--space-2);justify-content:space-between}.sort-icon{opacity:.5;font-size:var(--font-size-base)}.spell-table th.sortable:hover .sort-icon,.sort-button:hover .sort-icon{opacity:1}.spell-expanded-row{background:var(--color-bg-secondary);animation:slideDown var(--transition-slow)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.spell-expanded-content{padding:var(--space-6);border-left:3px solid var(--color-primary)}.spell-expanded-header h3{margin:0 0 var(--space-2) 0;color:var(--color-text-primary);font-size:var(--font-size-xl)}.spell-meta{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin:0 0 .5rem;font-size:var(--font-size-base)}.spell-meta-separator{color:var(--color-text-secondary);font-weight:var(--font-weight-normal)}.spell-expanded-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--color-bg-primary);border-radius:var(--radius-lg)}.spell-expanded-details div{font-size:var(--font-size-base)}.spell-expanded-details strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.spell-expanded-description{margin:var(--space-4) 0;line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.spell-expanded-higher-levels{margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-primary-lighter);border-radius:var(--radius-lg);border-left:3px solid var(--color-primary)}.spell-expanded-higher-levels strong{color:var(--color-primary)}.spell-expanded-footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border-primary);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-base)}.spell-source{color:var(--color-text-secondary);font-style:italic}.spell-meta-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);white-space:nowrap}.component-badges{display:flex;gap:.25rem;justify-content:center;align-items:center;flex-wrap:nowrap}.component-badge{display:inline-block;padding:.125rem .375rem;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);vertical-align:middle;text-align:center;min-width:1.25rem}.badge-verbal{background:light-dark(rgba(139,92,246,.15),rgba(139,92,246,.25));color:light-dark(rgb(109,40,217),rgb(196,181,253));border:1px solid light-dark(rgb(139,92,246),rgb(139,92,246))}.badge-somatic{background:light-dark(rgba(234,179,8,.15),rgba(234,179,8,.25));color:light-dark(rgb(161,98,7),rgb(253,224,71));border:1px solid light-dark(rgb(234,179,8),rgb(234,179,8))}.badge-material{background:light-dark(rgba(236,72,153,.15),rgba(236,72,153,.25));color:light-dark(rgb(190,24,93),rgb(251,207,232));border:1px solid light-dark(rgb(236,72,153),rgb(236,72,153))}.class-badges{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center}.class-badge{display:inline-block;padding:.0625rem .25rem;border-radius:var(--radius-sm);font-size:.625rem;font-weight:var(--font-weight-bold);vertical-align:middle;text-align:center;line-height:1.2;min-width:1.5rem}.class-badge-bard{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border:1px solid light-dark(#a78bfa,#7c3aed);color:light-dark(#6d28d9,#c4b5fd)}.class-badge-cleric{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border:1px solid light-dark(#fbbf24,#eab308);color:light-dark(#b45309,#fde047)}.class-badge-druid{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border:1px solid light-dark(#4ade80,#22c55e);color:light-dark(#16a34a,#86efac)}.class-badge-paladin{background:light-dark(rgba(148,163,184,.2),rgba(148,163,184,.15));border:1px solid light-dark(#94a3b8,#64748b);color:light-dark(#475569,#cbd5e1)}.class-badge-ranger{background:light-dark(rgba(217,119,6,.15),rgba(217,119,6,.2));border:1px solid light-dark(#d97706,#ea580c);color:light-dark(#92400e,#fdba74)}.class-badge-sorcerer{background:light-dark(rgba(248,113,113,.2),rgba(248,113,113,.15));border:1px solid light-dark(#f87171,#ef4444);color:light-dark(#dc2626,#fca5a5)}.class-badge-warlock{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border:1px solid light-dark(#fb923c,#f97316);color:light-dark(#ea580c,#fdba74)}.class-badge-wizard{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border:1px solid light-dark(#3b82f6,#2563eb);color:light-dark(#1e40af,#93c5fd)}.cell-content{display:inline-block;white-space:nowrap}.cell-content .badge{white-space:nowrap}.spell-table-empty{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-tertiary);background:var(--color-bg-overlay);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl)}@media(min-width:768px){.mobile-badge,.mobile-badge.level-badge,.mobile-badge.school-badge{display:none}.desktop-badge{display:inline-block;padding:.25rem .5rem;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);white-space:nowrap;text-transform:capitalize;text-align:center}.school-col[data-school]{font-weight:var(--font-weight-semibold);text-transform:capitalize}.school-col[data-school=abjuration i]{color:light-dark(#475569,#cbd5e1)}.school-col[data-school=conjuration i]{color:light-dark(#1e40af,#93c5fd)}.school-col[data-school=divination i]{color:light-dark(#b45309,#fde047)}.school-col[data-school=enchantment i]{color:light-dark(#be185d,#f9a8d4)}.school-col[data-school=evocation i]{color:light-dark(#dc2626,#fca5a5)}.school-col[data-school=illusion i]{color:light-dark(#6d28d9,#c4b5fd)}.school-col[data-school=necromancy i]{color:light-dark(#4d7c0f,#d9f99d)}.school-col[data-school=transmutation i]{color:light-dark(#ea580c,#fdba74)}.spell-table .desktop-only{display:table-cell}.spell-table-container{padding:var(--space-4);background:var(--color-bg-overlay);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);overflow-x:auto;container-type:inline-size;container-name:table-container}.spell-table thead{display:table-header-group;background:light-dark(rgba(241,245,249,.9),rgba(15,23,42,.6));border-left:4px solid transparent;position:sticky;top:0;z-index:var(--z-dropdown)}.spell-table,.spell-table>tbody{display:table;width:100%}.spell-table>tbody{display:table-row-group}.spell-table>tbody>tr{display:table-row;margin-bottom:0;gap:0;border:none;border-radius:0;padding:0;border-left:4px solid transparent;border-bottom:2px solid transparent;position:static;min-height:auto;box-shadow:none;transition:background-color var(--transition-fast)}.spell-row.expanded{background:var(--color-expanded-bg);border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:1px solid var(--color-border-secondary);margin-bottom:0;z-index:auto;clip-path:none}.spell-table>tbody>tr>td{display:table-cell;padding:var(--space-3) var(--space-4);border:none;vertical-align:middle;color:var(--color-text-primary)}.spell-name{flex:none;display:table-cell;gap:0;margin:0;min-width:120px;order:0;font-weight:var(--font-weight-medium);color:var(--color-text-link)}.spell-name-header{flex:none;min-width:0;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-link);line-height:normal;overflow-wrap:normal;word-break:normal}.spell-table th{display:table-cell;padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--font-weight-semibold);color:var(--color-text-heading);border-bottom:2px solid var(--color-border-primary);white-space:nowrap}.spell-table th.sortable-header{padding:0}.spell-table .selected-row{background:var(--color-selected-bg);border-color:transparent;border-left-color:var(--color-selected-border)}.spell-table .selected-row:hover{background:var(--color-selected-hover)}.checkbox-col{display:table-cell;width:40px;text-align:center;padding:var(--space-3) var(--space-2)}.checkbox-col input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:var(--color-accent)}.level-col{display:table-cell;text-align:center;min-width:60px;width:1%;white-space:nowrap}.time-col{display:table-cell;min-width:75px;width:1%;white-space:nowrap}.range-col{display:table-cell;min-width:70px;width:1%;white-space:nowrap}.duration-col{display:table-cell;min-width:95px;width:1%}.duration-col .cell-content{white-space:normal}.school-col{display:table-cell;text-transform:capitalize;min-width:85px;width:1%;white-space:nowrap}.components-col{display:table-cell;text-align:center;font-family:monospace;min-width:60px;width:1%;white-space:nowrap;color:var(--color-text-secondary)}.classes-col{display:table-cell;text-transform:capitalize;color:var(--color-text-secondary);min-width:135px;width:1%}.source-col{display:table-cell;color:var(--color-text-tertiary);font-size:var(--font-size-sm);min-width:80px;width:1%}.action-col{width:60px;text-align:center}.badge{display:inline-block;margin:0;padding:.125rem var(--space-1)}.badge-concentration{margin:0 var(--space-1) 0 0}.badge-ritual{margin:0 0 0 var(--space-1)}.spell-table .duration-col,.spell-table .school-col,.spell-table .components-col,.spell-table .classes-col,.spell-table .source-col{display:none}@container table-container (min-width: 650px){.spell-table .duration-col{display:table-cell}}@container table-container (min-width: 750px){.spell-table .school-col{display:table-cell}}@container table-container (min-width: 900px){.spell-table .classes-col{display:table-cell}}@container table-container (min-width: 975px){.spell-table .components-col{display:table-cell}}@container table-container (min-width: 1075px){.spell-table .source-col{display:table-cell}}}@media(min-width:1024px){.spell-table{font-size:var(--font-size-base)}.spell-table th,.spell-table td{padding:var(--space-3) var(--space-4)}}.spell-slots-input{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex-shrink:0}.spell-slots-input .spell-slots-grid{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.spell-slots-input .spell-slot-item{display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.spell-slots-input .spell-slots-header{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);text-align:center}.spell-slots-input .level-badge{width:30px;height:30px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);line-height:var(--line-height-none);background:light-dark(rgba(100,116,139,.2),rgba(100,116,139,.15));border:1px solid light-dark(#64748b,#475569);color:light-dark(#334155,#cbd5e1);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;box-sizing:border-box;justify-self:center;align-self:center}.spell-slots-input .level-badge span{display:block;line-height:var(--line-height-none)}.spell-slots-input .level-badge[data-level="1"]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#8b5cf6);color:light-dark(#6d28d9,#ddd6fe)}.spell-slots-input .level-badge[data-level="2"]{background:light-dark(rgba(129,140,248,.2),rgba(129,140,248,.15));border-color:light-dark(#6366f1,#4f46e5);color:light-dark(#3730a3,#c7d2fe)}.spell-slots-input .level-badge[data-level="3"]{background:light-dark(rgba(59,130,246,.2),rgba(59,130,246,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e3a8a,#bfdbfe)}.spell-slots-input .level-badge[data-level="4"]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#60a5fa,#3b82f6);color:light-dark(#1e3a8a,#bfdbfe)}.spell-slots-input .level-badge[data-level="5"]{background:light-dark(rgba(103,232,249,.2),rgba(103,232,249,.15));border-color:light-dark(#22d3ee,#06b6d4);color:light-dark(#164e63,#cffafe)}.spell-slots-input .level-badge[data-level="6"]{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border-color:light-dark(#4ade80,#22c55e);color:light-dark(#14532d,#dcfce7)}.spell-slots-input .level-badge[data-level="7"]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#facc15,#eab308);color:light-dark(#713f12,#fef9c3)}.spell-slots-input .level-badge[data-level="8"]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#7c2d12,#fed7aa)}.spell-slots-input .level-badge[data-level="9"]{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#7f1d1d,#fecaca)}.spell-slots-input .spell-slot-controls{display:flex;flex-direction:column;align-items:center;gap:0;background:transparent}.spell-slots-input .spell-slot-btn{width:30px;height:14px;padding:0;display:flex;align-items:center;justify-content:center;background:var(--color-bg-input);border:var(--input-border);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base)}.spell-slots-input .spell-slot-btn:hover:not(:disabled){background:var(--color-hover);color:var(--color-text-primary);border-color:var(--color-border-focus)}.spell-slots-input .spell-slot-btn:disabled{opacity:.3;cursor:not-allowed}.spell-slots-input .spell-slot-btn-up{border-radius:var(--radius-sm) var(--radius-sm) 0 0}.spell-slots-input .spell-slot-btn-down{border-radius:0 0 var(--radius-sm) var(--radius-sm)}.spell-slots-input input.spell-slot-input{padding:0 2px;background:var(--color-bg-input);border:var(--input-border);border-top:none;border-bottom:none;border-radius:0;color:var(--color-text-primary);font-size:var(--font-size-md);line-height:24px;transition:all var(--transition-base);width:30px;max-width:30px;min-width:30px;text-align:center;height:24px;box-sizing:border-box}.spell-slots-input input.spell-slot-input.zero-value{opacity:.4}.spell-slots-input .spell-slot-input:focus{outline:none;border-color:var(--color-border-focus)}.spell-slots-input .spell-slot-input::-webkit-inner-spin-button,.spell-slots-input .spell-slot-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.spell-slots-input .spell-slot-input[type=number]{-moz-appearance:textfield}.dialog.create-spellbook-modal{max-width:600px;width:90%}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);text-align:center}.required{color:var(--color-error)}.form-input{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:var(--input-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-md);transition:all var(--transition-base)}.form-input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--shadow-focus)}.ability-buttons{display:flex;gap:var(--space-3)}.ability-btn{flex:1;padding:var(--space-3) var(--space-4);background:var(--color-bg-input);border:2px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.ability-btn:hover{border-color:var(--color-accent);color:var(--color-text-primary);background:var(--color-hover)}.ability-btn.active{background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-text-link);font-weight:var(--font-weight-bold)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-4);align-items:end}.form-row .form-group{margin-bottom:0;display:block}.form-row .form-group label{text-align:center;margin-bottom:var(--space-2)}.form-help-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-1) 0 var(--space-3) 0}.error-message{padding:var(--space-3) var(--space-4);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error-text);font-size:var(--font-size-base);margin-bottom:var(--space-4)}@media(min-width:768px){.form-group label,.form-row .form-group label{text-align:left}}.select-spellbook-modal{max-width:500px;width:90%}.select-spellbook-modal h3{margin-bottom:var(--space-2)}.modal-description{color:var(--color-text-secondary);margin-bottom:var(--space-4);font-size:var(--font-size-md)}.btn-create-new{width:100%;padding:var(--space-3);margin:0 0 var(--space-3) 0;background:var(--color-bg-secondary);border:2px dashed var(--color-primary);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.btn-create-new:hover{background:var(--color-hover);border-color:var(--color-primary);color:var(--color-primary)}.search-filter{margin-bottom:var(--space-4)}.search-input{width:100%;padding:var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-md);font-family:inherit;transition:all var(--transition-base)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea1a}.search-input::placeholder{color:var(--color-text-secondary)}.spellbook-selector-item.selected,.spellbook-selector-item.selected:hover{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.spellbook-selector-item.selected strong,.spellbook-selector-item.selected span{color:var(--color-text-on-primary)}.spellbook-selector-item:focus,.spellbook-selector-item:focus-visible{outline:none}.spellbook-selector-item:focus-visible{box-shadow:0 0 0 3px var(--color-primary)}.mobile-sort-chips{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) 0;margin-bottom:var(--space-2)}.mobile-sort-label{padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.mobile-sort-chips-row{display:flex;gap:var(--space-2)}.mobile-sort-chip{padding:var(--space-2) var(--space-3);background:var(--color-bg-input);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.mobile-sort-chip:hover{border-color:var(--color-accent);color:var(--color-text-link)}.mobile-sort-chip.active{background:var(--color-accent-light);border-color:var(--color-accent);color:var(--color-text-link);font-weight:var(--font-weight-semibold)}@media(min-width:768px){.mobile-sort-chips{display:none}}.floating-action-container{position:fixed;bottom:var(--space-16);right:var(--space-4);z-index:1000;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.floating-action-container.visible{animation:fadeIn .3s ease}.floating-action-container.hidden{animation:fadeOut .3s ease}.floating-action-btn{width:3rem;height:3rem;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center;background-color:var(--primary-color);color:#fff;border:none;cursor:pointer;box-shadow:var(--shadow-md);transition:all var(--transition-slow)}.floating-action-btn:active{transform:scale(.95)}.floating-action-icon{width:28px;height:28px;min-width:28px;min-height:28px;flex-shrink:0;transition:transform .3s ease}.floating-action-label{font-size:.75rem;color:var(--color-text-primary);font-weight:var(--font-weight-medium);white-space:nowrap;opacity:0;transition:opacity .3s ease;display:none}.floating-add-spells-wrapper,.floating-back-to-top-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@media(min-width:768px){.floating-action-container{bottom:5.5rem}}@media(hover:hover){.floating-action-label{display:block}.floating-add-spells-wrapper:hover .floating-action-btn,.floating-back-to-top-wrapper:hover .floating-action-btn{background-color:#2563eb;box-shadow:0 6px 16px #00000040}.floating-add-spells-wrapper:hover .floating-action-icon,.floating-back-to-top-wrapper:hover .floating-action-icon{transform:translateY(-3px)}.floating-add-spells-wrapper:hover .floating-action-label,.floating-back-to-top-wrapper:hover .floating-action-label{opacity:1}}@media(min-width:1024px){.floating-action-container{bottom:var(--space-8);right:var(--space-8)}.floating-action-btn{width:3.5rem;height:3.5rem}.floating-action-icon{width:33px;height:33px;min-width:33px;min-height:33px}}@media(prefers-color-scheme:dark){.floating-action-btn{background-color:var(--primary-color);box-shadow:0 4px 12px #0000004d}.floating-action-label{color:var(--color-text-primary)}}.confirm-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-confirm);padding:var(--space-4);pointer-events:auto}.confirm-dialog{background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:100%;width:100%;margin:var(--space-4);animation:slideIn var(--transition-fast) ease-out}.confirm-dialog-header{padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border-primary)}.confirm-dialog-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.confirm-dialog-body{padding:var(--space-6)}.confirm-dialog-message{margin:0;font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:pre-wrap}.confirm-dialog-footer{padding:var(--space-4) var(--space-6) var(--space-6);display:flex;flex-direction:column-reverse;gap:var(--space-3);justify-content:flex-end;border-top:1px solid var(--color-border-primary)}.confirm-dialog-footer button{padding:var(--btn-padding-md);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none;width:100%}.confirm-dialog-footer .btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.confirm-dialog-footer .btn-secondary:hover{background:var(--color-hover-strong)}.confirm-dialog-footer .btn-secondary:focus{outline:2px solid var(--color-accent);outline-offset:2px}.confirm-dialog-footer .btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.confirm-dialog-footer .btn-primary:hover{background:var(--color-primary-hover)}.confirm-dialog-footer .btn-primary:focus{outline:2px solid var(--color-primary);outline-offset:2px}.confirm-dialog-footer .btn-danger{background:var(--color-error);color:#fff}.confirm-dialog-footer .btn-danger:hover{background:var(--color-error-hover)}.confirm-dialog-footer .btn-warning{background:var(--color-warning);color:var(--color-warning-text)}.confirm-dialog-footer .btn-warning:hover{background:var(--color-warning-hover)}.confirm-dialog-footer .btn-info{background:var(--color-info);color:#fff}.confirm-dialog-footer .btn-info:hover{background:var(--color-info-hover)}.confirm-dialog-danger .confirm-dialog-title{color:var(--color-error)}.confirm-dialog-warning .confirm-dialog-title{color:var(--color-warning)}.confirm-dialog-info .confirm-dialog-title{color:var(--color-info)}@media(min-width:768px){.confirm-dialog{max-width:480px;margin:0}.confirm-dialog-footer{flex-direction:row}.confirm-dialog-footer button{width:auto;min-width:80px}}.alert-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.alert-dialog{background:var(--color-bg-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:100%;width:100%;margin:var(--space-4);animation:slideIn var(--transition-fast) ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.alert-dialog-header{padding:var(--space-6) var(--space-6) var(--space-4);border-bottom:1px solid var(--color-border-primary)}.alert-dialog-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-heading)}.alert-dialog-body{padding:var(--space-6)}.alert-dialog-message{margin:0;font-size:var(--font-size-md);line-height:var(--line-height-normal);color:var(--color-text-secondary);white-space:pre-wrap}.alert-dialog-footer{padding:var(--space-4) var(--space-6) var(--space-6);display:flex;justify-content:flex-end;border-top:1px solid var(--color-border-primary)}.alert-dialog-footer button{padding:var(--btn-padding-md);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none;width:100%}.alert-dialog-footer .btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.alert-dialog-footer .btn-primary:hover{background:var(--color-primary-hover)}.alert-dialog-footer .btn-primary:focus{outline:2px solid var(--color-primary);outline-offset:2px}.alert-dialog-footer .btn-error{background:var(--color-error);color:#fff}.alert-dialog-footer .btn-error:hover{background:var(--color-error-hover)}.alert-dialog-footer .btn-success{background:var(--color-success);color:#fff}.alert-dialog-footer .btn-success:hover{background:var(--color-success-hover)}.alert-dialog-footer .btn-warning{background:var(--color-warning);color:var(--color-warning-text)}.alert-dialog-footer .btn-warning:hover{background:var(--color-warning-hover)}.alert-dialog-footer .btn-info{background:var(--color-info);color:#fff}.alert-dialog-footer .btn-info:hover{background:var(--color-info-hover)}.alert-dialog-error .alert-dialog-title{color:var(--color-error)}.alert-dialog-success .alert-dialog-title{color:var(--color-success)}.alert-dialog-warning .alert-dialog-title{color:var(--color-warning)}.alert-dialog-info .alert-dialog-title{color:var(--color-info)}@media(min-width:768px){.alert-dialog{max-width:480px;margin:0}.alert-dialog-footer button{width:auto;min-width:100px}}.loading-spinner-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.loading-spinner-center{justify-content:center;min-height:200px}.loading-spinner-inline{display:inline-flex;flex-direction:row;gap:var(--space-2);min-height:auto}.loading-spinner{display:inline-block;position:relative}.loading-spinner-small{width:24px;height:24px}.loading-spinner-medium{width:40px;height:40px}.loading-spinner-large{width:64px;height:64px}.loading-spinner-circle{width:100%;height:100%;border:3px solid var(--color-border-primary);border-top-color:var(--color-primary);border-radius:50%;animation:loading-spinner-rotate .8s linear infinite}.loading-spinner-small .loading-spinner-circle{border-width:2px}.loading-spinner-large .loading-spinner-circle{border-width:4px}@keyframes loading-spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-spinner-message{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center}.spellbook-actions-menu{position:relative;display:inline-block}.spellbook-actions-trigger{display:flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:var(--space-2);background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.spellbook-actions-trigger:hover{background:var(--color-hover-strong);border-color:var(--color-border-secondary)}.spellbook-actions-dropdown{position:fixed;min-width:180px;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:var(--z-dropdown);overflow:hidden}.spellbook-actions-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;border-bottom:1px solid var(--color-border-secondary);color:var(--color-text-primary);font-size:var(--font-size-md);text-align:left;cursor:pointer;transition:background var(--transition-base)}.spellbook-actions-item:last-child{border-bottom:none}.spellbook-actions-item:hover{background:var(--color-hover)}.spellbook-actions-item svg{flex-shrink:0;color:var(--color-text-secondary)}.spellbook-actions-item:hover svg{color:var(--color-text-primary)}.spellbook-actions-item-danger{color:var(--color-error)}.spellbook-actions-item-danger svg{color:var(--color-error)}.spellbook-actions-item-danger:hover{background:var(--color-error-bg);color:var(--color-error)}.spellbook-actions-item-danger:hover svg{color:var(--color-error)}.spellbook-list{padding:var(--space-4)}.spellbook-list-header{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-4);margin-bottom:var(--space-6)}.spellbook-list-header h2{margin:0;font-size:var(--font-size-2xl);text-align:center}.header-actions{display:flex;flex-direction:column;gap:var(--space-2)}.header-actions button{width:100%}.spellbooks-empty{text-align:center;padding:var(--space-16) var(--space-8);color:var(--color-text-secondary)}.spellbooks-empty p{margin:var(--space-2) 0}.spellbook-search{position:relative;margin-bottom:var(--space-6)}.spellbook-search .search-input{width:100%;padding:var(--space-3) var(--space-10) var(--space-3) var(--space-4);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-md);background:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-base)}.spellbook-search .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-primary)}.spellbook-search .btn-clear-search{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);display:flex;align-items:center;justify-content:center;transition:color var(--transition-base)}.spellbook-search .btn-clear-search:hover{color:var(--color-text-primary)}.spellbooks-table{display:block;width:100%;border-collapse:collapse;background:var(--color-bg-primary)}.spellbooks-table thead{display:none}.spellbooks-table tbody{display:block}.spellbooks-table tbody tr{display:grid;grid-template-columns:auto auto auto;grid-template-rows:auto auto;margin-bottom:var(--space-4);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-bg-secondary);box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:background var(--transition-base)}.spellbooks-table tbody tr:hover{background:var(--color-hover)}.spellbooks-table td{padding:0;border-bottom:none;font-size:var(--font-size-md)}.spellbook-name{grid-row:1;grid-column:1 / -1;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-secondary);word-wrap:break-word;overflow-wrap:break-word;hyphens:auto;text-align:left}.spellbook-spell-count{grid-row:2;grid-column:1;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:left}.spellbook-ability{grid-row:2;grid-column:2;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.spellbook-updated{grid-row:2;grid-column:3;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:right}.mobile-stat-icon{display:inline-block;vertical-align:middle;margin-right:var(--space-1);color:var(--color-text-primary)}.spellbook-attack,.spellbook-save-dc,.spellbook-list-actions{display:none}@media(min-width:375px){.spellbooks-table tbody tr{grid-template-columns:auto auto auto auto}.spellbook-attack{display:block;grid-row:2;grid-column:3;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.spellbook-updated{grid-column:4}}@media(min-width:425px){.spellbooks-table tbody tr{grid-template-columns:auto auto auto auto auto}.spellbook-save-dc{display:block;grid-row:2;grid-column:4;font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.spellbook-updated{grid-column:5}}.btn-primary{padding:var(--space-3) var(--space-4);background:var(--color-primary);color:var(--color-text-on-primary);border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-base)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base)}.btn-secondary:hover:not(:disabled){background:var(--color-hover-strong)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary-small{padding:var(--btn-padding-sm);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;transition:all var(--transition-base)}.btn-secondary-small:hover{background:var(--color-hover-strong)}.btn-danger-small{padding:var(--btn-padding-sm);background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-base);cursor:pointer;transition:background var(--transition-base)}.btn-danger-small:hover{background:var(--color-error-hover)}.btn-icon-secondary{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:32px!important;height:32px;padding:0;background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.btn-icon-secondary:hover{background:var(--color-hover-strong)}.btn-icon-danger{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:32px!important;height:32px;padding:0;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base)}.btn-icon-danger:hover{background:var(--color-error-hover)}.dialog-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.dialog{background:var(--color-bg-primary);padding:var(--space-6);border-radius:var(--radius-xl);min-width:auto;max-width:95vw;max-height:calc(100vh - var(--space-8));overflow-y:auto;box-shadow:var(--shadow-xl)}.dialog h3{margin:0 0 var(--space-6) 0;font-size:var(--font-size-xl)}.form-group{margin-bottom:var(--space-6)}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-weight-medium)}.form-group input{width:100%;padding:var(--input-padding);border:var(--input-border);border-radius:var(--radius-md);font-size:var(--font-size-md);background:var(--color-bg-primary);color:var(--color-text-primary)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-primary)}.dialog-actions{display:flex;flex-direction:column-reverse;gap:var(--space-2);margin-top:var(--space-6)}.dialog-actions button{width:100%}.hidden-file-input{display:none}.context-menu{position:fixed;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:var(--z-modal);min-width:180px;overflow:hidden;transform:translate(-50%,-100%);margin-top:-10px}.context-menu-item{width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;text-align:left;color:var(--color-text-primary);font-size:var(--font-size-md);cursor:pointer;transition:background var(--transition-base);border-bottom:1px solid var(--color-border-secondary);display:flex;align-items:center;gap:var(--space-3)}.context-menu-item svg{flex-shrink:0;color:var(--color-text-secondary)}.context-menu-item:last-child{border-bottom:none}.context-menu-item:hover{background:var(--color-hover)}.context-menu-item-danger{color:var(--color-error)}.context-menu-item-danger svg{color:var(--color-error)}.context-menu-item-danger:hover{background:var(--color-error-bg)}@media(min-width:768px){.spellbook-list{padding:0}.spellbook-list-header{flex-direction:row;justify-content:space-between;align-items:center;gap:0;margin-bottom:var(--space-8)}.spellbook-list-header h2{font-size:var(--font-size-3xl);text-align:left}.header-actions{flex-direction:row;gap:var(--space-3);align-items:center}.header-actions button{width:auto}.spellbooks-table{display:table;width:100%;max-width:100%;background:var(--color-bg-secondary);border-radius:var(--radius-lg);overflow:hidden}.spellbooks-table thead{display:table-header-group;background:var(--color-bg-overlay);border-bottom:2px solid var(--color-border-primary)}.spellbooks-table th{padding:var(--space-2);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text-heading)}.spellbooks-table th.sortable-header{padding:0}.sort-button{width:100%;height:100%;background:none;border:none;padding:var(--space-2);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--color-text-heading);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:background var(--transition-base)}.sort-button:hover{background:var(--color-hover)}.spellbooks-table tbody{display:table-row-group}.spellbooks-table tbody tr{display:table-row;margin-bottom:0;border:none;border-radius:0;padding:0;background:transparent;box-shadow:none;border-bottom:1px solid var(--color-border-primary)}.spellbooks-table tbody tr:hover{background:var(--color-hover)}.spellbooks-table tbody tr:last-child{border-bottom:none}.spellbooks-table td{display:table-cell;padding:var(--space-4);border-bottom:none}.spellbook-name{display:table-cell;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);margin-bottom:0;padding-bottom:0;border-bottom:none;word-wrap:break-word;overflow-wrap:break-word}.spellbook-spell-count,.spellbook-updated{display:table-cell;font-size:var(--font-size-md);margin-right:0}.mobile-stat-icon{display:none}.spellbook-updated{font-size:var(--font-size-base)}.spellbook-ability,.spellbook-attack,.spellbook-save-dc{display:table-cell!important;color:var(--color-text-secondary)}.spellbook-list-actions{display:table-cell;text-align:center;vertical-align:middle}.btn-primary,.btn-secondary{padding:var(--btn-padding-md)}.dialog{min-width:400px;max-width:90vw;padding:var(--space-8)}.dialog h3{font-size:var(--font-size-2xl)}.dialog-actions{flex-direction:row;justify-content:flex-end;gap:var(--space-4)}.dialog-actions button{width:auto}}@media(min-width:1024px){.spellbooks-table th,.sort-button{white-space:nowrap}}.spell-context-menu{position:fixed;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xl);z-index:var(--z-modal);min-width:200px;overflow:hidden;transform:translate(-50%,-100%);margin-top:calc(-1 * var(--space-3))}.spell-context-menu-header{padding:var(--space-3) var(--space-4);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);color:var(--color-text-heading);background:var(--color-bg-overlay);border-bottom:1px solid var(--color-border-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spell-context-menu-item{width:100%;padding:var(--space-3) var(--space-4);background:none;border:none;text-align:left;color:var(--color-text-primary);font-size:var(--font-size-md);cursor:pointer;transition:background var(--transition-base);border-bottom:1px solid var(--color-border-secondary)}.spell-context-menu-item:last-child{border-bottom:none}.spell-context-menu-item:hover{background:var(--color-hover)}.spell-context-menu-item-danger{color:var(--color-error)}.spell-context-menu-item-danger:hover{background:var(--color-error-bg)}.spell-slots-display{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex-shrink:0}.spell-slots-grid{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.spell-slot-item{display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.spell-slots-header{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);text-align:center}.header-label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);white-space:nowrap}.spell-slots-grid .level-badge{width:30px;height:30px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);line-height:var(--line-height-none);background:light-dark(rgba(100,116,139,.2),rgba(100,116,139,.15));border:1px solid light-dark(#64748b,#475569);color:light-dark(#334155,#cbd5e1);display:flex;align-items:center;justify-content:center}.spell-slots-grid .level-badge[data-level="1"]{background:light-dark(rgba(196,181,253,.2),rgba(196,181,253,.15));border-color:light-dark(#a78bfa,#8b5cf6);color:light-dark(#6d28d9,#ddd6fe)}.spell-slots-grid .level-badge[data-level="2"]{background:light-dark(rgba(129,140,248,.2),rgba(129,140,248,.15));border-color:light-dark(#6366f1,#4f46e5);color:light-dark(#3730a3,#c7d2fe)}.spell-slots-grid .level-badge[data-level="3"]{background:light-dark(rgba(59,130,246,.2),rgba(59,130,246,.15));border-color:light-dark(#3b82f6,#2563eb);color:light-dark(#1e3a8a,#bfdbfe)}.spell-slots-grid .level-badge[data-level="4"]{background:light-dark(rgba(96,165,250,.2),rgba(96,165,250,.15));border-color:light-dark(#60a5fa,#3b82f6);color:light-dark(#1e3a8a,#bfdbfe)}.spell-slots-grid .level-badge[data-level="5"]{background:light-dark(rgba(103,232,249,.2),rgba(103,232,249,.15));border-color:light-dark(#22d3ee,#06b6d4);color:light-dark(#164e63,#cffafe)}.spell-slots-grid .level-badge[data-level="6"]{background:light-dark(rgba(134,239,172,.2),rgba(134,239,172,.15));border-color:light-dark(#4ade80,#22c55e);color:light-dark(#14532d,#dcfce7)}.spell-slots-grid .level-badge[data-level="7"]{background:light-dark(rgba(253,224,71,.2),rgba(253,224,71,.15));border-color:light-dark(#facc15,#eab308);color:light-dark(#713f12,#fef9c3)}.spell-slots-grid .level-badge[data-level="8"]{background:light-dark(rgba(251,146,60,.2),rgba(251,146,60,.15));border-color:light-dark(#fb923c,#f97316);color:light-dark(#7c2d12,#fed7aa)}.spell-slots-grid .level-badge[data-level="9"]{background:light-dark(rgba(239,68,68,.2),rgba(239,68,68,.15));border-color:light-dark(#ef4444,#dc2626);color:light-dark(#7f1d1d,#fecaca)}.spell-slot-count{width:30px;height:30px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-md);background:var(--color-bg-input);border:var(--input-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.spellbook-detail{padding:0;max-width:1600px;margin:0 auto}.spellbook-detail-header{margin-bottom:var(--space-4)}.btn-back{padding:var(--space-2) var(--space-4);background:transparent;color:var(--color-primary);border:none;font-size:var(--font-size-md);cursor:pointer;margin-bottom:var(--space-4);transition:opacity var(--transition-fast)}.btn-back:hover{opacity:.7}.back-link{display:inline-flex;align-items:center;padding:var(--space-2) 0;background:transparent;color:var(--color-text-link);border:none;font-size:var(--font-size-base);cursor:pointer;margin-bottom:var(--space-3);transition:opacity var(--transition-fast);text-decoration:none}.back-link:hover{opacity:.7;text-decoration:underline}.spellbook-header-content{flex:1}.spellbook-header-top{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);margin-bottom:var(--space-2)}.spellbook-header-top h2{margin:0;font-size:var(--font-size-2xl)}.spellbook-header-top .header-actions{display:flex;flex-direction:row;gap:var(--space-2)}.spellbook-header-top .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);flex:1}.spellbook-header-top .btn-secondary:hover{background:var(--color-hover-strong)}.spellbook-header-top .btn-secondary svg{flex-shrink:0}.spellbook-header-top .btn-danger{background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}.spellbook-header-top .btn-danger:hover{background:var(--color-error);color:#fff}.spellbook-stats{color:var(--color-text-secondary);margin:0 0 var(--space-3) 0}.spellbook-attributes{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding:var(--space-4);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border-primary)}.attributes-group{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;gap:var(--space-1);justify-content:center;width:100%}.attributes-group>*{display:flex;align-items:center;justify-content:center}.attributes-group strong{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);display:flex;align-items:center;justify-content:center}.attributes-group span{color:var(--color-text-primary);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold)}.spell-slots-table{border-collapse:collapse;width:auto;display:table}.spell-slots-table thead{display:table-header-group}.spell-slots-table tbody{display:table-row-group}.spell-slots-table tr{display:table-row}.spell-slots-table th,.spell-slots-table td{display:table-cell;padding:var(--space-2) var(--space-3);text-align:center;border:1px solid var(--color-border-primary)}.spell-slots-table th{background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase}.spell-slots-table td{background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);min-width:40px}.spellbook-detail-empty{text-align:center;padding:var(--space-16) var(--space-8);color:var(--color-text-secondary)}.spellbook-detail-empty p{margin:var(--space-2) 0}.spellbook-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);padding:var(--space-4);background:var(--color-bg-overlay);border-radius:var(--radius-md);border:1px solid var(--color-border-primary);gap:var(--space-4);flex-wrap:wrap}.spellbook-actions{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;gap:var(--space-3);flex:1;min-height:40px}.spellbook-actions .btn-select-toggle{grid-column:1 / -1;grid-row:1}.spellbook-actions .btn-prep-toggle{grid-column:1;grid-row:2}.spellbook-actions .btn-danger{grid-column:2;grid-row:2;background:var(--color-error-bg);color:var(--color-error);border-color:var(--color-error)}.spellbook-actions .filter-checkbox-label{grid-column:1 / -1;grid-row:3;justify-content:center}.spellbook-actions .btn-danger:hover:not(:disabled){background:var(--color-error);color:#fff}.spellbook-actions .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.spellbook-actions .btn-prep{background:var(--color-warning);color:var(--color-text-on-primary);border-color:var(--color-warning);font-weight:var(--font-weight-semibold)}.spellbook-actions .btn-prep:hover:not(:disabled){background:var(--color-warning-hover)}.spellbook-actions .btn-unprep{background:var(--color-neutral);color:var(--color-text-on-primary);border-color:var(--color-neutral)}.spellbook-actions .btn-unprep:hover:not(:disabled){background:var(--color-neutral-hover)}.selection-count-text{width:100%;text-align:center;font-size:var(--font-size-md);color:var(--color-text-secondary)}.filter-checkbox-label{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;user-select:none}.filter-checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.filter-checkbox-label span{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.filter-checkbox-label .prepared-text{color:var(--color-prepared);font-weight:var(--font-weight-semibold)}.spellbook-table-container{margin-top:var(--space-4);overflow-x:auto;container-type:inline-size;container-name:table-container}.spellbook-table .checkbox-col{width:60px;text-align:center}.spellbook-table .checkbox-col input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-accent)}.spellbook-table .prepared-row{background:var(--color-prepared-row-bg);border-left-color:var(--color-prepared-row-border)}.spellbook-table .prepared-row:hover{background:var(--color-prepared-row-hover)}.spellbook-table .prepared-row.selected-row{background:var(--color-prepared-selected-bg);border-left-color:var(--color-prepared)}.spellbook-table .prepared-row.selected-row:hover{background:var(--color-prepared-selected-hover)}@media(min-width:375px){.spellbook-header-top .btn-secondary{padding:var(--space-2) var(--space-4);font-size:var(--font-size-md)}}@media(min-width:450px){.spellbook-actions{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto}.spellbook-actions .btn-select-toggle{grid-column:1;grid-row:1}.spellbook-actions .btn-prep-toggle{grid-column:2;grid-row:1}.spellbook-actions .btn-danger{grid-column:3;grid-row:1}.spellbook-actions .filter-checkbox-label{grid-column:1 / -1;grid-row:2}}@media(min-width:768px){.spellbook-header-top{flex-direction:row;align-items:center;justify-content:space-between;gap:0}.spellbook-header-top .header-actions{gap:var(--space-3)}.spellbook-header-top .btn-secondary{flex:0 1 auto}.spellbook-attributes{flex-direction:row;justify-content:space-between;align-items:stretch}.attributes-group{gap:var(--space-4);grid-template-rows:auto 1fr;height:100%;width:auto;justify-content:start}.attributes-group span{font-size:var(--font-size-3xl)}.spellbook-actions{display:flex;flex:1;gap:var(--space-3);justify-content:flex-start;align-items:center}.spellbook-actions .btn-select-toggle{display:none}.spellbook-actions .filter-checkbox-label{margin-left:auto}}.spell-detail-page{min-height:100vh;background:var(--color-bg-primary);padding:var(--space-4)}.spell-detail-page-content{max-width:800px;margin:0 auto;background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-lg);border:1px solid var(--color-border-primary)}.spell-detail-page-header{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:2px solid var(--color-border-primary)}.spell-detail-page-header h1{margin:0 0 var(--space-4) 0;font-size:var(--font-size-2xl);color:var(--color-text-heading);text-align:center}.spell-detail-page-meta{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-lg)}.spell-detail-page-details{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4);background:var(--color-hover);border-radius:var(--radius-lg);font-size:var(--font-size-base);border:1px solid var(--color-border-primary)}.spell-detail-page-details strong{display:block;margin-bottom:var(--space-2);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}.spell-detail-page-components strong{margin-bottom:var(--space-2)}.detail-badges-container{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.spell-detail-page-description{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);margin:var(--space-6) 0;color:var(--color-text-primary)}.spell-detail-page-higher-levels{margin:var(--space-6) 0;padding:var(--space-6);background:var(--color-primary-lighter);border-radius:var(--radius-lg);border-left:3px solid var(--color-primary);font-size:var(--font-size-lg);line-height:var(--line-height-relaxed)}.spell-detail-page-higher-levels strong{display:block;margin-bottom:var(--space-3);font-size:var(--font-size-lg);color:light-dark(#ca8a04,#fbbf24);font-weight:var(--font-weight-semibold)}.spell-detail-page-footer{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-secondary);font-size:var(--font-size-lg);display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap}.spell-detail-page-classes{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.spell-detail-page-nav{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-border-secondary);text-align:center}.spell-detail-page-nav a{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);transition:color var(--transition-base)}.spell-detail-page-nav a:hover{color:var(--color-primary-dark);text-decoration:underline}.spell-detail-page-loading,.spell-detail-page-error{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);text-align:center}.spell-detail-page-error h1{color:var(--color-text-heading);margin-bottom:var(--space-4)}.spell-detail-page-error p{font-size:var(--font-size-lg)}.spell-detail-page-error a{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-semibold)}.spell-detail-page-error a:hover{text-decoration:underline}@media(min-width:768px){.spell-detail-page{padding:var(--space-8) var(--space-4)}.spell-detail-page-content{padding:var(--space-8)}.spell-detail-page-header h1{font-size:var(--font-size-3xl)}.spell-detail-page-details{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.about-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.about-modal{background:var(--color-bg-primary);border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--shadow-2xl);outline:none}.about-modal:focus-visible{box-shadow:var(--shadow-2xl),0 0 0 3px light-dark(rgba(6,182,212,.3),rgba(6,182,212,.3))}.about-modal-header{padding:var(--space-6);border-bottom:2px solid var(--color-border-primary);background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:space-between;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.about-modal-header h2{margin:0;font-size:var(--font-size-xl);color:var(--color-text-primary)}.about-modal-close{background:transparent;border:none;font-size:var(--font-size-3xl);line-height:var(--line-height-none);cursor:pointer;color:var(--color-text-secondary);padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-base);flex-shrink:0}.about-modal-close:hover{background:var(--color-hover);color:var(--color-text-primary)}.about-modal-body{overflow-y:auto;padding:var(--space-6);flex:1}.about-modal-body p{margin:0 0 var(--space-4);line-height:var(--line-height-relaxed);color:var(--color-text-primary)}.about-modal-body p:last-of-type{margin-bottom:var(--space-4)}.about-reasons{font-style:italic;color:var(--color-text-secondary);padding-left:var(--space-4);line-height:1.8}.about-modal-body p.about-signature{text-align:right;font-style:italic;margin-top:var(--space-6);margin-bottom:var(--space-6);color:var(--color-text-secondary)}.about-avatar{display:flex;justify-content:center;margin:var(--space-4) 0}.about-avatar-img{width:100px;height:auto;image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.about-links{display:flex;gap:var(--space-3);justify-content:center;align-items:center;margin-bottom:var(--space-4)}.about-link-button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1;padding:var(--space-3) var(--space-4);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-decoration:none;transition:all var(--transition-base);cursor:pointer}.about-link-button span{display:none}.about-link-button:hover{background:var(--color-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.about-link-button svg{flex-shrink:0}.about-link-kofi{background:var(--color-donate);color:#fff;border-color:var(--color-donate)}.about-link-kofi:hover{background:var(--color-donate-hover);border-color:var(--color-donate-hover);color:#fff}@media(min-width:425px){.about-link-button{flex:initial}.about-link-button span{display:inline}}.about-modal-footer{padding:var(--space-4) var(--space-6);border-top:2px solid var(--color-border-primary);background:var(--color-bg-secondary);display:flex;justify-content:flex-end;gap:var(--space-3);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.app-footer{position:fixed;bottom:0;left:0;right:0;z-index:90;background:var(--color-bg-primary);border-top:1px solid var(--color-border-secondary);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3)}.footer-button{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1;padding:var(--space-2);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);text-decoration:none;white-space:nowrap}.footer-button span{display:none}.footer-button svg{width:18px;height:18px}.footer-button:hover{background:var(--color-hover);color:var(--color-text-primary);transform:translateY(-2px)}.footer-button:active{transform:translateY(0)}.footer-button-about svg{flex-shrink:0}.footer-button-donate{background:var(--color-donate);color:#fff;border-color:var(--color-donate)}.footer-button-donate:hover{background:var(--color-donate-hover);border-color:var(--color-donate-hover);color:#fff}.footer-button-donate svg{flex-shrink:0}@media(min-width:375px){.app-footer{gap:var(--space-3)}.footer-button{flex:initial;padding:var(--space-2) var(--space-4)}.footer-button span{display:inline}}@media(min-width:768px){.app-footer{gap:var(--space-4);padding:var(--space-3) var(--space-4)}.footer-button{padding:var(--space-3) var(--space-5);font-size:var(--font-size-md)}.footer-button svg{width:20px;height:20px}}@media(min-width:1280px){.app-footer{display:none}}.filter-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-4);background:var(--color-bg-overlay);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.filter-header .btn-secondary,.filter-header .btn-clear-filters{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1 1 calc(50% - var(--space-1));font-size:var(--font-size-md);padding:var(--space-2) var(--space-4);white-space:nowrap}.filter-header .search-box{position:relative;flex:1 1 100%;order:3}.filter-header .search-input{width:100%;padding-right:var(--space-10)}.filter-header .btn-clear-search{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-1);display:flex;align-items:center;justify-content:center;transition:color var(--transition-base)}.filter-header .btn-clear-search:hover{color:var(--color-text-primary)}.filter-header .filter-results-text{flex:1 1 100%;text-align:center;order:4}@media(min-width:768px){.filter-header{gap:var(--space-3)}.filter-header .btn-secondary,.filter-header .btn-clear-filters,.filter-header .search-input{height:42px}.filter-header .btn-secondary,.filter-header .btn-clear-filters{flex:0 0 auto}.filter-header .search-box{flex:1 1 0;min-width:150px;order:0}.filter-header .filter-results-text{flex:1 1 100%;text-align:center;order:10}}body{overflow-x:hidden}.app{display:flex;flex-direction:column;min-height:100vh;max-width:100vw;overflow-x:hidden;padding-top:0}.app-header{position:static;display:block;padding:0;box-shadow:none;border-bottom:none;background:var(--color-bg-primary)}.app-title{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-3) var(--space-4);margin-top:56px;background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary);gap:var(--space-1)}.app-header h1{font-size:var(--font-size-xl);margin:0;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-subtitle{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0;font-weight:var(--font-weight-normal)}.app-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;flex-direction:row;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary);box-shadow:0 2px 8px #0000001a}.nav-link{padding:var(--space-2) var(--space-3);background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);display:flex;flex:1;text-align:center;justify-content:center;align-items:center;gap:var(--space-2);text-decoration:none}.nav-link:hover{background:var(--color-hover);color:var(--color-text-primary)}.nav-link.active{background:var(--color-primary);color:var(--color-text-on-primary);border-color:var(--color-primary)}.nav-link-feedback svg,.nav-link-about svg,.nav-link-donate svg{flex-shrink:0;margin-right:.25rem;align-self:center}.nav-link-donate{background:var(--color-donate);color:#fff;border-color:var(--color-donate)}.nav-link-donate:hover{background:var(--color-donate-hover);border-color:var(--color-donate-hover);color:#fff}a.nav-link.desktop-only,button.nav-link.desktop-only{display:none}.tablet-only{display:block}.browse-header{text-align:center;margin-bottom:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);align-items:center}.browse-header p{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.search-input{width:100%;padding:var(--input-padding);background:var(--color-bg-input);border:var(--input-border);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-md);transition:border-color .2s ease}.search-input:focus{outline:none;border-color:var(--color-border-focus)}.filter-results-text{font-size:var(--font-size-md);color:var(--color-text-secondary);flex:1;text-align:center}.btn-clear-filters{background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-lg);color:var(--color-error-text);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn-clear-filters:hover:not(:disabled){background:light-dark(rgba(220,38,38,.1),rgba(239,68,68,.2));border-color:var(--color-error)}.btn-clear-filters:disabled{opacity:.5;cursor:not-allowed}.batch-add-container{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch;justify-content:center;margin:0 0 1rem;padding:var(--space-4);background:var(--color-bg-overlay);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg)}.batch-add-container .btn-primary,.batch-add-container .btn-secondary{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);flex:1 1 calc(50% - var(--space-1));white-space:nowrap}.batch-add-container .btn-primary:disabled,.batch-add-container .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.mobile-only-button{display:block}.app-main{flex:1;padding:var(--space-4);padding-bottom:calc(var(--space-4) + 70px);max-width:1400px;width:100%;margin:0 auto}.loading,.error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;padding:var(--space-8)}.loading h2,.error h2{font-size:var(--font-size-2xl);color:var(--color-text-heading);margin-bottom:var(--space-2)}.loading p,.error p{color:var(--color-text-secondary)}.error h2{color:var(--color-error)}.toast{position:fixed;bottom:var(--space-4);right:var(--space-4);left:var(--space-4);padding:var(--space-4) var(--space-6);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);animation:slideIn var(--transition-slow);z-index:var(--z-toast)}.toast-success{background:var(--color-success)}.toast-warning{background:var(--color-warning)}.toast-error{background:var(--color-error)}.toast-info{background:var(--color-neutral)}.spellbook-selector-list{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-4) 0;max-height:400px;overflow-y:auto}.spellbook-selector-item{display:flex;flex-direction:column;align-items:flex-start;padding:var(--space-4);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-align:left}.spellbook-selector-item:hover{background:var(--color-hover);border-color:var(--color-primary)}.spellbook-selector-item strong{display:block;margin-bottom:var(--space-1);color:var(--color-text-primary)}.spellbook-selector-item span{font-size:var(--font-size-base);color:var(--color-text-secondary)}@media(min-width:375px){.batch-add-container{display:grid;grid-template-columns:1fr 1fr}}@media(min-width:425px){.toast{bottom:var(--space-8);right:var(--space-8);left:auto;width:auto;max-width:400px;font-size:var(--font-size-md)}}@media(min-width:768px){body{overflow-x:visible}.app{max-width:none;overflow-x:visible}.app-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);background:var(--color-bg-primary);border-bottom:1px solid var(--color-border-secondary);box-shadow:0 2px 8px #0000001a;gap:var(--space-6)}.app-title{align-items:flex-start;text-align:left;padding:0;margin-top:0;background:transparent;border-bottom:none}.app-header h1{font-size:var(--font-size-2xl)}.app-subtitle{font-size:var(--font-size-sm)}.app-nav{position:static;display:flex;gap:var(--space-3);padding:0;background:transparent;border-bottom:none;box-shadow:none}.nav-link{flex:0 0 auto;padding:var(--space-3);font-size:var(--font-size-md)}a.nav-link.desktop-only,button.nav-link.desktop-only{display:none}.app-main{padding:var(--space-4);margin-top:var(--space-16);max-width:1400px}.batch-add-container{display:flex;flex-direction:row;justify-content:flex-start}.batch-add-container .btn-primary,.batch-add-container .btn-secondary{flex:0 0 auto;width:auto}.batch-add-container .mobile-only-button{display:none}}@media(min-width:1280px){a.nav-link.desktop-only,button.nav-link.desktop-only{display:flex}.nav-link-feedback{margin-left:auto}.theme-toggle-desktop-nav{margin-left:0}.tablet-only{display:none}.app-main{padding:var(--space-4);margin-top:var(--space-16)}}@keyframes slideIn{0%{transform:translateY(100px);opacity:0}to{transform:translateY(0);opacity:1}}.tutorial-overlay{position:fixed;inset:0;z-index:1500;pointer-events:none}.tutorial-spotlight{position:fixed;z-index:1501;border-radius:var(--radius-lg);box-shadow:0 0 0 9999px #0009;pointer-events:none}.tutorial-backdrop{position:fixed;inset:0;background:#0009;pointer-events:none}.tutorial-blocker{position:fixed;z-index:1500;pointer-events:auto;background:transparent}.tutorial-blocker--full{inset:0}.tutorial-spotlight--interactive{animation:tutorial-pulse 1.5s ease-in-out infinite}@keyframes tutorial-pulse{0%,to{box-shadow:0 0 0 9999px #0009,inset 0 0 0 3px var(--color-primary)}50%{box-shadow:0 0 0 9999px #0009,inset 0 0 0 5px var(--color-primary-light, var(--color-primary))}}.tutorial-tooltip{position:fixed;z-index:1600;inset:auto 0 0;width:100%;max-width:none;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);pointer-events:auto;outline:none;transition:opacity .15s ease-out}.tutorial-tooltip--visible{opacity:1}.tutorial-tooltip--hidden{opacity:0;pointer-events:none}.tutorial-tooltip--mobile-top{bottom:auto;top:0;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.tutorial-tooltip--mobile-top .tutorial-tooltip-footer{border-radius:0 0 var(--radius-xl) var(--radius-xl)}@keyframes tutorial-tooltip-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tutorial-tooltip:before{display:none}.tutorial-tooltip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(min-width:768px){.tutorial-tooltip{bottom:auto;left:auto;right:auto;width:320px;max-width:calc(100vw - 32px);border-radius:var(--radius-xl);animation:tutorial-tooltip-enter .2s ease-out}@keyframes tutorial-tooltip-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tutorial-tooltip-arrow-top:before,.tutorial-tooltip-arrow-bottom:before,.tutorial-tooltip-arrow-left:before,.tutorial-tooltip-arrow-right:before{content:"";display:block;position:absolute;width:12px;height:12px;background:var(--color-bg-primary);border:1px solid var(--color-border-primary);transform:rotate(45deg)}.tutorial-tooltip-arrow-top:before{top:-7px;left:50%;margin-left:-6px;border-right:none;border-bottom:none}.tutorial-tooltip-arrow-bottom:before{bottom:-7px;left:50%;margin-left:-6px;border-left:none;border-top:none}.tutorial-tooltip-arrow-left:before{left:-7px;top:50%;margin-top:-6px;border-right:none;border-top:none}.tutorial-tooltip-arrow-right:before{right:-7px;top:50%;margin-top:-6px;border-left:none;border-bottom:none}.tutorial-tooltip-footer{padding-bottom:var(--space-3)}}.tutorial-tooltip-close{position:absolute;top:var(--space-3);right:var(--space-3);padding:var(--space-1);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.tutorial-tooltip-close:hover{color:var(--color-text-primary);background:var(--color-hover)}.tutorial-tooltip-content{padding:var(--space-4);padding-right:var(--space-10)}.tutorial-tooltip-title{margin:0 0 var(--space-2) 0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.tutorial-tooltip-description{margin:0;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.tutorial-tooltip-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-secondary);background:var(--color-bg-secondary);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.tutorial-tooltip-progress{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.tutorial-tooltip-buttons{display:flex;gap:var(--space-2)}.tutorial-tooltip-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tutorial-tooltip-btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.tutorial-tooltip-btn-primary:hover{background:var(--color-primary-hover)}.tutorial-tooltip-btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.tutorial-tooltip-btn-secondary:hover{background:var(--color-hover-strong)}.tutorial-menu-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#0009;padding:var(--space-4)}.tutorial-menu{position:relative;width:100%;max-width:420px;max-height:calc(100vh - 32px);background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;display:flex;flex-direction:column;animation:tutorial-menu-enter .2s ease-out}@keyframes tutorial-menu-enter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tutorial-menu-close{position:absolute;top:var(--space-3);right:var(--space-3);padding:var(--space-2);background:none;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.tutorial-menu-close:hover{color:var(--color-text-primary);background:var(--color-hover)}.tutorial-menu-header{padding:var(--space-6);padding-right:var(--space-12);text-align:center}.tutorial-menu-title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.tutorial-menu-subtitle{margin:var(--space-2) 0 0 0;font-size:var(--font-size-base);color:var(--color-text-secondary);line-height:var(--line-height-normal)}.tutorial-menu-content{flex:1;overflow-y:auto;padding:0 var(--space-4)}.tutorial-menu-empty{padding:var(--space-6);text-align:center;color:var(--color-text-tertiary)}.tutorial-menu-list{list-style:none;margin:0;padding:0}.tutorial-menu-item{display:flex;align-items:center;width:100%;padding:var(--space-4);margin-bottom:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:background var(--transition-fast),border-color var(--transition-fast)}.tutorial-menu-item:hover{background:var(--color-hover);border-color:var(--color-border-primary)}.tutorial-menu-item:last-child{margin-bottom:0}.tutorial-menu-item-content{flex:1;min-width:0}.tutorial-menu-item-name{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.tutorial-menu-item-check{color:var(--color-success);flex-shrink:0}.tutorial-menu-item-description{display:block;margin-top:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.tutorial-menu-item-arrow{flex-shrink:0;color:var(--color-text-tertiary);margin-left:var(--space-2)}.tutorial-menu-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border-secondary);text-align:center}.tutorial-menu-skip{padding:var(--space-2) var(--space-4);background:none;border:none;color:var(--color-text-secondary);font-size:var(--font-size-sm);cursor:pointer;transition:color var(--transition-fast)}.tutorial-menu-skip:hover{color:var(--color-text-primary)}.tutorial-welcome-choice{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0 var(--space-4) 0}.tutorial-welcome-btn{width:100%;padding:var(--space-4) var(--space-6);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);border:none;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.tutorial-welcome-btn:active{transform:scale(.98)}.tutorial-welcome-btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.tutorial-welcome-btn-primary:hover{background:var(--color-primary-hover)}.tutorial-welcome-btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-secondary)}.tutorial-welcome-btn-secondary:hover{background:var(--color-hover-strong);color:var(--color-text-primary)}.tutorial-tooltip-footer{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))}.tutorial-tooltip--mobile-top .tutorial-tooltip-content{padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px))}.tutorial-tooltip--mobile-top .tutorial-tooltip-footer{padding-bottom:var(--space-3)}.tutorial-menu-footer{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px))}@media(prefers-reduced-motion:reduce){.tutorial-spotlight{transition:none}.tutorial-spotlight--interactive{animation:none;box-shadow:0 0 0 9999px #0009,inset 0 0 0 3px var(--color-primary)}.tutorial-tooltip,.tutorial-menu{animation:none}.tutorial-tooltip-close,.tutorial-tooltip-btn,.tutorial-menu-close,.tutorial-menu-item,.tutorial-menu-skip{transition:none}}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-4);background:var(--color-bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}.error-boundary-content{max-width:600px;width:100%;text-align:center;background:var(--color-bg-secondary);padding:var(--space-8) var(--space-6);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.error-icon{font-size:var(--font-size-4xl);margin-bottom:var(--space-6);animation:shake .5s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.error-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin-bottom:var(--space-4)}.error-message{font-size:var(--font-size-md);color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin-bottom:var(--space-8)}.error-actions{display:flex;gap:var(--space-3);justify-content:center;flex-direction:column;margin-bottom:var(--space-8)}.error-actions .btn-primary,.error-actions .btn-secondary{width:100%;padding:var(--space-3) var(--space-6);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);border:none;cursor:pointer;transition:all var(--transition-fast)}.error-actions .btn-primary{background:var(--color-primary);color:var(--color-text-on-primary)}.error-actions .btn-primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.error-actions .btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border-primary)}.error-actions .btn-secondary:hover{background:var(--color-hover-strong);transform:translateY(-2px)}.error-details{margin-top:var(--space-8);text-align:left;background:light-dark(#f8f8f8,#1e1e1e);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);padding:var(--space-4)}.error-details summary{cursor:pointer;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);padding:var(--space-2);user-select:none}.error-details summary:hover{background:var(--color-hover);border-radius:var(--radius-sm)}.error-stack{margin-top:var(--space-4)}.error-stack h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-top:var(--space-4);margin-bottom:var(--space-2)}.error-stack pre{background:light-dark(#2d2d2d,#1a1a1a);color:light-dark(#f8f8f8,#e0e0e0);padding:var(--space-4);border-radius:var(--radius-sm);overflow-x:auto;font-family:Monaco,Menlo,Consolas,monospace;font-size:var(--font-size-sm);line-height:var(--line-height-normal);white-space:pre-wrap;word-wrap:break-word;word-break:break-all;overflow-wrap:break-word}@media(min-width:768px){.error-boundary{padding:var(--space-8)}.error-boundary-content{padding:var(--space-12)}.error-title{font-size:var(--font-size-3xl)}.error-message{font-size:var(--font-size-lg)}.error-actions{flex-direction:row;gap:var(--space-4)}.error-actions .btn-primary,.error-actions .btn-secondary{width:auto}}:root{--color-bg-primary: light-dark(#ffffff, #0f172a);--color-bg-secondary: light-dark(#f8fafc, #1e293b);--color-bg-tertiary: light-dark(#f1f5f9, #334155);--color-bg-elevated: light-dark(rgba(255, 255, 255, .95), rgba(30, 41, 59, .6));--color-bg-overlay: light-dark(rgba(248, 250, 252, .9), rgba(30, 41, 59, .4));--color-bg-overlay-strong: light-dark(rgba(248, 250, 252, .95), rgba(30, 41, 59, .6));--color-bg-card: light-dark(rgba(255, 255, 255, .95), rgba(30, 41, 59, .6));--color-bg-input: light-dark(#ffffff, rgba(15, 23, 42, .6));--color-text-primary: light-dark(#0f172a, rgba(255, 255, 255, .87));--color-text-secondary: light-dark(#64748b, #94a3b8);--color-text-tertiary: light-dark(#94a3b8, #64748b);--color-text-muted: light-dark(#cbd5e1, #475569);--color-text-inverse: light-dark(rgba(255, 255, 255, .87), #0f172a);--color-text-on-primary: #ffffff;--color-text-link: light-dark(#4c1d95, #a5b4fc);--color-text-heading: light-dark(#334155, #cbd5e1);--color-text-label: light-dark(#475569, #cbd5e1);--color-border-primary: light-dark(#e2e8f0, rgba(100, 116, 139, .3));--color-border-secondary: light-dark(#cbd5e1, rgba(100, 116, 139, .2));--color-border-tertiary: light-dark(rgba(226, 232, 240, .8), rgba(100, 116, 139, .15));--color-border-strong: light-dark(rgba(203, 213, 225, .8), rgba(100, 116, 139, .4));--color-border-focus: #667eea;--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: light-dark(rgba(79, 70, 229, .1), rgba(79, 70, 229, .2));--color-primary-lighter: light-dark(rgba(79, 70, 229, .05), rgba(79, 70, 229, .1));--color-accent: #667eea;--color-accent-light: light-dark(rgba(102, 126, 234, .1), rgba(102, 126, 234, .2));--color-accent-lighter: light-dark(rgba(102, 126, 234, .05), rgba(102, 126, 234, .1));--color-success: light-dark(#059669, #10b981);--color-success-bg: light-dark(rgba(5, 150, 105, .1), rgba(16, 185, 129, .1));--color-success-border: light-dark(rgba(5, 150, 105, .2), rgba(16, 185, 129, .2));--color-warning: light-dark(#d97706, #cc9a1d);--color-warning-hover: light-dark(#b45309, #b8871a);--color-warning-bg: light-dark(rgba(217, 119, 6, .1), rgba(251, 191, 36, .1));--color-warning-border: light-dark(rgba(217, 119, 6, .2), rgba(251, 191, 36, .2));--color-error: light-dark(#dc2626, #ef4444);--color-error-bg: light-dark(rgba(220, 38, 38, .05), rgba(239, 68, 68, .1));--color-error-border: light-dark(rgba(220, 38, 38, .2), rgba(239, 68, 68, .3));--color-error-text: light-dark(#dc2626, #fca5a5);--color-error-hover: light-dark(#b91c1c, #dc2626);--color-info: light-dark(#0284c7, #38bdf8);--color-info-bg: light-dark(rgba(2, 132, 199, .1), rgba(56, 189, 248, .1));--color-info-border: light-dark(rgba(2, 132, 199, .2), rgba(56, 189, 248, .2));--color-neutral: light-dark(#525252, #a3a3a3);--color-neutral-hover: light-dark(#404040, #737373);--color-donate: light-dark(rgb(255, 94, 91), rgb(239, 68, 68));--color-donate-hover: light-dark(rgb(235, 74, 71), rgb(220, 38, 38));--color-badge-concentration-bg: light-dark(rgba(6, 182, 212, .15), rgba(6, 182, 212, .25));--color-badge-concentration-text: light-dark(#0e7490, #67e8f9);--color-badge-concentration-border: light-dark(#06b6d4, #06b6d4);--color-badge-ritual-bg: light-dark(rgba(239, 68, 68, .15), rgba(239, 68, 68, .25));--color-badge-ritual-text: light-dark(#dc2626, #fca5a5);--color-badge-ritual-border: light-dark(#ef4444, #dc2626);--color-unselected-bg: light-dark(rgba(255, 255, 255, .95), rgba(30, 41, 59, .6));--color-unselected-border: light-dark(rgba(226, 232, 240, .8), rgba(100, 116, 139, .3));--color-hover: light-dark(#f1f5f9, rgba(100, 116, 139, .15));--color-hover-strong: light-dark(#e2e8f0, rgba(100, 116, 139, .2));--color-active: light-dark(rgba(79, 70, 229, .1), rgba(79, 70, 229, .15));--color-active-strong: light-dark(rgba(79, 70, 229, .15), rgba(79, 70, 229, .2));--color-selected-bg: light-dark(rgba(96, 165, 250, .15), rgba(96, 165, 250, .2));--color-selected-border: light-dark(#3b82f6, #60a5fa);--color-selected-hover: light-dark(rgba(96, 165, 250, .25), rgba(96, 165, 250, .3));--color-expanded-bg: light-dark(rgba(237, 233, 254, .3), rgba(79, 70, 229, .1));--color-prepared: light-dark(rgb(202, 138, 4), rgb(251, 191, 36));--color-prepared-row-bg: light-dark(rgba(202, 138, 4, .18), rgba(251, 191, 36, .25));--color-prepared-row-border: light-dark(rgba(202, 138, 4, .35), rgba(251, 191, 36, .45));--color-prepared-row-hover: light-dark(rgba(202, 138, 4, .22), rgba(251, 191, 36, .3));--color-prepared-selected-bg: light-dark(rgba(202, 138, 4, .35), rgba(251, 191, 36, .45));--color-prepared-selected-hover: light-dark(rgba(202, 138, 4, .45), rgba(251, 191, 36, .55));--color-level-bg: light-dark(rgba(102, 126, 234, .15), rgba(102, 126, 234, .2));--color-level-text: light-dark(#4c1d95, #a5b4fc);--color-level-border: light-dark(rgba(102, 126, 234, .25), rgba(102, 126, 234, .3));--color-swipe-select-bg: light-dark(rgba(34, 197, 94, .85), rgba(34, 197, 94, .9));--color-swipe-select-text: light-dark(rgb(21, 128, 61), rgb(134, 239, 172));--color-swipe-deselect-bg: light-dark(rgba(148, 163, 184, .85), rgba(148, 163, 184, .9));--color-swipe-deselect-text: light-dark(rgb(71, 85, 105), rgb(203, 213, 225));--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-xs: var(--space-1);--space-sm: var(--space-2);--space-md: var(--space-4);--space-lg: var(--space-6);--space-xl: var(--space-8);--space-2xl: var(--space-12);--font-size-xs: .6875rem;--font-size-sm: .75rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .05em;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .05);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .3);--shadow-focus: 0 0 0 3px rgba(102, 126, 234, .1);--shadow-focus-primary: 0 0 0 3px rgba(79, 70, 229, .1);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-base: 1;--z-dropdown: 10;--z-tooltip: 50;--z-sticky: 100;--z-overlay: 1000;--z-modal: 2000;--z-modal-confirm: 2100;--z-toast: 3000;--btn-padding-sm: var(--space-2) var(--space-4);--btn-padding-md: var(--space-3) var(--space-6);--btn-padding-lg: var(--space-4) var(--space-8);--input-padding: var(--space-3) var(--space-4);--input-border: 1px solid var(--color-border-primary);--input-border-focus: 1px solid var(--color-border-focus);--card-padding: var(--space-6);--card-padding-sm: var(--space-4);--card-border: 1px solid var(--color-border-primary);--card-radius: var(--radius-xl)}:root{--bg-primary: var(--color-bg-primary);--bg-secondary: var(--color-bg-secondary);--bg-hover: var(--color-hover-strong);--text-primary: var(--color-text-primary);--text-secondary: var(--color-text-secondary);--border-color: var(--color-border-primary);--primary-color: var(--color-primary);--primary-hover: var(--color-primary-hover)}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:var(--line-height-normal);font-weight:var(--font-weight-normal);color-scheme:dark light;color:var(--color-text-primary);background-color:var(--color-bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{min-width:320px;min-height:100vh}#root{max-width:1280px;margin:0 auto;padding:0}button{border-radius:var(--radius-lg);border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:var(--font-weight-medium);font-family:inherit;background-color:var(--color-bg-tertiary);cursor:pointer;transition:border-color var(--transition-base)}button:hover{border-color:var(--color-accent)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(min-width:768px){#root{padding:var(--space-8)}}
