.error-boundary{display:flex;align-items:center;justify-content:center;min-height:50vh;padding:2rem}.error-boundary-content{max-width:500px;text-align:center;background:var(--card-bg, #1a1520);border:1px solid var(--border-color, #2a2030);border-radius:12px;padding:2rem}.error-boundary-content h2{color:var(--text-primary, #f4f4f5);margin:0 0 .5rem}.error-boundary-content p{color:var(--text-secondary, #a1a1aa);margin:0 0 1rem}.error-boundary-content details{text-align:left;background:var(--bg-secondary, #0f0a14);border-radius:8px;padding:1rem}.error-boundary-content summary{cursor:pointer;color:var(--text-secondary, #a1a1aa);font-size:.875rem}.error-boundary-content pre{color:var(--text-tertiary, #71717a);margin-top:.5rem}.header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:#0b0b0fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--ashen-char);z-index:1000}.header-container{display:flex;align-items:center;justify-content:space-between;height:100%}.logo{display:flex;align-items:center;gap:var(--space-sm);color:var(--moon-sheen);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;text-decoration:none}.logo:hover{color:var(--ember-violet)}.logo-icon{width:32px;height:32px;color:var(--ember-violet)}.logo-text{background:linear-gradient(135deg,var(--moon-sheen) 0%,var(--ember-violet) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav{display:flex;align-items:center}.nav-list{display:flex;align-items:center;gap:var(--space-xs);list-style:none}.nav-link{padding:var(--space-sm) var(--space-md);color:var(--dull-steel);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast)}.nav-link:hover{color:var(--silver-ash);background:var(--ashen-char)}.nav-link.active{color:var(--ember-violet)}.header-actions{display:flex;align-items:center;gap:var(--space-sm)}.mobile-menu-btn{display:none;background:none;border:none;padding:var(--space-sm);cursor:pointer}.hamburger{display:flex;flex-direction:column;gap:5px;width:24px}.hamburger span{display:block;height:2px;background:var(--silver-ash);border-radius:2px;transition:all var(--transition-base)}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}@media(max-width:768px){.nav{position:fixed;top:var(--header-height);left:0;right:0;bottom:0;background:var(--black-void);padding:var(--space-lg);transform:translate(-100%);transition:transform var(--transition-base)}.nav-open{transform:translate(0)}.nav-list{flex-direction:column;align-items:stretch;gap:var(--space-xs)}.nav-link{display:block;padding:var(--space-md);font-size:var(--text-lg)}.header-actions{display:none}.mobile-menu-btn{display:block}}.footer{background:var(--obsidian);border-top:1px solid var(--ashen-char);padding:var(--space-3xl) 0 var(--space-xl)}.footer-grid{display:grid;grid-template-columns:2fr 3fr;gap:var(--space-3xl);margin-bottom:var(--space-3xl)}.footer-brand{max-width:300px}.footer-logo{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--moon-sheen);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-md)}.footer-logo:hover{color:var(--ember-violet)}.footer-logo .logo-icon{width:28px;height:28px;color:var(--ember-violet)}.footer-tagline{color:var(--dull-steel);font-size:var(--text-sm);line-height:1.6;margin:0}.footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.footer-column h4{font-family:var(--font-sans);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--moon-sheen);margin-bottom:var(--space-md)}.footer-column ul{list-style:none}.footer-column li{margin-bottom:var(--space-sm)}.footer-column a{color:var(--dull-steel);font-size:var(--text-sm);transition:color var(--transition-fast)}.footer-column a:hover{color:var(--ember-violet)}.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-xl);border-top:1px solid var(--ashen-char)}.footer-bottom p{color:var(--text-muted);font-size:var(--text-sm);margin:0}.footer-social{display:flex;gap:var(--space-md)}.footer-social a{color:var(--dull-steel);transition:color var(--transition-fast)}.footer-social a:hover{color:var(--ember-violet)}@media(max-width:768px){.footer-grid{grid-template-columns:1fr;gap:var(--space-2xl)}.footer-brand{max-width:none}.footer-links{grid-template-columns:repeat(2,1fr)}.footer-bottom{flex-direction:column;gap:var(--space-md);text-align:center}}@media(max-width:480px){.footer-links{grid-template-columns:1fr}}.layout{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;padding-top:var(--header-height)}.approval-queue{padding:1.5rem}.approval-queue.loading,.approval-queue.empty{display:flex;align-items:center;justify-content:center;min-height:200px}.approval-queue-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.approval-queue-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #f5f5f5)}.approval-total-badge{background:var(--color-warning, #f59e0b);color:var(--color-dark, #1a1a2e);padding:.25rem .75rem;border-radius:1rem;font-size:.875rem;font-weight:600}.approval-empty-state{text-align:center;padding:2rem}.approval-empty-icon{display:inline-block;width:3rem;height:3rem;line-height:3rem;background:var(--color-success, #10b981);color:#fff;border-radius:50%;font-size:1.5rem;margin-bottom:1rem}.approval-empty-state h3{margin:0 0 .5rem;color:var(--text-primary, #f5f5f5)}.approval-empty-state p{margin:0;color:var(--text-secondary, #a0a0a0)}.approval-section{margin-bottom:2rem}.approval-section:last-child{margin-bottom:0}.approval-section-title{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;font-size:1.125rem;color:var(--text-primary, #f5f5f5)}.approval-count{background:var(--bg-secondary, #2a2a4a);padding:.125rem .5rem;border-radius:.75rem;font-size:.75rem;font-weight:600}.approval-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.approval-card{background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;padding:1rem;transition:border-color .2s ease}.approval-card:hover{border-color:var(--color-primary, #8b5cf6)}.approval-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.approval-card-type{text-transform:uppercase;font-size:.75rem;font-weight:600;color:var(--text-secondary, #a0a0a0);letter-spacing:.05em}.approval-card-title{margin:0 0 .5rem;font-size:1.125rem;color:var(--text-primary, #f5f5f5);line-height:1.3}.approval-card-preview{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0);line-height:1.5}.approval-card-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1rem;font-size:.75rem;color:var(--text-tertiary, #808080)}.approval-card-actions{display:flex;gap:.5rem;justify-content:flex-end}.approval-card-actions .btn{padding:.375rem .75rem;font-size:.875rem}.approval-reject-form{margin-top:.5rem}.approval-reject-form textarea{width:100%;padding:.75rem;border:1px solid var(--border-color, #3a3a5a);border-radius:.375rem;background:var(--bg-primary, #1a1a2e);color:var(--text-primary, #f5f5f5);font-family:inherit;font-size:.875rem;resize:vertical;margin-bottom:.75rem}.approval-reject-form textarea:focus{outline:none;border-color:var(--color-primary, #8b5cf6)}.approval-reject-actions{display:flex;gap:.5rem;justify-content:flex-end}.content-status-badge{display:inline-block;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.content-status-badge.status-published{background:#10b98133;color:#10b981}.content-status-badge.status-draft{background:#6b728033;color:#9ca3af}.content-status-badge.status-pending{background:#f59e0b33;color:#f59e0b}.content-status-badge.status-unknown{background:#6b728033;color:#6b7280}.approval-notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;height:1.25rem;padding:0 .375rem;background:var(--color-danger, #ef4444);color:#fff;font-size:.75rem;font-weight:700;border-radius:.625rem;line-height:1}.approval-queue .btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s ease,opacity .2s ease}.approval-queue .btn:disabled{opacity:.6;cursor:not-allowed}.approval-queue .btn-primary{background:var(--color-primary, #8b5cf6);color:#fff}.approval-queue .btn-primary:hover:not(:disabled){background:var(--color-primary-dark, #7c3aed)}.approval-queue .btn-secondary{background:var(--bg-tertiary, #3a3a5a);color:var(--text-primary, #f5f5f5)}.approval-queue .btn-secondary:hover:not(:disabled){background:var(--bg-hover, #4a4a6a)}.approval-queue .btn-danger{background:var(--color-danger, #ef4444);color:#fff}.approval-queue .btn-danger:hover:not(:disabled){background:#dc2626}@media(max-width:640px){.approval-queue{padding:1rem}.approval-cards{grid-template-columns:1fr}.approval-card-actions{flex-wrap:wrap}.approval-card-actions .btn{flex:1;min-width:80px}}.search-box-container{position:relative}.search-input-wrapper{display:flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;transition:border-color .2s ease,box-shadow .2s ease}.search-input-wrapper:focus-within{border-color:var(--color-primary, #8b5cf6);box-shadow:0 0 0 2px #8b5cf633}.search-icon{color:var(--text-tertiary, #808080);flex-shrink:0}.search-input{flex:1;min-width:120px;background:transparent;border:none;color:var(--text-primary, #f5f5f5);font-size:.875rem;outline:none}.search-input::placeholder{color:var(--text-tertiary, #808080)}.search-shortcut{display:flex;align-items:center;gap:2px;padding:.125rem .375rem;background:var(--bg-tertiary, #3a3a5a);border-radius:.25rem;font-family:inherit;font-size:.75rem;color:var(--text-tertiary, #808080)}.shortcut-key{font-size:.875rem}.search-dropdown{position:absolute;top:calc(100% + .5rem);left:0;right:0;min-width:300px;max-height:400px;overflow-y:auto;background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;box-shadow:0 10px 25px #0000004d;z-index:100}.search-loading,.search-empty{padding:1.5rem;text-align:center;color:var(--text-secondary, #a0a0a0);font-size:.875rem}.search-loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.search-spinner{width:1rem;height:1rem;border:2px solid var(--border-color, #3a3a5a);border-top-color:var(--color-primary, #8b5cf6);border-radius:50%;animation:spin .6s linear infinite}.search-results{padding:.5rem}.search-results-group{margin-bottom:.5rem}.search-results-group:last-child{margin-bottom:0}.search-group-header{padding:.375rem .5rem;font-size:.75rem;font-weight:600;color:var(--text-tertiary, #808080);text-transform:uppercase;letter-spacing:.05em}.search-result{display:flex;flex-direction:column;gap:.25rem;width:100%;padding:.625rem .75rem;background:transparent;border:none;border-radius:.375rem;text-align:left;cursor:pointer;transition:background-color .15s ease}.search-result:hover{background:var(--bg-secondary, #2a2a4a)}.search-result-type{display:inline-flex;align-items:center;gap:.25rem;width:fit-content;padding:.125rem .375rem;border-radius:.25rem;font-size:.625rem;font-weight:600;text-transform:uppercase}.search-result-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #f5f5f5)}.search-result-desc{font-size:.75rem;color:var(--text-secondary, #a0a0a0);line-height:1.4}@media(max-width:768px){.search-shortcut{display:none}.search-dropdown{min-width:250px;left:auto;right:0}}.campaign-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);position:sticky;top:0;z-index:100}.campaign-header-container{max-width:1400px;margin:0 auto;padding:.75rem 1.5rem;display:flex;align-items:center;gap:1rem}.campaign-header-left{display:flex;align-items:center;gap:.75rem}.back-to-dashboard{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:var(--text-secondary);transition:all .2s ease}.back-to-dashboard:hover{background:var(--bg-tertiary);color:var(--text-primary)}.campaign-selector{position:relative}.campaign-selector-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s ease}.campaign-selector-btn:hover{background:var(--bg-tertiary);border-color:var(--border-secondary)}.campaign-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;min-width:200px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;box-shadow:0 4px 12px #0000004d;overflow:hidden;z-index:200}.campaign-dropdown-item{display:block;width:100%;padding:.75rem 1rem;background:transparent;border:none;color:var(--text-secondary);font-size:.9rem;text-align:left;cursor:pointer;transition:all .2s ease}.campaign-dropdown-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.campaign-dropdown-item.active{background:var(--accent-primary);color:#fff}.campaign-nav{display:flex;align-items:center;gap:.25rem;flex:1;justify-content:center}.campaign-nav-link{display:flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:8px;color:var(--text-secondary);font-size:.9rem;font-weight:500;text-decoration:none;transition:all .2s ease}.campaign-nav-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.campaign-nav-link.active{background:var(--accent-muted);color:var(--accent-primary)}.campaign-nav-link.admin{color:var(--warning)}.campaign-nav-link.admin:hover{background:#f59e0b1a}.campaign-nav-link.admin.active{background:#f59e0b33;color:var(--warning)}.nav-icon{font-size:1rem}.campaign-header-search{display:flex;align-items:center}.campaign-header-right{display:flex;align-items:center;gap:.75rem}.user-avatar{width:32px;height:32px;border-radius:50%;border:2px solid var(--border-primary)}.user-name{font-size:.875rem;color:var(--text-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logout-btn{padding:.375rem .75rem;background:transparent;border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:var(--bg-tertiary);color:var(--text-primary);border-color:var(--border-secondary)}.mobile-menu-btn{display:none;padding:.5rem;background:transparent;border:none;cursor:pointer}.hamburger{display:flex;flex-direction:column;gap:4px;width:24px}.hamburger span{display:block;height:2px;background:var(--text-secondary);border-radius:1px;transition:all .2s ease}.hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media(max-width:1024px){.nav-label{display:none}.campaign-nav-link{padding:.5rem .75rem}.nav-icon{font-size:1.25rem}}@media(max-width:768px){.campaign-header-container{flex-wrap:wrap}.mobile-menu-btn{display:block;margin-left:auto}.campaign-nav{display:none;width:100%;flex-wrap:wrap;justify-content:center;padding-top:.75rem;margin-top:.75rem;border-top:1px solid var(--border-primary)}.campaign-nav.open{display:flex}.nav-label{display:inline}.campaign-header-search,.campaign-header-right,.user-name{display:none}}.campaign-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--bg-primary)}.campaign-main{flex:1;padding:1.5rem}.campaign-main .container{max-width:1400px;margin:0 auto}.campaign-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;color:var(--text-secondary)}.campaign-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;text-align:center}.campaign-error h2{color:var(--error)}.campaign-error p{color:var(--text-secondary);margin-bottom:1rem}.campaign-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem;text-align:center}.campaign-empty h2{color:var(--text-primary)}.campaign-empty p{color:var(--text-secondary);margin-bottom:1rem}.hero{padding:var(--space-4xl) 0;background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%);overflow:hidden}.hero .container{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3xl);align-items:center}.hero-content{animation:slideUp .6s ease forwards}.hero-content .badge{margin-bottom:var(--space-lg)}.hero-content h1{font-size:var(--text-6xl);margin-bottom:var(--space-lg);line-height:1.1}.text-gradient{background:linear-gradient(135deg,var(--ember-violet) 0%,var(--gold-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:var(--text-xl);color:var(--dull-steel);margin-bottom:var(--space-xl);max-width:500px}.hero-actions{display:flex;gap:var(--space-md);margin-bottom:var(--space-md)}.hero-note{font-size:var(--text-sm);color:var(--text-muted);margin:0}.hero-visual{animation:slideUp .6s ease .2s forwards;opacity:0}.hero-mockup{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg),0 0 60px var(--violet-glow)}.mockup-header{display:flex;gap:6px;padding:var(--space-sm) var(--space-md);background:var(--surface)}.mockup-dot{width:10px;height:10px;border-radius:50%;background:var(--text-muted)}.mockup-dot:first-child{background:#ff5f56}.mockup-dot:nth-child(2){background:#ffbd2e}.mockup-dot:nth-child(3){background:#27ca40}.mockup-content{display:grid;grid-template-columns:60px 1fr;min-height:300px}.mockup-sidebar{background:var(--obsidian);padding:var(--space-md)}.mockup-main{padding:var(--space-lg)}.mockup-timeline{height:100%;background:linear-gradient(90deg,transparent 0%,var(--violet-glow) 50%,transparent 100%);border-radius:var(--radius-md);position:relative}.mockup-timeline:before{content:"";position:absolute;top:50%;left:10%;right:10%;height:2px;background:var(--violet-core)}.mockup-timeline:after{content:"";position:absolute;top:calc(50% - 6px);left:30%;width:14px;height:14px;background:var(--ember-violet);border-radius:50%;box-shadow:0 0 10px var(--ember-violet)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.feature-card{text-align:left}.feature-card-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.feature-icon{font-size:1.75rem;line-height:1;flex-shrink:0}.feature-card h3{font-family:var(--font-sans);font-size:var(--text-lg);margin:0}.feature-card p{color:var(--dull-steel);font-size:var(--text-sm);margin:0}.split-content{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3xl);align-items:center}.split-text .badge,.split-text h2{margin-bottom:var(--space-md)}.split-text>p{color:var(--dull-steel);font-size:var(--text-lg);margin-bottom:var(--space-xl)}.feature-list{list-style:none}.feature-list li{display:flex;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm);color:var(--silver-ash)}.feature-list .check{color:var(--success-light);font-weight:700}.calendar-preview{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.calendar-header-preview{padding:var(--space-md);background:var(--surface);text-align:center;font-family:var(--font-display);color:var(--moon-sheen)}.calendar-grid-preview{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:var(--space-sm)}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);color:var(--dull-steel);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.calendar-day.has-event{background:var(--violet-glow);color:var(--ember-violet)}.calendar-day.active{background:var(--violet-core);color:#fff}.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.testimonial-card blockquote{font-size:var(--text-base);color:var(--silver-ash);font-style:italic;margin-bottom:var(--space-lg);line-height:1.7}.testimonial-author{display:flex;align-items:center;gap:var(--space-md)}.author-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--violet-core),var(--ember-violet))}.testimonial-author strong{display:block;color:var(--moon-sheen);font-size:var(--text-sm)}.testimonial-author span{color:var(--text-muted);font-size:var(--text-xs)}.cta-section{background:linear-gradient(180deg,var(--obsidian) 0%,var(--black-void) 100%);text-align:center}.cta-content h2{margin-bottom:var(--space-md)}.cta-content>p{color:var(--dull-steel);font-size:var(--text-lg);margin-bottom:var(--space-xl)}@media(max-width:1024px){.features-grid,.testimonials-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.hero .container{grid-template-columns:1fr;text-align:center}.hero-content h1{font-size:var(--text-4xl)}.hero-subtitle{margin:0 auto var(--space-xl)}.hero-actions{justify-content:center;flex-wrap:wrap}.hero-visual{order:-1}.features-grid,.testimonials-grid,.split-content{grid-template-columns:1fr}.split-visual{order:-1}.cta-actions{flex-direction:column;align-items:center}}.features-hero{padding:var(--space-4xl) 0 var(--space-3xl);text-align:center;background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%)}.features-hero h1{margin-bottom:var(--space-md)}.features-hero p{font-size:var(--text-xl);color:var(--dull-steel);max-width:600px;margin:0 auto}.category-header{text-align:center;margin-bottom:var(--space-3xl)}.category-header h2{margin-bottom:var(--space-sm)}.category-header p{font-size:var(--text-lg);color:var(--dull-steel)}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-lg)}.feature-item{text-align:center}.feature-item .feature-icon{font-size:2rem;display:block;margin-bottom:var(--space-md)}.feature-item h3{font-family:var(--font-sans);font-size:var(--text-base);margin-bottom:var(--space-sm)}.feature-item p{font-size:var(--text-sm);color:var(--dull-steel);margin:0}.cta-actions{display:flex;gap:var(--space-md);justify-content:center}@media(max-width:1024px){.features-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.features-grid{grid-template-columns:1fr}.cta-actions{flex-direction:column;align-items:center}}.pricing-hero{padding:var(--space-4xl) 0 var(--space-2xl);text-align:center;background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%)}.pricing-hero h1{margin-bottom:var(--space-md)}.pricing-subtitle{font-size:var(--text-xl);color:var(--dull-steel);margin-bottom:var(--space-xl)}.billing-toggle{display:inline-flex;background:var(--ashen-char);border-radius:var(--radius-full);padding:4px}.billing-toggle button{position:relative;padding:var(--space-sm) var(--space-lg);background:transparent;border:none;color:var(--dull-steel);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-full);transition:all var(--transition-fast)}.save-badge{position:absolute;top:-8px;right:-8px;padding:2px 6px;background:var(--gold);color:var(--black-void);font-size:10px;font-weight:700;border-radius:var(--radius-full)}.pricing-cards-section{padding:var(--space-2xl) 0 var(--space-4xl);background:var(--obsidian)}.pricing-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);align-items:start}.pricing-card{position:relative;background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-xl);padding:var(--space-xl);text-align:center;transition:all var(--transition-base)}.pricing-card:hover{border-color:var(--violet-core)}.pricing-card.highlighted{border-color:var(--violet-core);box-shadow:0 0 40px var(--violet-glow);transform:scale(1.02)}.plan-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);padding:var(--space-xs) var(--space-md);background:var(--violet-core);color:#fff;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;border-radius:var(--radius-full)}.pricing-card h2{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.plan-price{margin-bottom:var(--space-xl)}.price-amount{font-size:var(--text-5xl);font-weight:700;color:var(--moon-sheen)}.price-period{font-size:var(--text-base);color:var(--dull-steel)}.plan-features{list-style:none;text-align:left;margin-bottom:var(--space-xl)}.plan-features li{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--text-sm);color:var(--silver-ash);border-bottom:1px solid var(--surface)}.plan-features li:last-child{border-bottom:none}.plan-features .check{color:var(--success-light);font-weight:700}.pricing-card .btn{width:100%}.comparison-section{background:var(--black-void)}.comparison-table-wrapper{overflow-x:auto}.comparison-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.comparison-table th,.comparison-table td{padding:var(--space-md);text-align:center;border-bottom:1px solid var(--ashen-char)}.comparison-table th{background:var(--ashen-char);color:var(--moon-sheen);font-weight:600}.comparison-table th:first-child,.comparison-table td:first-child{text-align:left}.comparison-table td{color:var(--silver-ash)}.comparison-note{text-align:center;font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-md)}.faq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xl)}.faq-item h3{font-family:var(--font-sans);font-size:var(--text-base);color:var(--moon-sheen);margin-bottom:var(--space-sm)}.faq-item p{color:var(--dull-steel);font-size:var(--text-sm);margin:0}.cta-section{background:linear-gradient(180deg,var(--obsidian) 0%,var(--black-void) 100%)}.cta-section h2{margin-bottom:var(--space-md)}.cta-section>.container>p{color:var(--dull-steel);margin-bottom:var(--space-xl)}@media(max-width:1024px){.pricing-cards{grid-template-columns:1fr;max-width:400px;margin:0 auto}.pricing-card.highlighted{transform:none}.faq-grid{grid-template-columns:1fr}}.docs-page{min-height:calc(100vh - var(--header-height))}.docs-layout{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - var(--header-height))}.docs-sidebar{background:var(--obsidian);border-right:1px solid var(--ashen-char);padding:var(--space-xl);position:sticky;top:var(--header-height);height:calc(100vh - var(--header-height));overflow-y:auto}.docs-nav-section{margin-bottom:var(--space-xl)}.docs-nav-section h3{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dull-steel);margin-bottom:var(--space-sm)}.docs-nav-section ul{list-style:none}.docs-nav-section li{margin-bottom:2px}.docs-nav-section a{display:block;padding:var(--space-xs) var(--space-sm);color:var(--silver-ash);font-size:var(--text-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.docs-nav-section a:hover{background:var(--ashen-char);color:var(--moon-sheen)}.docs-nav-section a.active{background:var(--violet-glow);color:var(--ember-violet)}.docs-content{padding:var(--space-3xl);max-width:800px}.docs-home h1{margin-bottom:var(--space-md)}.docs-home>p{font-size:var(--text-lg);color:var(--dull-steel);margin-bottom:var(--space-2xl)}.docs-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}.docs-card{display:block}.docs-card h3{font-family:var(--font-sans);font-size:var(--text-lg);margin-bottom:var(--space-sm)}.docs-card p{font-size:var(--text-sm);color:var(--dull-steel);margin:0}.docs-article h1{margin-bottom:var(--space-xl);padding-bottom:var(--space-md);border-bottom:1px solid var(--ashen-char)}.article-body h2{font-size:var(--text-xl);margin:var(--space-2xl) 0 var(--space-md);padding-top:var(--space-md)}.article-body h3{font-size:var(--text-lg);margin:var(--space-xl) 0 var(--space-sm);color:var(--moon-sheen)}.article-body p{color:var(--silver-ash);margin-bottom:var(--space-md);line-height:1.7}.article-body ul,.article-body ol{margin-bottom:var(--space-lg);padding-left:var(--space-xl)}.article-body li{color:var(--silver-ash);margin-bottom:var(--space-xs);line-height:1.6}.article-body strong{color:var(--moon-sheen)}.inline-code{background:var(--ashen-char);color:var(--ember-violet);padding:2px 6px;border-radius:4px;font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:.9em}.code-block{background:var(--obsidian);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);overflow-x:auto}.code-block code{font-family:SF Mono,Menlo,Monaco,Courier New,monospace;font-size:var(--text-sm);color:var(--silver-ash);line-height:1.5;white-space:pre}.table-row{display:flex;border-bottom:1px solid var(--ashen-char);padding:var(--space-sm) 0}.table-row:first-of-type{font-weight:600;color:var(--moon-sheen);border-bottom:2px solid var(--ashen-char)}.table-cell{flex:1;padding:var(--space-xs) var(--space-sm);color:var(--silver-ash)}.article-body a{color:var(--ember-violet);text-decoration:none}.article-body a:hover{text-decoration:underline}.article-body hr{border:none;border-top:1px solid var(--ashen-char);margin:var(--space-xl) 0}.docs-nav-footer{margin-top:var(--space-3xl);padding-top:var(--space-xl);border-top:1px solid var(--ashen-char)}@media(max-width:768px){.docs-layout{grid-template-columns:1fr}.docs-sidebar{position:relative;top:0;height:auto;border-right:none;border-bottom:1px solid var(--ashen-char)}.docs-cards{grid-template-columns:1fr}}.blog-hero{padding:var(--space-4xl) 0 var(--space-2xl);text-align:center;background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%)}.blog-hero h1{margin-bottom:var(--space-sm)}.blog-hero p{font-size:var(--text-lg);color:var(--dull-steel)}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}.blog-card{display:flex;flex-direction:column;overflow:hidden;padding:0}.blog-card-image{height:180px;background:linear-gradient(135deg,var(--violet-glow),var(--surface))}.blog-card-content{padding:var(--space-lg);flex:1;display:flex;flex-direction:column}.blog-card-meta{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.blog-date{font-size:var(--text-xs);color:var(--text-muted)}.blog-card h2{font-size:var(--text-lg);margin-bottom:var(--space-sm)}.blog-card p{font-size:var(--text-sm);color:var(--dull-steel);flex:1}.blog-read-time{font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:1024px){.blog-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.blog-grid{grid-template-columns:1fr}}.auth-page{min-height:calc(100vh - var(--header-height));display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%)}.auth-container{width:100%;max-width:420px}.auth-header{text-align:center;margin-bottom:var(--space-2xl)}.auth-logo{display:inline-flex;align-items:center;gap:var(--space-sm);color:var(--moon-sheen);font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;margin-bottom:var(--space-xl)}.auth-logo:hover{color:var(--ember-violet)}.auth-logo .logo-icon{width:32px;height:32px;color:var(--ember-violet)}.auth-logo-img{max-width:200px;height:auto}.auth-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:var(--text-sm)}.auth-success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e;padding:var(--space-md);border-radius:var(--radius-md);font-size:var(--text-sm);text-align:center}.auth-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.auth-header p{color:var(--dull-steel);margin:0}.auth-form{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl)}.auth-submit{width:100%;margin-top:var(--space-md)}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-xl) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--surface)}.auth-divider span{font-size:var(--text-sm);color:var(--text-muted)}.social-buttons{display:flex;gap:var(--space-md)}.social-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.auth-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--text-sm);color:var(--dull-steel)}.auth-footer a{color:var(--ember-violet)}.plan-selector{display:flex;flex-direction:column;gap:var(--space-sm)}.plan-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.plan-option:hover{border-color:var(--violet-core)}.plan-option.selected{border-color:var(--violet-core);background:var(--violet-glow)}.plan-option input{display:none}.plan-name{font-weight:500;color:var(--moon-sheen)}.plan-price{color:var(--dull-steel);font-size:var(--text-sm);margin-left:auto}.plan-option .badge{font-size:10px}.form-row{display:flex;align-items:center;justify-content:space-between}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--silver-ash);cursor:pointer}.checkbox-label input{accent-color:var(--violet-core)}.forgot-link{font-size:var(--text-sm)}.signup-container{max-width:480px}.billing-toggle{display:flex;gap:var(--space-sm)}.billing-option{flex:1;padding:var(--space-md);background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);color:var(--dull-steel);font-size:var(--text-sm);cursor:pointer;transition:all var(--transition-fast)}.billing-option:hover{border-color:var(--violet-core)}.billing-option.active{border-color:var(--violet-core);background:var(--violet-glow);color:var(--moon-sheen)}.save-badge{display:inline-block;background:var(--violet-core);color:#fff;font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);margin-left:var(--space-xs);font-weight:600}.stripe-element-container{background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);padding:var(--space-md);min-height:100px}.plan-summary{background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg)}.plan-summary-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;font-size:var(--text-sm);color:var(--dull-steel)}.plan-summary-row.total{border-top:1px solid var(--surface);margin-top:var(--space-sm);padding-top:var(--space-md);font-weight:600;color:var(--moon-sheen)}.guarantee-text{text-align:center;font-size:var(--text-xs);color:var(--dull-steel);margin:var(--space-md) 0 0}.form-hint{font-size:var(--text-xs);color:var(--dull-steel);margin-top:var(--space-xs)}.legal-page{min-height:calc(100vh - var(--header-height));padding:var(--space-3xl) 0;background:var(--black-void)}.legal-content{max-width:800px;margin:0 auto}.legal-content h1{font-size:var(--text-4xl);margin-bottom:var(--space-sm);color:var(--moon-sheen)}.legal-content .last-updated{color:var(--dull-steel);font-size:var(--text-sm);margin-bottom:var(--space-3xl)}.legal-content section{margin-bottom:var(--space-2xl)}.legal-content h2{font-size:var(--text-xl);color:var(--moon-sheen);margin-bottom:var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--surface)}.legal-content section:first-of-type h2{padding-top:0;border-top:none}.legal-content h3{font-size:var(--text-lg);color:var(--silver-ash);margin:var(--space-lg) 0 var(--space-sm)}.legal-content p{color:var(--silver-ash);line-height:1.7;margin-bottom:var(--space-md)}.legal-content ul{list-style:none;padding:0;margin:0 0 var(--space-md) 0}.legal-content li{color:var(--silver-ash);padding-left:var(--space-lg);margin-bottom:var(--space-sm);position:relative;line-height:1.6}.legal-content li:before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;background:var(--violet-core);border-radius:50%}.legal-content strong{color:var(--moon-sheen);font-weight:500}@media(max-width:768px){.legal-page{padding:var(--space-xl) 0}.legal-content h1{font-size:var(--text-3xl)}.legal-content h2{font-size:var(--text-lg)}}.dashboard-page{min-height:calc(100vh - var(--header-height));padding:var(--space-2xl) 0}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-2xl)}.dashboard-header h1{font-size:var(--text-3xl);margin-bottom:var(--space-xs)}.dashboard-header p{color:var(--dull-steel)}.loading-state{text-align:center;padding:var(--space-2xl);color:var(--dull-steel)}.dashboard-layout{display:grid;grid-template-columns:300px 1fr;gap:var(--space-xl)}@media(max-width:1024px){.dashboard-layout{grid-template-columns:1fr}}.workspaces-sidebar{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-lg);height:fit-content}.workspaces-sidebar h2{font-size:var(--text-lg);margin-bottom:var(--space-md)}.workspaces-list{display:flex;flex-direction:column;gap:var(--space-sm)}.workspace-card{background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;transition:all var(--transition-fast)}.workspace-card:hover{border-color:var(--violet-core)}.workspace-card.selected{border-color:var(--violet-core);background:var(--violet-glow)}.workspace-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-xs)}.workspace-card h3{font-size:var(--text-base);font-weight:600}.subscription-badge{font-size:10px;padding:2px 6px;border-radius:var(--radius-sm);text-transform:uppercase;font-weight:600}.subscription-badge.free,.subscription-badge.trialing{background:var(--surface);color:var(--dull-steel)}.subscription-badge.ward{background:var(--violet-glow);color:var(--violet-core)}.subscription-badge.bulwark{background:#eab30833;color:#eab308}.workspace-slug{font-size:var(--text-sm);color:var(--dull-steel);margin-bottom:var(--space-sm)}.workspace-stats{display:flex;gap:var(--space-md);font-size:var(--text-xs);color:var(--dull-steel)}.dashboard-main{min-width:0}.workspace-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--surface)}.workspace-header h2{font-size:var(--text-2xl);margin-bottom:var(--space-xs)}.workspace-url{font-size:var(--text-sm);color:var(--dull-steel)}.workspace-actions{display:flex;gap:var(--space-sm)}.campaigns-section{margin-bottom:var(--space-2xl)}.campaigns-section h3{font-size:var(--text-lg);margin-bottom:var(--space-md)}.campaigns-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-md)}.campaign-card{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-md);padding:var(--space-lg);text-decoration:none;color:inherit;transition:all var(--transition-fast)}.campaign-card:hover{border-color:var(--violet-core);transform:translateY(-2px)}.campaign-card h4{font-size:var(--text-lg);margin-bottom:var(--space-xs)}.campaign-card p{font-size:var(--text-sm);color:var(--dull-steel);margin-bottom:var(--space-md)}.campaign-meta{display:flex;gap:var(--space-sm)}.calendar-type{font-size:var(--text-xs);color:var(--violet-core);text-transform:capitalize}.status-badge{font-size:var(--text-xs);padding:2px 6px;border-radius:var(--radius-sm)}.status-badge.active{background:#22c55e33;color:#22c55e}.status-badge.paused{background:#eab30833;color:#eab308}.status-badge.completed{background:var(--surface);color:var(--dull-steel)}.empty-state{text-align:center;padding:var(--space-2xl);background:var(--ashen-char);border:1px dashed var(--surface);border-radius:var(--radius-lg)}.empty-state p{color:var(--dull-steel);margin-bottom:var(--space-md)}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md)}.stat-card{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center}.stat-value{display:block;font-size:var(--text-2xl);font-weight:700;color:var(--moon-sheen);text-transform:capitalize}.stat-label{font-size:var(--text-sm);color:var(--dull-steel)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-lg)}.modal{background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);width:100%;max-width:480px}.modal h2{font-size:var(--text-xl);margin-bottom:var(--space-lg)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xl)}@media(max-width:640px){.dashboard-header,.workspace-header{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.workspace-actions{width:100%}.workspace-actions .btn{flex:1}.quick-stats{grid-template-columns:1fr}}.onboarding-page{min-height:calc(100vh - var(--header-height));display:flex;align-items:center;justify-content:center;padding:var(--space-2xl);background:linear-gradient(180deg,var(--black-void) 0%,var(--obsidian) 100%)}.onboarding-container{width:100%;max-width:540px}.onboarding-header{text-align:center;margin-bottom:var(--space-2xl)}.onboarding-logo{max-width:180px;height:auto;margin-bottom:var(--space-lg)}.onboarding-header h1{font-size:var(--text-2xl);margin-bottom:var(--space-sm)}.onboarding-header p{color:var(--dull-steel)}.onboarding-progress{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-2xl)}.progress-step{display:flex;align-items:center;gap:var(--space-sm);color:var(--dull-steel)}.progress-step.active{color:var(--moon-sheen)}.progress-step.active .step-number{background:var(--violet-core);color:#fff}.step-number{width:28px;height:28px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600}.step-label{font-size:var(--text-sm)}.progress-line{width:60px;height:2px;background:var(--surface)}.onboarding-error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:var(--text-sm)}.onboarding-form{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl)}.form-step h2{font-size:var(--text-xl);margin-bottom:var(--space-sm)}.form-description{color:var(--dull-steel);margin-bottom:var(--space-xl);line-height:1.6}.form-hint{font-size:var(--text-sm);color:var(--dull-steel);margin-top:var(--space-sm)}.form-actions{display:flex;gap:var(--space-md);margin-top:var(--space-xl);justify-content:flex-end}.calendar-options{display:flex;flex-direction:column;gap:var(--space-sm)}.calendar-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.calendar-option:hover{border-color:var(--violet-core)}.calendar-option.selected{border-color:var(--violet-core);background:var(--violet-glow)}.calendar-option input{display:none}.calendar-info{display:flex;flex-direction:column}.calendar-info strong{color:var(--moon-sheen)}.calendar-info span{font-size:var(--text-sm);color:var(--dull-steel)}.onboarding-footer{text-align:center;margin-top:var(--space-xl);font-size:var(--text-sm);color:var(--dull-steel)}@media(max-width:640px){.onboarding-progress{flex-direction:column}.progress-line{width:2px;height:20px}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.billing-page{min-height:calc(100vh - var(--header-height));padding:var(--space-2xl) 0}.billing-header{text-align:center;margin-bottom:var(--space-2xl)}.billing-header h1{font-size:var(--text-3xl);margin-bottom:var(--space-sm)}.billing-header p{color:var(--dull-steel)}.billing-alert{padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-xl);font-size:var(--text-sm)}.billing-alert.success{background:#22c55e1a;border:1px solid rgba(34,197,94,.3);color:#22c55e}.billing-alert.warning{background:#eab3081a;border:1px solid rgba(234,179,8,.3);color:#eab308}.billing-alert.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444}.current-subscription{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);margin-bottom:var(--space-2xl)}.current-subscription h2{font-size:var(--text-lg);margin-bottom:var(--space-md)}.subscription-details{display:flex;justify-content:space-between;align-items:center}.subscription-info{display:flex;align-items:center;gap:var(--space-md)}.subscription-plan{font-size:var(--text-xl);font-weight:600;color:var(--moon-sheen)}.subscription-status{font-size:var(--text-sm);padding:4px 8px;border-radius:var(--radius-sm);background:#22c55e33;color:#22c55e;text-transform:capitalize}.billing-toggle{display:flex;justify-content:center;gap:var(--space-sm);margin-bottom:var(--space-2xl);background:var(--ashen-char);padding:var(--space-xs);border-radius:var(--radius-lg);width:fit-content;margin-left:auto;margin-right:auto}.billing-toggle button{padding:var(--space-sm) var(--space-lg);border:none;background:transparent;color:var(--dull-steel);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:var(--space-sm)}.billing-toggle button:hover{color:var(--moon-sheen)}.billing-toggle button.active{background:var(--violet-core);color:#fff}.save-badge{font-size:10px;background:#22c55e33;color:#22c55e;padding:2px 6px;border-radius:var(--radius-sm)}.plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-xl);max-width:800px;margin:0 auto}.plan-card{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);position:relative}.plan-card.current{border-color:var(--violet-core)}.current-badge{position:absolute;top:var(--space-md);right:var(--space-md);font-size:10px;background:var(--violet-core);color:#fff;padding:4px 8px;border-radius:var(--radius-sm);text-transform:uppercase;font-weight:600}.plan-card h3{font-size:var(--text-2xl);margin-bottom:var(--space-xs)}.plan-description{color:var(--dull-steel);font-size:var(--text-sm);margin-bottom:var(--space-lg)}.plan-price{margin-bottom:var(--space-lg)}.price-amount{font-size:var(--text-3xl);font-weight:700;color:var(--moon-sheen)}.price-period{color:var(--dull-steel)}.plan-features{list-style:none;padding:0;margin:0 0 var(--space-xl)}.plan-features li{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font-size:var(--text-sm);color:var(--silver-ash)}.plan-features .check{color:#22c55e}.plan-card .btn{width:100%}.billing-note{text-align:center;margin-top:var(--space-2xl);color:var(--dull-steel);font-size:var(--text-sm)}@media(max-width:640px){.subscription-details{flex-direction:column;gap:var(--space-md);align-items:flex-start}.billing-toggle{width:100%}.billing-toggle button{flex:1;justify-content:center}}.admin-page{min-height:calc(100vh - var(--header-height));padding:var(--space-2xl) 0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.admin-header h1{font-size:var(--text-3xl);margin-bottom:var(--space-xs)}.admin-header p{color:var(--dull-steel)}.admin-message{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);margin-bottom:var(--space-lg)}.admin-message.success{background:#22c55e26;border:1px solid rgba(34,197,94,.3);color:#22c55e}.admin-message.error{background:#ef444426;border:1px solid rgba(239,68,68,.3);color:#ef4444}.admin-message button{background:none;border:none;color:inherit;font-size:var(--text-xl);cursor:pointer;padding:0;line-height:1}.admin-tabs{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xl);border-bottom:1px solid var(--ashen-char);padding-bottom:var(--space-xs)}.admin-tab{background:none;border:none;padding:var(--space-sm) var(--space-lg);color:var(--dull-steel);font-size:var(--text-base);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;transition:all var(--transition-fast)}.admin-tab:hover{background:var(--ashen-char);color:var(--moon-sheen)}.admin-tab.active{background:var(--ashen-char);color:var(--ember-violet)}.admin-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);margin-bottom:var(--space-2xl)}.admin-stat-card{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center}.admin-stat-card .stat-value{font-size:var(--text-4xl);font-weight:700;color:var(--moon-sheen)}.admin-stat-card .stat-label{font-size:var(--text-sm);color:var(--dull-steel);margin-top:var(--space-xs)}.admin-stat-card .stat-subtext{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-xs)}.admin-section h2{font-size:var(--text-xl);margin-bottom:var(--space-md)}.admin-table-wrapper{overflow-x:auto;background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg)}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:var(--space-md) var(--space-lg);text-align:left}.admin-table th{background:var(--obsidian);color:var(--dull-steel);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.admin-table tr{border-bottom:1px solid var(--surface)}.admin-table tr:last-child{border-bottom:none}.admin-table tr:hover{background:#8b5cf60d}.admin-table td{color:var(--silver-ash);font-size:var(--text-sm)}.slug-cell{font-family:SF Mono,monospace;color:var(--dull-steel)}.admin-badge{display:inline-block;margin-left:var(--space-sm);padding:2px 8px;font-size:10px;font-weight:600;text-transform:uppercase;background:#8b5cf633;color:var(--ember-violet);border-radius:var(--radius-sm)}.tier-badge{display:inline-block;padding:4px 10px;font-size:var(--text-xs);font-weight:600;text-transform:capitalize;border-radius:var(--radius-sm)}.tier-badge.ward{background:#8b5cf633;color:var(--ember-violet)}.tier-badge.bulwark{background:#eab30833;color:#eab308}.tier-badge.none{background:var(--surface);color:var(--dull-steel)}.status-badge{display:inline-block;padding:4px 10px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm)}.status-badge.completed{background:#22c55e33;color:#22c55e}.status-badge.abandoned{background:#eab30833;color:#eab308}.tier-select{background:var(--obsidian);border:1px solid var(--surface);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);color:var(--silver-ash);font-size:var(--text-sm);cursor:pointer}.tier-select:hover{border-color:var(--violet-core)}.action-buttons{display:flex;gap:var(--space-xs);flex-wrap:wrap}.empty-text{color:var(--dull-steel);text-align:center;padding:var(--space-xl)}.admin-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-loading-spinner{width:40px;height:40px;border:3px solid var(--surface);border-top-color:var(--ember-violet);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.admin-stats-grid{grid-template-columns:1fr}.admin-tabs{flex-wrap:wrap}.admin-table th,.admin-table td{padding:var(--space-sm)}}.invite-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--bg-primary)}.invite-card{max-width:420px;width:100%;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:16px;padding:2.5rem;text-align:center}.invite-card.error{border-color:var(--error)}.invite-card.warning{border-color:var(--warning)}.invite-icon{font-size:3rem;margin-bottom:1rem}.invite-card h1{font-size:1.5rem;margin:0 0 .75rem}.invite-workspace{font-size:1.125rem;color:var(--text-secondary);margin:0 0 .5rem}.invite-workspace strong{color:var(--text-primary)}.invite-role{margin:0;color:var(--text-secondary)}.invite-role .role-badge{display:inline-block;padding:.25rem .75rem;background:var(--accent-muted);color:var(--accent-primary);border-radius:4px;font-weight:600;text-transform:capitalize}.invite-divider{height:1px;background:var(--border-primary);margin:1.5rem 0}.invite-instruction{color:var(--text-secondary);margin:0 0 1rem}.invite-error{color:var(--error);font-size:.9rem;margin:0 0 1rem;padding:.75rem;background:#ef44441a;border-radius:8px}.invite-card .btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;margin-bottom:.75rem}.invite-card .btn:last-child{margin-bottom:0}.btn-google img{width:18px;height:18px}.invite-email-note{font-size:.875rem;color:var(--text-tertiary);margin:1rem 0 0}.invite-email-note strong{color:var(--text-secondary)}.invite-card .loading-spinner{margin:0 auto 1rem}.invite-card p{color:var(--text-secondary)}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper:after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0px solid white;background-color:#0000;width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede",endColorstr="#c8c8c8",GradientType=0);border:1px solid #999999;box-shadow:#aaa 0 0 3px;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0%,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0%,#385380 100%);background:-o-linear-gradient(top,#3876c2 0%,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0%,#385380 100%);background:linear-gradient(to bottom,#3876c2,#385380);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#3876c2",endColorstr="#385380",GradientType=0);box-shadow:#111927 0 0 1px;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:none}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0%,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0%,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0%,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0%,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#9d9d9d",endColorstr="#c8c8c8",GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0%,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#dedede",endColorstr="#c8c8c8",GradientType=0);border:1px solid #999999;box-shadow:#aaa 0 0 3px;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:#394c59d9;border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:#88b7d500;border-left-color:#394c59d9;border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:#c2e1f500;border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px #0003;pointer-events:none;z-index:5}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:#fff;font-weight:700;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:"⛶"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-custom-time>.vis-custom-time-marker{background-color:inherit;color:#fff;font-size:12px;white-space:nowrap;padding:3px 5px;top:0;cursor:initial;z-index:inherit}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:#f7fcffa6;padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px #9a9a9a8c}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:none}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:#d5ddf666;box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:#fff;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete:after,.vis-item .vis-delete-rtl:after{content:"×";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:700;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:#fff}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-item.vis-cluster{vertical-align:center;text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-cluster-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item.vis-cluster-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-nesting-group{cursor:pointer}.vis-label.vis-nested-group.vis-group-level-unknown-but-gte1{background:#f5f5f5}.vis-label.vis-nested-group.vis-group-level-0{background-color:#fff}.vis-ltr .vis-label.vis-nested-group.vis-group-level-0 .vis-inner{padding-left:0}.vis-rtl .vis-label.vis-nested-group.vis-group-level-0 .vis-inner{padding-right:0}.vis-label.vis-nested-group.vis-group-level-1{background-color:#0000000d}.vis-ltr .vis-label.vis-nested-group.vis-group-level-1 .vis-inner{padding-left:15px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-1 .vis-inner{padding-right:15px}.vis-label.vis-nested-group.vis-group-level-2{background-color:#0000001a}.vis-ltr .vis-label.vis-nested-group.vis-group-level-2 .vis-inner{padding-left:30px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-2 .vis-inner{padding-right:30px}.vis-label.vis-nested-group.vis-group-level-3{background-color:#00000026}.vis-ltr .vis-label.vis-nested-group.vis-group-level-3 .vis-inner{padding-left:45px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-3 .vis-inner{padding-right:45px}.vis-label.vis-nested-group.vis-group-level-4{background-color:#0003}.vis-ltr .vis-label.vis-nested-group.vis-group-level-4 .vis-inner{padding-left:60px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-4 .vis-inner{padding-right:60px}.vis-label.vis-nested-group.vis-group-level-5{background-color:#00000040}.vis-ltr .vis-label.vis-nested-group.vis-group-level-5 .vis-inner{padding-left:75px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-5 .vis-inner{padding-right:75px}.vis-label.vis-nested-group.vis-group-level-6{background-color:#0000004d}.vis-ltr .vis-label.vis-nested-group.vis-group-level-6 .vis-inner{padding-left:90px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-6 .vis-inner{padding-right:90px}.vis-label.vis-nested-group.vis-group-level-7{background-color:#00000059}.vis-ltr .vis-label.vis-nested-group.vis-group-level-7 .vis-inner{padding-left:105px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-7 .vis-inner{padding-right:105px}.vis-label.vis-nested-group.vis-group-level-8{background-color:#0006}.vis-ltr .vis-label.vis-nested-group.vis-group-level-8 .vis-inner{padding-left:120px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-8 .vis-inner{padding-right:120px}.vis-label.vis-nested-group.vis-group-level-9{background-color:#00000073}.vis-ltr .vis-label.vis-nested-group.vis-group-level-9 .vis-inner{padding-left:135px}.vis-rtl .vis-label.vis-nested-group.vis-group-level-9 .vis-inner{padding-right:135px}.vis-label.vis-nested-group{background-color:#00000080}.vis-ltr .vis-label.vis-nested-group .vis-inner{padding-left:150px}.vis-rtl .vis-label.vis-nested-group .vis-inner{padding-right:150px}.vis-group-level-unknown-but-gte1{border:1px solid red}.vis-label.vis-nesting-group:before{display:inline-block;width:15px}.vis-label.vis-nesting-group.expanded:before{content:"▼"}.vis-label.vis-nesting-group.collapsed:before{content:"▶"}.vis-rtl .vis-label.vis-nesting-group.collapsed:before{content:"◀"}.vis-ltr .vis-label:not(.vis-nesting-group):not(.vis-group-level-0){padding-left:15px}.vis-rtl .vis-label:not(.vis-nesting-group):not(.vis-group-level-0){padding-right:15px}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-group-is-dragging{background:#0000001a}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content,.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-center,.vis-panel.vis-top,.vis-panel.vis-bottom{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px #000c}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}.vis-loading-screen{width:100%;height:100%;position:absolute;top:0;left:0}.timeline-section{display:flex;flex-direction:column;height:calc(100vh - 180px);min-height:500px}.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;padding:var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-md);margin-bottom:var(--space-md);align-items:center}.filter-label{font-size:.85rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-right:var(--space-sm)}.filter-button{font-family:var(--font-body);font-size:.875rem;padding:.35rem .75rem;background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.filter-button:hover{background:var(--deep-amethyst);color:var(--color-text-primary);border-color:var(--violet-core)}.filter-button.active{background:var(--violet-core);color:var(--moon-sheen);border-color:var(--ember-violet)}.filter-button.filter-clear{color:var(--dull-steel);border-style:dashed}.filter-button.filter-clear:hover{color:var(--color-text-primary);border-color:var(--silver-ash)}.filter-separator{width:1px;height:24px;background:var(--ashen-char);margin:0 var(--space-sm)}.filter-button.year-button.active{background:var(--deep-amethyst);color:var(--moon-sheen);border-color:var(--violet-core)}.timeline-wrapper{position:relative;flex:1;background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-md);overflow:hidden}.vis-timeline{font-family:var(--font-body);border:none!important;background:var(--color-bg-elevated)!important}.vis-time-axis{background:var(--color-bg-surface)!important}.vis-time-axis .vis-text{color:var(--color-text-secondary)!important;font-family:var(--font-mono)!important;font-size:.75rem!important}.vis-time-axis .vis-grid.vis-minor{border-color:#6e2ebf1a!important}.vis-time-axis .vis-grid.vis-major{border-color:#6e2ebf40!important}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{background:var(--color-bg-elevated)!important;border-color:var(--ashen-char)!important}.vis-item{background:var(--violet-core)!important;border:1px solid var(--ember-violet)!important;border-radius:var(--radius-sm)!important;color:var(--moon-sheen)!important;font-family:var(--font-body)!important;font-size:.9rem!important;padding:4px 10px!important;transition:all .15s ease!important}.vis-item.vis-selected{box-shadow:0 0 0 1px var(--ember-violet),0 0 12px #6e2ebf66!important;z-index:10!important}.vis-item:hover{background:var(--ember-violet)!important}.vis-item.vis-range{border-radius:var(--radius-sm)!important}.vis-item .vis-item-content{padding:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.event-tooltip{position:absolute;z-index:1000;background:var(--color-bg-surface);border:1px solid var(--violet-core);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);max-width:320px;box-shadow:0 8px 32px #00000080,0 0 0 1px var(--deep-amethyst);pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .15s ease,transform .15s ease}.event-tooltip.visible{opacity:1;transform:translateY(0)}.event-tooltip h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;color:var(--color-text-heading);margin-bottom:var(--space-sm)}.event-tooltip .tooltip-date{font-family:var(--font-mono);font-size:.75rem;color:var(--ember-violet);margin-bottom:var(--space-sm);letter-spacing:.02em}.event-tooltip .tooltip-location{font-size:.85rem;color:var(--dull-steel);margin-bottom:var(--space-sm);font-style:italic}.event-tooltip .tooltip-description{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--space-sm)}.event-tooltip .tooltip-characters{font-size:.85rem;color:var(--violet-core);margin-bottom:var(--space-sm)}.event-tooltip .tooltip-category{display:inline-block;margin-top:var(--space-sm);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);padding:.2rem .5rem;background:var(--deep-amethyst);border-radius:2px}.zoom-controls{position:absolute;bottom:var(--space-md);right:var(--space-md);display:flex;gap:var(--space-xs);z-index:100}.zoom-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:1.2rem;transition:all .15s ease}.zoom-button:hover{background:var(--violet-core);color:var(--moon-sheen);border-color:var(--ember-violet)}@media(max-width:768px){.timeline-section{height:calc(100vh - 240px)}.filter-bar{padding:var(--space-sm)}.filter-button{font-size:.75rem;padding:.25rem .5rem}}.timeline-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;gap:var(--space-md);color:var(--color-text-secondary)}.timeline-error{text-align:center;padding:var(--space-2xl);background:var(--dark-crimson);border:1px solid var(--blood-wine);border-radius:var(--radius-lg)}.timeline-error h2{color:var(--moon-sheen);margin-bottom:var(--space-sm)}.timeline-error p{color:var(--rusted-rose);margin:0}.timeline-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg)}.timeline-empty p{margin:0}.timeline-empty p:first-child{font-size:1.25rem;color:var(--color-text-heading);margin-bottom:var(--space-sm)}.character-card{display:block;background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;transition:all .2s ease}.character-card:hover{border-color:var(--violet-core);transform:translateY(-4px);box-shadow:var(--shadow-lg),0 0 20px #6e2ebf33}.character-avatar{position:relative;width:100%;aspect-ratio:1;background:var(--color-bg-elevated);overflow:hidden}.character-avatar img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.character-card:hover .character-avatar img{transform:scale(1.05)}.character-type-badge{position:absolute;top:var(--space-sm);right:var(--space-sm);font-family:var(--font-mono);font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:.2rem .5rem;border-radius:var(--radius-sm);background:var(--color-bg-elevated);color:var(--color-text-secondary);border:1px solid var(--ashen-char)}.character-type-badge.pc{background:var(--violet-core);color:var(--moon-sheen);border-color:var(--ember-violet)}.character-type-badge.npc{background:var(--deep-amethyst);color:var(--silver-ash);border-color:var(--violet-core)}.character-info{padding:var(--space-md)}.character-name{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--color-text-heading);margin:0 0 var(--space-xs) 0}.character-title{font-size:.875rem;font-style:italic;color:var(--ember-violet);margin:0 0 var(--space-xs) 0}.character-class{font-size:.875rem;color:var(--color-text-secondary);margin:0}.character-card.inactive{opacity:.7}.character-card.inactive .character-avatar img{filter:grayscale(.6) brightness(.75)}.character-card.inactive .character-name{color:var(--color-text-secondary)}.character-card.inactive:hover{opacity:.85}.character-inactive-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);background:#1e1a22d9;color:var(--silver-ash);font-family:var(--font-display);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:.35rem .75rem;border:1px solid var(--silver-ash);border-radius:var(--radius-sm);z-index:5;pointer-events:none}.character-card.deceased{opacity:.75}.character-card.deceased .character-avatar img{filter:grayscale(.8) brightness(.6) sepia(.2)}.character-card.deceased .character-name{color:var(--rusted-rose)}.character-card.deceased:hover{opacity:.9;border-color:var(--blood-wine)}.character-deceased-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);background:#8b2c3ae6;color:var(--rusted-rose);font-family:var(--font-display);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:.35rem .75rem;border:1px solid var(--blood-wine);border-radius:var(--radius-sm);z-index:5;pointer-events:none}.characters-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:var(--space-md);color:var(--color-text-secondary)}.characters-error{text-align:center;padding:var(--space-2xl);background:var(--dark-crimson);border:1px solid var(--blood-wine);border-radius:var(--radius-lg)}.characters-error h2{color:var(--moon-sheen);margin-bottom:var(--space-sm)}.characters-error p{color:var(--rusted-rose);margin:0}.character-tabs{display:flex;gap:var(--space-sm);margin-bottom:var(--space-xl);border-bottom:1px solid var(--ashen-char);padding-bottom:var(--space-md)}.tab-button{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-display);font-size:1.125rem;font-weight:500;padding:var(--space-sm) var(--space-lg);background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all .2s ease}.tab-button:hover{color:var(--color-text-primary);background:var(--color-bg-surface)}.tab-button.active{color:var(--moon-sheen);background:var(--violet-core);border-color:var(--ember-violet)}.tab-count{font-size:.75rem;font-weight:600;padding:.15rem .5rem;background:#0003;border-radius:10px}.tab-button.active .tab-count{background:#fff3}.characters-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg)}.characters-empty p{margin:0}.characters-empty p:first-child{font-size:1.25rem;color:var(--color-text-heading);margin-bottom:var(--space-sm)}.characters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}@media(max-width:768px){.character-tabs{flex-wrap:wrap}.tab-button{flex:1;justify-content:center}.characters-grid{grid-template-columns:1fr}}.relationship-web{display:flex;flex-direction:column;gap:var(--space-xl);position:relative}.relationship-web:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;opacity:.03;pointer-events:none;background-image:radial-gradient(circle at 20% 30%,var(--ember-violet) 1px,transparent 1px),radial-gradient(circle at 80% 70%,var(--ember-violet) 1px,transparent 1px),radial-gradient(circle at 50% 50%,var(--ember-violet) 1px,transparent 1px);background-size:100px 100px,150px 150px,80px 80px}.web-group{position:relative}.web-group-header{display:flex;align-items:center;gap:var(--space-sm);margin:0 0 var(--space-md) 0;padding-bottom:var(--space-sm);border-bottom:1px solid var(--ashen-char)}.web-direction-symbol{font-size:1.5rem;color:var(--ember-violet);min-width:32px;text-align:center}.web-direction-label{font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--dull-steel)}.web-connections{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}.web-connection{display:block;padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-left:3px solid var(--rel-color, var(--violet-core));border-radius:var(--radius-md);text-decoration:none;transition:all .2s ease;position:relative;overflow:hidden}.web-connection:after{content:"";position:absolute;top:0;right:0;width:40px;height:40px;opacity:0;transition:opacity .2s ease;background:linear-gradient(135deg,transparent 50%,var(--rel-color) 50%,transparent 51%),linear-gradient(45deg,transparent 50%,var(--rel-color) 50%,transparent 51%);background-size:8px 8px}.web-connection:hover{transform:translateY(-2px);border-color:var(--rel-color, var(--ember-violet));box-shadow:0 4px 12px #6e2ebf33}.web-connection:hover:after{opacity:.1}.web-connection.unknown{opacity:.5;pointer-events:none}.web-connection-content{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-wrap:wrap}.web-target-name{font-weight:500;color:var(--color-text-heading);font-size:1rem}.web-type-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;border-radius:var(--radius-sm);color:var(--moon-sheen);white-space:nowrap}.web-notes{margin:var(--space-sm) 0 0 0;font-size:.8125rem;color:var(--color-text-secondary);font-style:italic;line-height:1.4}@media(max-width:600px){.web-connections{grid-template-columns:1fr}.web-connection-content{flex-direction:column;align-items:flex-start}}.character-notes{margin-top:var(--space-xl)}.character-notes h2{font-family:var(--font-display);font-size:1.5rem;margin:0 0 var(--space-lg) 0;padding-bottom:var(--space-sm);border-bottom:1px solid var(--ashen-char)}.notes-loading,.notes-empty{color:var(--color-text-secondary);font-style:italic;padding:var(--space-md)}.notes-list{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.note-item{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-md)}.note-item.hidden-note{border-style:dashed;background:var(--color-bg-elevated)}.note-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);font-size:.875rem}.note-author{font-weight:600;color:var(--ember-violet)}.note-date{color:var(--color-text-secondary)}.note-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;border-radius:var(--radius-sm)}.note-badge.hidden{background:var(--deep-amethyst);color:var(--silver-ash)}.note-content{color:var(--color-text-primary);line-height:1.6;white-space:pre-wrap}.note-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--ashen-char)}.note-edit{display:flex;flex-direction:column;gap:var(--space-sm)}.note-edit textarea{width:100%;min-height:80px;resize:vertical}.note-edit-actions{display:flex;gap:var(--space-sm)}.note-form{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-md)}.note-form textarea{width:100%;min-height:80px;resize:vertical;margin-bottom:var(--space-sm)}.note-form-footer{display:flex;justify-content:space-between;align-items:center}.note-hidden-toggle{display:flex;align-items:center;gap:var(--space-xs);font-size:.875rem;color:var(--color-text-secondary);cursor:pointer}.note-hidden-toggle input{cursor:pointer}.notes-login-prompt{color:var(--color-text-secondary);font-style:italic;padding:var(--space-md);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-md);text-align:center}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer;animation:lightbox-fade-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.lightbox-close{position:absolute;top:var(--space-lg);right:var(--space-lg);background:none;border:none;color:var(--moon-sheen);font-size:2.5rem;cursor:pointer;opacity:.7;transition:opacity .2s ease;line-height:1;padding:var(--space-sm);z-index:2001}.lightbox-close:hover{opacity:1}.lightbox-content{max-width:90vw;max-height:90vh;cursor:default}.lightbox-content img{max-width:100%;max-height:90vh;object-fit:contain;border-radius:var(--radius-md);box-shadow:0 20px 60px #00000080}.spell-card{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-lg);transition:box-shadow .2s ease}.spell-card:hover{box-shadow:var(--shadow-md)}.spell-header{margin-bottom:var(--space-md)}.spell-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.spell-name{font-family:var(--font-display);font-size:1.5rem;font-weight:700;color:var(--blood-wine);margin:0 0 var(--space-xs) 0;line-height:1.2;flex:1}.spell-school-icon{font-size:1.5rem;flex-shrink:0}.spell-level-school{font-size:.9375rem;color:var(--color-text-secondary);margin:0;display:flex;align-items:center;gap:var(--space-sm)}.spell-unofficial-badge{display:inline-block;padding:.125rem .375rem;font-size:.625rem;font-weight:600;font-style:normal;text-transform:uppercase;letter-spacing:.05em;background:var(--deep-amethyst);color:var(--ember-violet);border:1px solid var(--violet-core);border-radius:var(--radius-sm)}.spell-stats{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.spell-stat{font-size:.9375rem;line-height:1.4}.stat-label{font-weight:600;color:var(--color-text-heading)}.stat-value{color:var(--color-text-primary);margin-left:var(--space-xs)}.spell-divider{height:1px;background:linear-gradient(to right,transparent,var(--blood-wine),var(--blood-wine),transparent);margin:var(--space-md) 0}.spell-description{font-size:1rem;line-height:1.6;color:var(--color-text-primary)}.spell-description p{margin:0 0 var(--space-sm) 0}.spell-description p:last-child{margin-bottom:0}.spell-description ul,.spell-description ol{margin:var(--space-sm) 0;padding-left:var(--space-lg)}.spell-description li{margin-bottom:var(--space-xs)}.spell-higher-levels{margin-top:var(--space-md);font-size:.9375rem;line-height:1.6;color:var(--color-text-primary)}.higher-levels-label{font-weight:700;font-style:italic;color:var(--color-text-heading)}.spell-higher-levels p{display:inline;margin:0}.spell-actions{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--ashen-char);display:flex;justify-content:flex-end}.spell-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-lg)}.spell-card.compact{padding:var(--space-md)}.spell-card.compact .spell-name{font-size:1.25rem}.spell-card.compact .spell-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-xs)}@media(max-width:768px){.spell-grid,.spell-card.compact .spell-stats{grid-template-columns:1fr}}.spellbook-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.spellbook-header h2{margin:0}.spellbook-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.spell-level-group{margin-bottom:var(--space-xl)}.spell-level-group h3{font-size:1.125rem;color:var(--color-text-secondary);border-bottom:1px solid var(--ashen-char);padding-bottom:var(--space-sm);margin-bottom:var(--space-md)}.character-detail-loading{display:flex;align-items:center;justify-content:center;height:400px}.character-detail-error{text-align:center;padding:var(--space-2xl)}.character-detail-error h2{margin-bottom:var(--space-lg)}.back-link{display:inline-block;font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-lg);transition:color .2s ease}.back-link:hover{color:var(--color-accent-primary)}.character-detail{display:grid;grid-template-columns:300px 1fr;gap:var(--space-xl);align-items:start}.character-sidebar{position:sticky;top:calc(80px + var(--space-lg))}.character-portrait{position:relative;width:100%;aspect-ratio:1;border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--space-lg);border:2px solid var(--ashen-char);background:var(--color-bg-elevated)}.character-portrait img{display:block;width:100%;height:100%;object-fit:cover}.character-portrait.clickable{cursor:pointer;transition:transform .2s ease}.character-portrait.clickable:hover{transform:scale(1.02)}.character-portrait.clickable:hover img{filter:brightness(1.05)}.character-portrait .character-type-badge{position:absolute;top:auto;right:auto;bottom:var(--space-sm);left:var(--space-sm);font-size:.75rem;padding:.25rem .75rem;border-radius:var(--radius-sm)}.character-type-badge.pc{background:var(--violet-core);color:var(--moon-sheen)}.character-type-badge.npc{background:var(--deep-amethyst);color:var(--silver-ash)}.character-inactive-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg);background:#1e1a22d9;color:var(--silver-ash);font-family:var(--font-display);font-size:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;padding:.5rem 1.5rem;border:2px solid var(--silver-ash);border-radius:var(--radius-sm);z-index:10}.character-detail.inactive .character-portrait img{filter:grayscale(.7) brightness(.7)}.character-detail.inactive .character-sidebar{opacity:.75}.character-detail.inactive .character-header h1{color:var(--color-text-secondary)}.character-deceased-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg);background:#8b2c3ae6;color:var(--rusted-rose);font-family:var(--font-display);font-size:1.25rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;padding:.5rem 1.5rem;border:2px solid var(--blood-wine);border-radius:var(--radius-sm);z-index:10}.character-detail.deceased .character-portrait img{filter:grayscale(.85) brightness(.55) sepia(.25)}.character-detail.deceased .character-sidebar{opacity:.8}.character-detail.deceased .character-header h1{color:var(--rusted-rose)}.character-detail.deceased .character-portrait{border-color:var(--blood-wine)}.character-stats{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md)}.stat-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--ashen-char)}.stat-row:last-child{border-bottom:none}.stat-label{font-size:.85rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-value{font-weight:500;color:var(--color-text-heading)}.dndbeyond-link{display:block;text-align:center;padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);font-size:.9rem;transition:all .2s ease}.dndbeyond-link:hover{background:var(--violet-core);border-color:var(--ember-violet);color:var(--moon-sheen)}.character-main{min-width:0}.character-header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--ashen-char)}.character-header h1{font-size:2.5rem;margin-bottom:var(--space-xs)}.character-header .character-title{font-size:1.25rem;font-style:italic;color:var(--ember-violet);margin:0}.character-lore{margin-bottom:var(--space-xl)}.character-lore h2{margin-bottom:var(--space-md)}.lore-content{line-height:1.8;color:var(--color-text-primary)}.lore-content p{margin-bottom:var(--space-md)}.lore-content blockquote{border-left:3px solid var(--violet-core);padding-left:var(--space-md);margin:var(--space-lg) 0;font-style:italic;color:var(--color-text-secondary)}.character-events h2{margin-bottom:var(--space-md)}.events-list{display:flex;flex-direction:column;gap:var(--space-md)}.event-item{display:grid;grid-template-columns:180px 1fr;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);border-left:3px solid var(--violet-core)}.event-item.category-critical{border-left-color:var(--blood-wine)}.event-item.category-discovery{border-left-color:#2a5a7a}.event-item.category-travel{border-left-color:var(--silver-ash)}.event-item.category-world{border-left-color:var(--success)}.event-date{font-family:var(--font-mono);font-size:.8rem;color:var(--ember-violet)}.event-content h4{font-size:1rem;margin:0 0 var(--space-xs) 0;color:var(--color-text-heading)}.event-location{font-size:.85rem;font-style:italic;color:var(--color-text-secondary)}.event-description{font-size:.9rem;color:var(--color-text-secondary);margin:var(--space-sm) 0 0 0}.character-empty{text-align:center;padding:var(--space-xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg);color:var(--color-text-secondary)}.character-web{margin-bottom:var(--space-2xl)}.character-web h2{display:flex;align-items:center;gap:var(--space-sm);font-size:1.5rem;margin-bottom:var(--space-lg);color:var(--color-text-heading)}.character-web h2:before{content:"🕸";font-size:1.25rem}.character-handouts{margin-bottom:var(--space-xl)}.character-handouts h2{margin-bottom:var(--space-md)}.handouts-list{display:flex;flex-direction:column;gap:var(--space-sm)}.handout-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);text-decoration:none;transition:all .15s ease}.handout-item:hover{border-color:var(--violet-core);background:var(--color-bg-elevated)}.handout-thumbnail{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm);flex-shrink:0}.handout-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--color-bg-elevated);border-radius:var(--radius-sm);flex-shrink:0}.handout-info{flex:1;min-width:0}.handout-info h4{margin:0 0 var(--space-xs) 0;font-size:.9375rem;color:var(--color-text-heading)}.handout-info p{margin:0;font-size:.8125rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-spellbook{margin-bottom:var(--space-xl)}.character-spellbook h2{margin-bottom:var(--space-md)}@media(max-width:768px){.character-detail{grid-template-columns:1fr}.character-sidebar{position:static}.character-portrait{max-width:250px;margin:0 auto var(--space-lg)}.event-item{grid-template-columns:1fr}.event-date{margin-bottom:var(--space-xs)}}.lore-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:var(--space-md);color:var(--color-text-secondary)}.lore-header{margin-bottom:var(--space-xl)}.lore-header h1{margin-bottom:var(--space-xs)}.lore-categories{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-xl)}.category-btn{padding:var(--space-xs) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:.875rem;cursor:pointer;transition:all .15s ease}.category-btn:hover{border-color:var(--violet-core);color:var(--color-text-primary)}.category-btn.active{background:var(--violet-core);border-color:var(--violet-core);color:var(--moon-sheen)}.lore-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg)}.lore-empty p:first-child{font-size:1.25rem;color:var(--color-text-heading);margin-bottom:var(--space-sm)}.lore-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-lg)}.lore-card{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);overflow:hidden;transition:all .2s ease}.lore-card:hover{border-color:var(--violet-core);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.lore-card-image{aspect-ratio:16 / 9;overflow:hidden}.lore-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.lore-card:hover .lore-card-image img{transform:scale(1.05)}.lore-card-content{padding:var(--space-lg)}.lore-card-category{display:inline-block;padding:.125rem .5rem;background:var(--deep-amethyst);border-radius:var(--radius-sm);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ember-violet);margin-bottom:var(--space-sm)}.lore-card h3{margin:0 0 var(--space-sm) 0;font-size:1.25rem;color:var(--color-text-heading);line-height:1.3}.lore-card-excerpt{margin:0;font-size:.875rem;color:var(--color-text-secondary);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.handouts-section{margin-top:var(--space-2xl);padding-top:var(--space-2xl);border-top:1px solid var(--ashen-char)}.handouts-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg);margin-bottom:var(--space-xl)}.handouts-header h2{margin-bottom:var(--space-xs)}.handout-filters{flex-shrink:0}.year-filter{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.875rem;cursor:pointer}.year-filter:focus{outline:none;border-color:var(--violet-core)}.handouts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.handout-card{display:flex;gap:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);padding:var(--space-md);transition:all .2s ease}.handout-card:hover{border-color:var(--violet-core);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.handout-thumbnail{flex-shrink:0;width:80px;height:80px;border-radius:var(--radius-md);overflow:hidden;background:var(--obsidian-core)}.handout-thumbnail img{width:100%;height:100%;object-fit:cover}.handout-icon{flex-shrink:0;width:80px;height:80px;border-radius:var(--radius-md);background:var(--deep-amethyst);display:flex;align-items:center;justify-content:center}.handout-icon .file-type-emoji{font-size:2rem;line-height:1}.handout-content{flex:1;min-width:0}.handout-date{display:inline-block;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ember-violet);margin-bottom:var(--space-xs)}.handout-content h3{margin:0 0 var(--space-xs) 0;font-size:1rem;color:var(--color-text-heading);line-height:1.3}.handout-description{margin:0;font-size:.875rem;color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media(max-width:768px){.lore-grid{grid-template-columns:1fr}.lore-categories{overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--space-sm);-webkit-overflow-scrolling:touch}.category-btn{flex-shrink:0}.handouts-header{flex-direction:column;align-items:stretch}.handout-filters{align-self:flex-start}.handouts-grid{grid-template-columns:1fr}}.article-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:var(--space-md);color:var(--color-text-secondary)}.article-not-found{text-align:center;padding:var(--space-2xl)}.article-not-found h1{margin-bottom:var(--space-md)}.article-not-found p{margin-bottom:var(--space-xl);color:var(--color-text-secondary)}.lore-article{max-width:800px;margin:0 auto}.article-header{margin-bottom:var(--space-xl)}.back-link{display:inline-block;font-size:.875rem;color:var(--color-text-secondary);margin-bottom:var(--space-lg);transition:color .15s ease}.back-link:hover{color:var(--ember-violet)}.article-category{display:inline-block;padding:.25rem .75rem;background:var(--deep-amethyst);border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--ember-violet);margin-bottom:var(--space-md)}.article-header h1{font-size:2.5rem;line-height:1.2;margin-bottom:var(--space-md)}.article-excerpt{font-size:1.25rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.article-cover{margin-bottom:var(--space-xl);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}.article-cover img{width:100%;height:auto;display:block}.article-content{font-size:1.0625rem;line-height:1.8;color:var(--color-text-primary)}.article-content h1,.article-content h2,.article-content h3,.article-content h4{margin-top:var(--space-xl);margin-bottom:var(--space-md);color:var(--color-text-heading)}.article-content h2{font-size:1.75rem;border-bottom:1px solid var(--ashen-char);padding-bottom:var(--space-sm)}.article-content h3{font-size:1.375rem}.article-content p{margin-bottom:var(--space-md)}.article-content ul,.article-content ol{margin-bottom:var(--space-md);padding-left:var(--space-xl)}.article-content li{margin-bottom:var(--space-xs)}.article-content blockquote{margin:var(--space-lg) 0;padding:var(--space-md) var(--space-lg);border-left:4px solid var(--violet-core);background:var(--color-bg-surface);font-style:italic;color:var(--color-text-secondary)}.article-content blockquote p:last-child{margin-bottom:0}.article-content a{color:var(--ember-violet);text-decoration:underline;text-underline-offset:2px}.article-content a:hover{color:var(--violet-core)}.article-content img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:var(--space-lg) 0}.article-content pre{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-md);overflow-x:auto;font-family:var(--font-mono);font-size:.875rem;margin-bottom:var(--space-md)}.article-content code{font-family:var(--font-mono);font-size:.875em;background:var(--color-bg-surface);padding:.125rem .375rem;border-radius:var(--radius-sm)}.article-content pre code{background:none;padding:0}.article-content hr{border:none;height:1px;background:var(--ashen-char);margin:var(--space-xl) 0}.article-footer{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--ashen-char)}@media(max-width:768px){.article-header h1{font-size:1.75rem}.article-excerpt{font-size:1.0625rem}.article-content{font-size:1rem}}.album-viewer-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0b0b0ff2;display:flex;align-items:center;justify-content:center;z-index:2000;perspective:1500px;perspective-origin:center center}.album-viewer-container{position:relative;width:80vmin;max-width:600px;aspect-ratio:1;transform-style:preserve-3d}.album-viewer-container.opening{animation:viewer-open .4s ease-out forwards}.album-viewer-container.closing{animation:viewer-close .3s ease-in forwards}.album-viewer-image{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0009;object-fit:cover;backface-visibility:hidden;transform-origin:left center}.album-viewer-image.current{z-index:2}.album-viewer-image.next{z-index:1}@keyframes viewer-open{0%{opacity:0;transform:scale(.8) rotateY(30deg)}to{opacity:1;transform:scale(1) rotateY(0)}}@keyframes viewer-close{0%{opacity:1;transform:scale(1) rotateY(0)}to{opacity:0;transform:scale(.6) rotateY(20deg)}}@keyframes peel-forward-out{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes peel-forward-in{0%{opacity:0}50%{opacity:0}51%{opacity:1}to{opacity:1}}@keyframes peel-backward-out{0%{opacity:1}49%{opacity:1}50%{opacity:0}to{opacity:0}}@keyframes peel-backward-in{0%{transform:rotateY(-180deg)}to{transform:rotateY(0)}}.album-viewer-image.animating-peel-forward-out{animation:peel-forward-out .8s ease-in-out forwards;transform-origin:left center}.album-viewer-image.animating-peel-forward-in{animation:peel-forward-in .8s ease-in-out forwards}.album-viewer-image.animating-peel-backward-out{animation:peel-backward-out .8s ease-in-out forwards}.album-viewer-image.animating-peel-backward-in{animation:peel-backward-in .8s ease-in-out forwards;transform-origin:left center;z-index:3}@keyframes slide-forward-out{0%{transform:translate(0);opacity:1}to{transform:translate(-100%);opacity:0}}@keyframes slide-forward-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slide-backward-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}@keyframes slide-backward-in{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}.album-viewer-image.animating-slide-forward-out{animation:slide-forward-out .5s ease-in-out forwards}.album-viewer-image.animating-slide-forward-in{animation:slide-forward-in .5s ease-in-out forwards}.album-viewer-image.animating-slide-backward-out{animation:slide-backward-out .5s ease-in-out forwards}.album-viewer-image.animating-slide-backward-in{animation:slide-backward-in .5s ease-in-out forwards}@keyframes flip-forward-out{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flip-forward-in{0%{opacity:0}50%{opacity:0}51%{opacity:1}to{opacity:1}}@keyframes flip-backward-out{0%{opacity:1}49%{opacity:1}50%{opacity:0}to{opacity:0}}@keyframes flip-backward-in{0%{transform:rotateY(-180deg)}to{transform:rotateY(0)}}.album-viewer-image.animating-flip-forward-out{animation:flip-forward-out .7s ease-in-out forwards;transform-origin:left center}.album-viewer-image.animating-flip-forward-in{animation:flip-forward-in .7s ease-in-out forwards}.album-viewer-image.animating-flip-backward-out{animation:flip-backward-out .7s ease-in-out forwards}.album-viewer-image.animating-flip-backward-in{animation:flip-backward-in .7s ease-in-out forwards;transform-origin:left center;z-index:3}.album-viewer-info{position:absolute;top:var(--space-lg);left:var(--space-lg);max-width:70%}.album-viewer-info h3{font-size:1.25rem;font-weight:600;color:var(--moon-sheen);margin:0 0 var(--space-xs) 0;text-shadow:0 2px 10px rgba(0,0,0,.8)}.album-viewer-info p{font-size:.9375rem;color:var(--ember-violet);margin:0;text-shadow:0 2px 10px rgba(0,0,0,.8)}.album-viewer-close{position:absolute;top:var(--space-lg);right:var(--space-lg);width:44px;height:44px;border-radius:50%;background:#1e1a22cc;border:1px solid var(--ashen-char);color:var(--moon-sheen);font-size:1.75rem;line-height:1;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.album-viewer-close:hover{background:var(--blood-wine);border-color:var(--rusted-rose)}.album-viewer-controls{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 var(--space-md);pointer-events:none}.viewer-nav{width:48px;height:48px;border-radius:50%;background:#1e1a22cc;border:1px solid var(--ashen-char);color:var(--moon-sheen);font-size:1.75rem;line-height:1;cursor:pointer;pointer-events:auto;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.viewer-nav:hover:not(:disabled){background:var(--violet-core);border-color:var(--ember-violet)}.viewer-nav:disabled{opacity:.3;cursor:not-allowed}.viewer-nav-prev{margin-left:-60px}.viewer-nav-next{margin-right:-60px}.album-viewer-label{position:absolute;bottom:calc(var(--space-xl) + 32px);left:50%;transform:translate(-50%);font-size:.8125rem;color:var(--dull-steel);text-transform:uppercase;letter-spacing:.1em;text-shadow:0 2px 8px rgba(0,0,0,.8)}.album-viewer-indicators{position:absolute;bottom:var(--space-xl);left:50%;transform:translate(-50%);display:flex;gap:var(--space-sm)}.indicator{width:10px;height:10px;border-radius:50%;background:var(--dull-steel);border:none;cursor:pointer;transition:all .2s ease;padding:0}.indicator.active{background:var(--ember-violet);transform:scale(1.3)}.indicator:hover:not(.active):not(:disabled){background:var(--silver-ash)}.indicator:disabled{cursor:not-allowed}@media(max-width:768px){.album-viewer-container{width:90vmin}.viewer-nav-prev{margin-left:var(--space-sm)}.viewer-nav-next{margin-right:var(--space-sm)}.viewer-nav,.album-viewer-close{width:40px;height:40px;font-size:1.5rem}.album-viewer-info h3{font-size:1rem}.album-viewer-info p{font-size:.875rem}}.albums-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;gap:var(--space-md);color:var(--color-text-secondary)}.albums-empty{text-align:center;padding:var(--space-2xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg)}.albums-empty p{margin:0}.albums-empty p:first-child{font-size:1.25rem;color:var(--color-text-heading);margin-bottom:var(--space-sm)}.albums-list{display:flex;flex-direction:column;gap:var(--space-2xl)}.album-section{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);overflow:hidden}.album-header{display:flex;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-bg-elevated);border-bottom:1px solid var(--ashen-char)}.album-cover{flex-shrink:0;width:150px;height:150px;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.album-cover:hover{transform:scale(1.03);box-shadow:0 12px 30px #6e2ebf4d}.album-cover img{width:100%;height:100%;object-fit:cover}.album-info{display:flex;flex-direction:column;justify-content:center}.album-info h2{font-size:1.75rem;margin:0 0 var(--space-xs) 0}.album-artist{font-size:1.125rem;color:var(--ember-violet);margin:0 0 var(--space-xs) 0}.album-artist a{color:inherit;text-decoration:none;transition:color .15s ease}.album-artist a:hover{color:var(--violet-core);text-decoration:underline}.album-year{font-size:.875rem;color:var(--color-text-secondary);margin:0 0 var(--space-xs) 0}.album-tracks{font-size:.875rem;color:var(--dull-steel);margin:0}.song-list{padding:var(--space-sm) 0}.song-list .song-list-header{display:grid;grid-template-columns:60px 1fr 80px 80px;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);border-bottom:1px solid var(--ashen-char)}.song-list .song-row{display:grid;grid-template-columns:60px 1fr 80px 80px;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);align-items:center;transition:background .15s ease}.song-list .song-row:hover{background:var(--color-bg-elevated)}.song-list .song-row.active{background:var(--deep-amethyst)}.song-list .song-num{display:flex;align-items:center;justify-content:center;position:relative}.song-list .play-button{position:absolute;opacity:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--violet-core);border:none;border-radius:50%;color:var(--moon-sheen);cursor:pointer;font-size:.875rem;transition:all .15s ease}.song-list .song-row:hover .play-button,.song-list .song-row.active .play-button{opacity:1}.song-list .song-row:hover .track-num,.song-list .song-row.active .track-num{opacity:0;pointer-events:none}.song-list .play-button:hover{background:var(--ember-violet);transform:scale(1.1)}.song-list .track-num{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text-secondary)}.song-list .song-row.active .track-num{color:var(--moon-sheen)}.song-list .song-title{font-size:1rem;color:var(--color-text-primary)}.song-list .song-title .song-artist{color:var(--color-text-secondary);font-weight:400}.song-list .song-title .song-artist a{color:var(--ember-violet);text-decoration:none;transition:color .15s ease}.song-list .song-title .song-artist a:hover{color:var(--violet-core);text-decoration:underline}.song-list .song-row.active .song-title{color:var(--moon-sheen);font-weight:500}.song-list .song-duration{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text-secondary);text-align:right}.song-list .song-download{text-align:right}.song-list .download-link{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-secondary);transition:all .15s ease}.song-list .download-link:hover{background:var(--violet-core);border-color:var(--ember-violet);color:var(--moon-sheen)}.song-list .no-songs{padding:var(--space-lg);text-align:center;color:var(--color-text-secondary);font-style:italic}.song-list .song-item{display:block;width:100%;border-bottom:1px solid transparent}.song-list .song-item:has(.song-lyrics){border-bottom:1px solid var(--ashen-char);margin-bottom:var(--space-sm)}.song-list .song-lyrics{padding:var(--space-md) var(--space-lg);padding-left:calc(60px + var(--space-lg) + var(--space-md));background:var(--color-bg-elevated);border-top:1px solid var(--ashen-char)}.song-list .song-lyrics pre{margin:0;font-family:var(--font-body);font-size:.9375rem;line-height:1.8;color:var(--color-text-secondary);white-space:pre-wrap;word-wrap:break-word}@media(max-width:768px){.album-header{flex-direction:column;align-items:center;text-align:center}.album-cover{width:200px;height:200px}.song-list .song-list-header,.song-list .song-row{grid-template-columns:50px 1fr 60px}.song-list .song-download,.song-list .song-list-header .song-download{display:none}}.spellbook-loading{display:flex;align-items:center;justify-content:center;height:400px}.spellbook-page-header{margin-bottom:var(--space-xl)}.spellbook-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-lg)}.spellbook-page-header h1{margin-bottom:var(--space-sm)}.spellbook-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);padding:var(--space-md);margin-bottom:var(--space-xl);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.spellbook-filters .filter-group{display:flex;align-items:center;gap:var(--space-sm)}.spellbook-filters .filter-label{font-size:.8125rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.spellbook-filters select{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.875rem;cursor:pointer}.spellbook-filters select:focus{outline:none;border-color:var(--violet-core)}.spellbook-filters .filter-count{margin-left:auto;font-size:.8125rem;color:var(--dull-steel)}.spellbook-content{margin-bottom:var(--space-2xl)}.spellbook-content .spell-level-group{margin-bottom:var(--space-xl)}.spellbook-content .spell-level-group h2{font-size:1.25rem;color:var(--color-text-secondary);border-bottom:1px solid var(--ashen-char);padding-bottom:var(--space-sm);margin-bottom:var(--space-lg)}.spellbook-empty{text-align:center;padding:var(--space-xl);background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg);color:var(--color-text-secondary)}.spellbook-empty-state{text-align:center;padding:var(--space-2xl);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);max-width:500px;margin:var(--space-2xl) auto}.spellbook-empty-state .empty-icon{font-size:4rem;margin-bottom:var(--space-lg);opacity:.5}.spellbook-empty-state h2{margin-bottom:var(--space-md);color:var(--color-text-heading)}.spellbook-empty-state p{color:var(--color-text-secondary);line-height:1.6}@media(max-width:768px){.spellbook-title-row{flex-direction:column}.spellbook-title-row .btn{width:100%}.spellbook-filters{flex-direction:column;align-items:flex-start}.spellbook-filters .filter-count{margin-left:0;margin-top:var(--space-sm)}}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.editor-header h1{margin:0}.header-actions{display:flex;gap:var(--space-sm);align-items:center}.editor-form{max-width:800px;display:flex;flex-direction:column;gap:var(--space-lg)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg)}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.form-group input,.form-group select,.form-group textarea{padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:1rem;transition:border-color .15s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--violet-core)}.form-group input::placeholder{color:var(--dull-steel)}.form-actions{display:flex;gap:var(--space-md);padding-top:var(--space-lg);border-top:1px solid var(--ashen-char)}.form-section{border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-lg);padding-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.form-section legend{font-family:var(--font-display);font-size:.875rem;font-weight:600;color:var(--ember-violet);text-transform:uppercase;letter-spacing:.1em;padding:0 var(--space-sm);margin-left:calc(-1 * var(--space-sm))}.checkbox-inline{margin-top:var(--space-sm);font-size:.8125rem}.error-banner{padding:var(--space-md);background:var(--dark-crimson);border:1px solid var(--blood-wine);border-radius:var(--radius-md);color:var(--rusted-rose);font-size:.875rem}.error-text{color:var(--rusted-rose);font-size:.875rem;margin-top:var(--space-xs)}.image-uploader{width:100%}.image-preview{display:flex;align-items:flex-end;gap:var(--space-md)}.image-preview img{width:150px;height:150px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--ashen-char)}.dropzone{padding:var(--space-xl);border:2px dashed var(--ashen-char);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all .15s ease;color:var(--color-text-secondary)}.dropzone:hover,.dropzone.active{border-color:var(--violet-core);background:var(--deep-amethyst)}.dropzone.uploading{cursor:default;opacity:.7}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.upload-progress .progress-bar{width:200px;height:4px;background:var(--color-bg-surface);border-radius:2px;overflow:hidden}.upload-progress .progress-fill{height:100%;background:var(--violet-core);transition:width .2s ease}.rich-text-editor{border-radius:var(--radius-md);overflow:hidden}.rich-text-editor .ql-toolbar{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-bottom:none}.rich-text-editor .ql-container{background:var(--color-bg-surface);border:1px solid var(--ashen-char);min-height:200px;font-size:1rem}.rich-text-editor .ql-editor{color:var(--color-text-primary)}.rich-text-editor .ql-editor.ql-blank:before{color:var(--dull-steel);font-style:normal}.rich-text-editor .ql-stroke{stroke:var(--color-text-secondary)}.rich-text-editor .ql-fill{fill:var(--color-text-secondary)}.rich-text-editor .ql-picker-label{color:var(--color-text-secondary)}.rich-text-editor .ql-picker-options{background:var(--color-bg-elevated);border-color:var(--ashen-char)}.admin-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md);padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.admin-filters .filter-group{display:flex;align-items:center;gap:var(--space-sm)}.admin-filters .filter-label{font-size:.8125rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.admin-filters select{padding:var(--space-xs) var(--space-sm);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.875rem;cursor:pointer}.admin-filters select:focus{outline:none;border-color:var(--violet-core)}.admin-filters .filter-count{margin-left:auto;font-size:.8125rem;color:var(--dull-steel)}.admin-section{margin-bottom:var(--space-2xl)}.admin-section h2{margin-bottom:var(--space-md);font-size:1.125rem;color:var(--color-text-secondary)}.admin-list{display:flex;flex-direction:column;gap:var(--space-sm)}.admin-list-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);transition:all .15s ease}.admin-list-item:hover{border-color:var(--violet-core);background:var(--color-bg-elevated)}.item-image{width:48px;height:48px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0}.item-image img{width:100%;height:100%;object-fit:cover}.item-info{flex:1;min-width:0}.item-info h3{margin:0 0 var(--space-xs) 0;font-size:1rem;color:var(--color-text-heading)}.item-info p{margin:0;font-size:.875rem}.item-badge{padding:.25rem .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm)}.badge-pc{background:var(--deep-amethyst);color:var(--ember-violet)}.badge-npc{background:var(--dark-crimson);color:var(--rusted-rose)}.empty-state{padding:var(--space-2xl);text-align:center;background:var(--color-bg-surface);border:1px dashed var(--ashen-char);border-radius:var(--radius-lg)}.empty-state p:first-child{font-size:1.125rem;color:var(--color-text-heading);margin-bottom:var(--space-xs)}.songs-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--ashen-char)}.songs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.songs-header h3{margin:0}.admin-song-item{display:grid;grid-template-columns:50px 1fr auto auto;gap:var(--space-md);align-items:center;padding:var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-md);margin-bottom:var(--space-sm)}.admin-song-num{font-family:var(--font-mono);color:var(--color-text-secondary);text-align:center}.admin-song-details h4{margin:0 0 var(--space-xs) 0;font-size:.9375rem}.admin-song-details p{margin:0;font-size:.8125rem;color:var(--color-text-secondary)}.admin-song-actions{display:flex;gap:var(--space-sm)}.album-cover-section{display:flex;gap:var(--space-lg);align-items:flex-start}.album-cover-preview{width:150px;height:150px;flex-shrink:0}.album-cover-preview img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--ashen-char)}.album-cover-uploader{flex:1}@media(max-width:768px){.form-row{grid-template-columns:1fr}.editor-header{flex-direction:column;gap:var(--space-md);align-items:flex-start}.form-actions,.album-cover-section{flex-direction:column}.admin-song-item{grid-template-columns:40px 1fr}.admin-song-item .admin-song-actions{grid-column:1 / -1;justify-content:flex-end}}.event-indicator{width:4px;height:40px;border-radius:2px;flex-shrink:0}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-size:.9375rem}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--violet-core);cursor:pointer}.character-checkboxes{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);max-height:250px;overflow-y:auto}.char-type{font-size:.75rem;color:var(--dull-steel);margin-left:var(--space-xs)}.lore-placeholder{display:flex;align-items:center;justify-content:center;background:var(--color-bg-elevated);font-size:1.5rem}.help-text{font-size:.75rem;color:var(--dull-steel);margin-top:var(--space-xs)}.form-group textarea{padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:1rem;resize:vertical;min-height:80px}.form-group textarea:focus{outline:none;border-color:var(--violet-core)}.whitelist-form{display:flex;gap:var(--space-md);margin-bottom:var(--space-xl)}.whitelist-section h3{margin-bottom:var(--space-md);color:var(--color-text-secondary);font-size:1rem}.whitelist-list{display:flex;flex-direction:column;gap:var(--space-sm)}.whitelist-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.whitelist-email{font-family:var(--font-mono);font-size:.9375rem}.success-banner{padding:var(--space-md);background:#3e7a5e33;border:1px solid var(--success);border-radius:var(--radius-md);color:var(--success);font-size:.875rem}.mb-lg{margin-bottom:var(--space-lg)}@media(max-width:768px){.whitelist-form{flex-direction:column}}.migration-results{margin-top:var(--space-xl)}.migration-results h3{margin-bottom:var(--space-md)}.migration-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm)}.migration-item.success{background:#3e7a5e1a;color:var(--success)}.migration-item.error{background:#8b2c3a1a;color:var(--error)}.import-section{margin-bottom:var(--space-2xl);padding-bottom:var(--space-xl);border-bottom:1px solid var(--ashen-char)}.import-section:last-of-type{border-bottom:none}.import-section h2{font-size:1.25rem;margin-bottom:var(--space-sm)}.import-format-help{margin-bottom:var(--space-lg)}.import-format-help summary{cursor:pointer;color:var(--ember-violet);font-size:.875rem}.import-format-help pre{margin-top:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);font-size:.75rem;overflow-x:auto;white-space:pre-wrap}.file-import-row{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap}.file-import-row input[type=file]{font-size:.875rem}.preview-events{padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.preview-events h4{margin:0 0 var(--space-sm) 0;font-size:.875rem;color:var(--color-text-secondary)}.preview-events ul{margin:0;padding-left:var(--space-lg);font-size:.875rem}.preview-events li{margin-bottom:var(--space-xs)}.mt-md{margin-top:var(--space-md)}.sortable-item{display:flex;align-items:center;gap:var(--space-md)}.sortable-item-content{display:flex;align-items:center;gap:var(--space-md);flex:1;min-width:0}.drag-handle{display:flex;align-items:center;justify-content:center;width:24px;height:40px;cursor:grab;color:var(--dull-steel);font-size:1rem;letter-spacing:-.1em;-webkit-user-select:none;user-select:none;flex-shrink:0;border-radius:var(--radius-sm);transition:all .15s ease}.drag-handle:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.drag-handle:active{cursor:grabbing}.saving-indicator{font-size:.875rem;font-weight:400;color:var(--ember-violet);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sortable-list .admin-list-item{padding:0;background:var(--color-bg-surface)}.sortable-item .item-content{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);flex:1;min-width:0;text-decoration:none;color:inherit;transition:background .15s ease}.sortable-item .item-content:hover{background:var(--color-bg-elevated)}.sortable-item.dragging{box-shadow:0 8px 24px #0006;border-color:var(--ember-violet)}.admin-section>.help-text{margin-top:calc(-1 * var(--space-sm));margin-bottom:var(--space-sm)}.admin-list-item.inactive .item-image img{filter:grayscale(.5)}.inactive-tag,.hidden-tag{display:inline-block;margin-left:var(--space-sm);padding:.125rem .375rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--color-bg-elevated);color:var(--dull-steel);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);vertical-align:middle}.hidden-tag{background:var(--deep-amethyst);color:var(--ember-violet);border-color:var(--violet-core)}.admin-list-item.hidden-item{border-style:dashed}.form-group-inline{flex-direction:row;align-items:center;gap:var(--space-md)}.form-group-inline .help-text{margin-top:0}.file-type-icon{display:flex;align-items:center;justify-content:center;font-size:1.5rem}.item-date{font-size:.75rem;color:var(--ember-violet);margin-top:var(--space-xs)}.crew-list{display:flex;flex-direction:column;gap:var(--space-sm)}.crew-member-row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.crew-character-select{flex:2;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.875rem}.crew-role-select{flex:1;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.875rem}.crew-character-select:focus,.crew-role-select:focus{outline:none;border-color:var(--violet-core)}@media(max-width:768px){.crew-member-row{flex-wrap:wrap}.crew-character-select,.crew-role-select{flex:1 1 100%}}.sync-result{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-radius:var(--radius-md);font-size:.875rem;margin-bottom:var(--space-lg)}.sync-result.success{background:#3e7a5e33;border:1px solid var(--success);color:var(--success)}.sync-result.error{background:#8b454533;border:1px solid var(--error);color:var(--error)}.sync-result .dismiss-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:inherit;opacity:.7;padding:0;line-height:1}.sync-result .dismiss-btn:hover{opacity:1}.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-md)}.color-input-group{display:flex;flex-direction:column;gap:var(--space-xs)}.color-input-group label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.color-input-wrapper{display:flex;gap:var(--space-sm);align-items:center}.color-picker{width:48px;height:40px;padding:2px;border:1px solid var(--ashen-char);border-radius:var(--radius-sm);background:var(--color-bg-elevated);cursor:pointer}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none;border-radius:var(--radius-sm)}.color-picker::-moz-color-swatch{border:none;border-radius:var(--radius-sm)}.color-text{flex:1;padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-mono);font-size:.875rem;text-transform:uppercase}.color-text:focus{outline:none;border-color:var(--violet-core)}.theme-preview{padding:var(--space-lg);border:1px solid var(--ashen-char);border-radius:var(--radius-md);background:var(--preview-bg-main, var(--color-bg-main))}.preview-card{padding:var(--space-lg);background:var(--preview-bg-surface, var(--color-bg-surface));border-radius:var(--radius-md)}.preview-card h4{margin:0 0 var(--space-xs) 0;font-size:1.5rem}.preview-card p{margin:0 0 var(--space-md) 0}.preview-buttons{display:flex;gap:var(--space-sm);flex-wrap:wrap}.preview-btn-primary,.preview-btn-accent{padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-md);font-family:var(--font-display);font-size:.875rem;cursor:pointer;transition:transform .15s ease}.preview-btn-primary:hover,.preview-btn-accent:hover{transform:translateY(-1px)}@media(max-width:768px){.color-grid{grid-template-columns:1fr}}.school-icon-preview{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--color-bg-elevated);border-radius:var(--radius-md);flex-shrink:0}.unofficial-tag{display:inline-block;margin-left:var(--space-sm);padding:.125rem .375rem;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:var(--deep-amethyst);color:var(--ember-violet);border:1px solid var(--violet-core);border-radius:var(--radius-sm);vertical-align:middle}.icon-input-wrapper{display:flex;gap:var(--space-sm);align-items:center}.icon-input{width:80px;text-align:center;font-size:1.5rem}.icon-preview{font-size:2rem;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.icon-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.icon-suggestion{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);cursor:pointer;transition:all .15s ease}.icon-suggestion:hover{border-color:var(--violet-core);transform:scale(1.1)}.icon-suggestion.selected{border-color:var(--ember-violet);background:var(--deep-amethyst);box-shadow:0 0 0 2px var(--violet-core)}.login-attempts-list{display:flex;flex-direction:column;gap:var(--space-sm)}.attempt-item{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);align-items:start}.attempt-item.success{border-left:3px solid var(--success)}.attempt-item.denied{border-left:3px solid var(--error)}.attempt-status{display:flex;align-items:center}.status-badge{padding:.25rem .5rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);white-space:nowrap}.status-success{background:#3e7a5e33;color:var(--success)}.status-denied{background:#8b2c3a33;color:var(--error)}.attempt-main{min-width:0}.attempt-email{font-family:var(--font-mono);font-size:.9375rem;font-weight:500;color:var(--color-text-heading);word-break:break-all}.attempt-time{font-size:.8125rem;color:var(--color-text-secondary);margin-top:var(--space-xs)}.attempt-details{display:grid;grid-template-columns:repeat(2,auto);gap:var(--space-xs) var(--space-lg);font-size:.75rem}.detail-row{display:flex;gap:var(--space-xs)}.detail-label{color:var(--dull-steel);white-space:nowrap}.detail-value{color:var(--color-text-secondary);font-family:var(--font-mono)}.attempt-reason{grid-column:1 / -1;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--ashen-char);font-size:.8125rem;color:var(--rusted-rose)}.reason-label{color:var(--dull-steel)}.load-more-container{display:flex;justify-content:center;margin-top:var(--space-xl)}@media(max-width:768px){.attempt-item{grid-template-columns:1fr;gap:var(--space-sm)}.attempt-details{grid-template-columns:1fr}.attempt-status{order:-1}}.harptos-picker{display:flex;flex-direction:column;gap:var(--space-sm)}.harptos-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.harptos-type-toggle{display:flex;gap:var(--space-xs);margin-bottom:var(--space-xs)}.type-btn{flex:1;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:.8125rem;cursor:pointer;transition:all .15s ease}.type-btn:hover{border-color:var(--violet-core)}.type-btn.active{background:var(--violet-core);border-color:var(--violet-core);color:var(--moon-sheen)}.harptos-fields{display:flex;gap:var(--space-sm);flex-wrap:wrap}.harptos-field{display:flex;flex-direction:column;gap:var(--space-xs);flex:1;min-width:100px}.harptos-field label{font-size:.75rem;color:var(--dull-steel)}.harptos-field select,.harptos-field input{padding:var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:.875rem}.harptos-field select:focus,.harptos-field input:focus{outline:none;border-color:var(--violet-core)}.harptos-day{max-width:80px}.harptos-year{max-width:100px}.harptos-special{flex:2}.harptos-picker.disabled{opacity:.5;pointer-events:none}.harptos-picker.disabled .type-btn,.harptos-picker.disabled select,.harptos-picker.disabled input{cursor:not-allowed}.tiptap-editor{border:1px solid var(--border-color, #ccc);border-radius:var(--radius-md, 4px);overflow:hidden;background:var(--bg-input, #fff)}.tiptap-menu-bar{display:flex;flex-wrap:wrap;gap:2px;padding:8px;background:var(--bg-secondary, #f5f5f5);border-bottom:1px solid var(--border-color, #ccc)}.tiptap-menu-bar button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:4px 8px;border:none;border-radius:var(--radius-sm, 3px);background:transparent;color:var(--text-primary, #333);font-size:14px;font-family:inherit;cursor:pointer;transition:background-color .15s ease,color .15s ease}.tiptap-menu-bar button:hover:not(:disabled){background:var(--bg-hover, rgba(0, 0, 0, .1))}.tiptap-menu-bar button.is-active{background:var(--accent-color, #646cff);color:#fff}.tiptap-menu-bar button:disabled{opacity:.4;cursor:not-allowed}.tiptap-menu-bar .menu-divider{width:1px;height:24px;margin:4px 6px;background:var(--border-color, #ccc)}.tiptap-editor .tiptap{padding:12px 16px;min-height:150px;outline:none}.tiptap-editor .tiptap:focus{outline:none}.tiptap-editor .tiptap p{margin:0 0 .75em}.tiptap-editor .tiptap p:last-child{margin-bottom:0}.tiptap-editor .tiptap h1,.tiptap-editor .tiptap h2,.tiptap-editor .tiptap h3{margin:1em 0 .5em;line-height:1.3}.tiptap-editor .tiptap h1:first-child,.tiptap-editor .tiptap h2:first-child,.tiptap-editor .tiptap h3:first-child{margin-top:0}.tiptap-editor .tiptap h1{font-size:1.75em}.tiptap-editor .tiptap h2{font-size:1.5em}.tiptap-editor .tiptap h3{font-size:1.25em}.tiptap-editor .tiptap ul,.tiptap-editor .tiptap ol{margin:.5em 0;padding-left:1.5em}.tiptap-editor .tiptap li{margin:.25em 0}.tiptap-editor .tiptap li p{margin:0}.tiptap-editor .tiptap blockquote{margin:.75em 0;padding:.5em 1em;border-left:3px solid var(--accent-color, #646cff);background:var(--bg-secondary, rgba(0, 0, 0, .03));font-style:italic}.tiptap-editor .tiptap blockquote p{margin:0}.tiptap-editor .tiptap a{color:var(--accent-color, #646cff);text-decoration:underline}.tiptap-editor .tiptap a:hover{text-decoration:none}.tiptap-editor .tiptap s{text-decoration:line-through}.tiptap-editor .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--text-muted, #aaa);pointer-events:none;height:0}@media(prefers-color-scheme:dark){.tiptap-editor{background:var(--bg-input, #1a1a1a);border-color:var(--border-color, #444)}.tiptap-menu-bar{background:var(--bg-secondary, #2a2a2a);border-color:var(--border-color, #444)}.tiptap-menu-bar button{color:var(--text-primary, #eee)}.tiptap-menu-bar button:hover:not(:disabled){background:#ffffff1a}.tiptap-editor .tiptap blockquote{background:#ffffff0d}}.import-modal{max-width:800px;max-height:90vh;overflow-y:auto}.import-instructions{margin-bottom:var(--space-lg)}.import-instructions code{background:var(--color-bg-elevated);padding:.25rem .5rem;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.875rem}.import-result{padding:var(--space-md);border-radius:var(--radius-md);margin:var(--space-md) 0;font-weight:500}.import-result.success{background:#4b7a1e33;border:1px solid #4B7A1E;color:#8bc34a}.import-result.error{background:#7a1e2e33;border:1px solid var(--blood-wine);color:var(--rusted-rose)}.import-preview{margin-top:var(--space-lg)}.import-preview h3{font-size:1rem;margin-bottom:var(--space-md)}.preview-table-wrapper{overflow-x:auto;max-height:300px;overflow-y:auto;border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.preview-table{width:100%;border-collapse:collapse;font-size:.875rem}.preview-table th,.preview-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--ashen-char)}.preview-table th{background:var(--color-bg-elevated);font-weight:600;color:var(--color-text-heading);position:sticky;top:0}.preview-table tr:hover{background:var(--color-bg-surface)}.preview-table tr.invalid{background:#7a1e2e1a}.preview-table tr.invalid:hover{background:#7a1e2e33}.notes-cell{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-ok{color:#8bc34a;font-weight:600}.status-error{color:var(--rusted-rose);font-weight:600;cursor:help}.import-errors{margin-top:var(--space-md);padding:var(--space-md);background:#7a1e2e1a;border:1px solid var(--blood-wine);border-radius:var(--radius-md)}.import-errors h4{color:var(--rusted-rose);margin:0 0 var(--space-sm) 0;font-size:.9375rem}.import-errors ul{margin:0;padding-left:var(--space-lg);font-size:.875rem;color:var(--color-text-secondary)}.import-errors li{margin-bottom:var(--space-xs)}.crop-modal-overlay{z-index:1000}.crop-modal{max-width:500px;width:90vw}.crop-modal h2{margin:0 0 var(--space-lg) 0}.crop-container{position:relative;width:100%;height:350px;background:var(--color-bg-elevated);border-radius:var(--radius-md);overflow:hidden}.crop-controls{margin-top:var(--space-lg)}.zoom-control{display:flex;align-items:center;gap:var(--space-md);font-size:.875rem;color:var(--color-text-secondary)}.zoom-control input[type=range]{flex:1;height:4px;background:var(--ashen-char);border-radius:2px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.zoom-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:var(--violet-core);border-radius:50%;cursor:pointer}.zoom-control input[type=range]::-moz-range-thumb{width:16px;height:16px;background:var(--violet-core);border-radius:50%;cursor:pointer;border:none}.zoom-value{min-width:40px;text-align:right;font-family:var(--font-mono)}.crop-modal .help-text{text-align:center;margin:var(--space-md) 0}.crop-modal .modal-actions{margin-top:var(--space-lg)}.relationship-editor{background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);padding:var(--space-lg);margin-top:var(--space-md)}.relationship-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.relationship-header label{font-size:1rem;font-weight:500;color:var(--color-text-heading)}.relationship-actions{display:flex;gap:var(--space-sm)}.relationship-list{display:flex;flex-direction:column;gap:var(--space-sm)}.no-relationships{color:var(--color-text-secondary);font-style:italic;text-align:center;padding:var(--space-md)}.relationship-item{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-md);background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-left:3px solid var(--rel-color, var(--violet-core));border-radius:var(--radius-sm);position:relative}.relationship-content{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.relationship-direction{font-size:1.25rem;color:var(--ember-violet);min-width:24px;text-align:center}.relationship-target{font-weight:500;color:var(--color-text-heading)}.relationship-type-badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;border-radius:var(--radius-sm);color:var(--moon-sheen)}.relationship-notes{font-size:.875rem;color:var(--color-text-secondary);font-style:italic;margin:0;padding-left:calc(24px + var(--space-sm))}.relationship-item-actions{position:absolute;top:var(--space-sm);right:var(--space-sm);display:flex;gap:var(--space-xs);opacity:0;transition:opacity .15s ease}.relationship-item:hover .relationship-item-actions{opacity:1}.btn-icon{padding:.25rem .5rem;font-size:.75rem;background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.btn-icon:hover{background:var(--violet-core);border-color:var(--ember-violet);color:var(--moon-sheen)}.btn-icon.btn-danger:hover{background:var(--blood-wine);border-color:var(--rusted-rose)}.relationship-item.is-hidden{opacity:.6;border-style:dashed}.relationship-hidden-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.125rem .5rem;border-radius:var(--radius-sm);background:var(--dull-steel);color:var(--color-bg-elevated)}.relationship-form{margin-top:var(--space-md);padding:var(--space-md);background:var(--color-bg-elevated);border:1px dashed var(--ember-violet);border-radius:var(--radius-md)}.relationship-form .form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-md)}.relationship-form .form-group{margin-bottom:var(--space-md)}.relationship-form .form-group:last-of-type{margin-bottom:0}.relationship-form label{display:block;font-size:.875rem;font-weight:500;color:var(--color-text-heading);margin-bottom:var(--space-xs)}.relationship-form select,.relationship-form input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.9375rem}.relationship-form select:focus,.relationship-form input:focus{outline:none;border-color:var(--ember-violet);box-shadow:0 0 0 2px #8a4dff33}.form-group-inline{display:flex;flex-direction:column;gap:var(--space-xs)}.checkbox-label{display:flex;align-items:center;gap:var(--space-sm);cursor:pointer;font-weight:400}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--ember-violet);cursor:pointer}.relationship-form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--ashen-char)}@media(max-width:768px){.relationship-form .form-row{grid-template-columns:1fr}.relationship-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.relationship-item-actions{opacity:1}}.album-images{display:flex;flex-direction:column;gap:var(--space-sm)}.album-images-label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.album-images-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.album-image-slot{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md);transition:border-color .15s ease}.album-image-slot.has-image{border-color:var(--deep-amethyst)}.slot-header{display:flex;justify-content:space-between;align-items:center}.slot-label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.slot-label .required{color:var(--rusted-rose);margin-left:2px}.slot-remove{width:20px;height:20px;padding:0;background:var(--dark-crimson);border:none;border-radius:var(--radius-sm);color:var(--rusted-rose);font-size:1rem;line-height:1;cursor:pointer;transition:all .15s ease}.slot-remove:hover{background:var(--blood-wine);color:var(--moon-sheen)}.slot-preview{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden}.slot-preview img{width:100%;height:100%;object-fit:cover;cursor:pointer;transition:opacity .15s ease}.slot-preview:hover img{opacity:.8}.slot-change{position:absolute;bottom:var(--space-xs);left:50%;transform:translate(-50%);padding:var(--space-xs) var(--space-sm);background:#000000b3;border:none;border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:.6875rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;opacity:0;transition:opacity .15s ease}.slot-preview:hover .slot-change{opacity:1}.slot-empty{aspect-ratio:1;display:flex;align-items:center;justify-content:center}.slot-empty .dropzone{width:100%;height:100%;min-height:0;padding:var(--space-sm);display:flex;align-items:center;justify-content:center;font-size:.75rem}.slot-uploader{margin-top:var(--space-xs)}.slot-uploader .dropzone{padding:var(--space-sm);font-size:.75rem}@media(max-width:900px){.album-images-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:500px){.album-images-grid{grid-template-columns:1fr 1fr;gap:var(--space-sm)}.album-image-slot{padding:var(--space-xs)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0b0b0fe6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:var(--space-lg)}.modal-content{background:var(--color-bg-elevated);border:1px solid var(--ashen-char);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;padding:var(--space-xl);box-shadow:var(--shadow-xl)}.modal-content h2{margin:0 0 var(--space-lg) 0}.modal-content .form-group{margin-bottom:var(--space-md)}.modal-content .form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--ashen-char)}.file-preview{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-surface);border:1px solid var(--ashen-char);border-radius:var(--radius-md)}.file-icon{font-size:1.5rem}.file-url{flex:1;font-family:var(--font-mono);font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.help-text{font-size:.8125rem;color:var(--dull-steel);margin-top:var(--space-xs)}.members-list{max-width:900px}.members-header{margin-bottom:2rem}.members-header h2{margin:0 0 .5rem}.members-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem;color:var(--text-secondary)}.invite-form{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem;margin-bottom:2rem}.invite-form h3{margin:0 0 1rem;font-size:1rem}.invite-form-row{display:flex;gap:.75rem;flex-wrap:wrap}.invite-email-input{flex:1;min-width:200px;padding:.625rem 1rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:.9rem}.invite-email-input:focus{outline:none;border-color:var(--accent-primary)}.invite-role-select{padding:.625rem 1rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:.9rem;min-width:140px}.invite-error{color:var(--error);font-size:.875rem;margin:.75rem 0 0}.invite-success{color:var(--success);font-size:.875rem;margin:.75rem 0 0}.members-section{margin-bottom:2rem}.members-section h3{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-secondary)}.members-table{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;overflow:hidden}.members-table-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:1rem;padding:.875rem 1.25rem;background:var(--bg-tertiary);font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.member-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:1rem;padding:1rem 1.25rem;align-items:center;border-top:1px solid var(--border-primary)}.member-row.pending{background:#f59e0b0d}.member-info{display:flex;flex-direction:column;gap:.125rem}.member-email{font-weight:500}.member-date{font-size:.875rem;color:var(--text-secondary)}.member-actions{display:flex;gap:.5rem}.role-badge{display:inline-block;padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.role-owner{background:#8b5cf633;color:#a78bfa}.role-gm{background:#f59e0b33;color:#fbbf24}.role-player{background:#3b82f633;color:#60a5fa}@media(max-width:768px){.members-table-header,.member-row{grid-template-columns:1fr 1fr}.members-table-header span:nth-child(3),.members-table-header span:nth-child(4),.member-row .member-date,.member-row .member-actions{display:none}}.calendar-builder{max-width:900px}.builder-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem}.builder-header h2{margin:0 0 .25rem}.calendar-builder-loading{display:flex;flex-direction:column;align-items:center;padding:4rem;color:var(--text-secondary)}.calendars-empty{text-align:center;padding:4rem 2rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px}.calendars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.calendar-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;padding:1.25rem}.calendar-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.calendar-card-header h3{margin:0;font-size:1rem}.default-badge{font-size:.7rem;padding:.2rem .5rem;background:var(--accent-muted);color:var(--accent-primary);border-radius:4px;font-weight:600;text-transform:uppercase}.calendar-card-info{margin-bottom:1rem}.calendar-card-info p{margin:0;font-size:.875rem;color:var(--text-secondary)}.calendar-card-actions{display:flex;gap:.5rem}.calendar-editor{max-width:800px}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.editor-header h2{margin:0}.editor-actions{display:flex;gap:.75rem}.editor-errors{background:#ef44441a;border:1px solid var(--error);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.editor-errors p{margin:0;color:var(--error);font-size:.9rem}.editor-errors p+p{margin-top:.5rem}.editor-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.editor-section h3{margin:0 0 1rem;font-size:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h3{margin:0}.section-description{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary)}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.preset-btn{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;text-align:left;cursor:pointer;transition:all .2s ease}.preset-btn:hover{border-color:var(--accent-primary);background:var(--bg-tertiary)}.preset-name{font-weight:600;margin-bottom:.25rem}.preset-desc{font-size:.8rem;color:var(--text-secondary)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group.inline{flex-direction:row;align-items:center}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select{padding:.625rem .875rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:.9rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary)}.months-list{display:flex;flex-direction:column;gap:.5rem}.month-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px}.month-index{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:4px;font-size:.75rem;font-weight:600;color:var(--text-secondary)}.month-name{flex:1;min-width:120px}.month-short{width:80px}.month-days{width:70px;text-align:center}.days-label{font-size:.875rem;color:var(--text-secondary)}.month-row input{padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:.875rem}.special-days-list{display:flex;flex-direction:column;gap:.5rem}.special-day-row{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;flex-wrap:wrap}.special-day-name{flex:1;min-width:140px}.special-day-count{width:60px;text-align:center}.special-day-row span{font-size:.875rem;color:var(--text-secondary)}.special-day-row select{padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary)}.special-day-row input{padding:.5rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:.875rem}.empty-state{color:var(--text-tertiary);font-style:italic;margin:0}.btn-icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.btn-danger{color:var(--error)}.btn-danger:hover{background:#ef44441a}.upgrade-prompt{display:flex;align-items:flex-start;gap:1rem;padding:1.5rem;background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;max-width:400px}.upgrade-prompt__icon{flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#8b5cf61a;color:var(--color-primary, #8b5cf6);border-radius:.5rem}.upgrade-prompt__content{flex:1}.upgrade-prompt__title{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary, #f5f5f5)}.upgrade-prompt__description{margin:0 0 .5rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0);line-height:1.4}.upgrade-prompt__tier{margin:0;font-size:.75rem;color:var(--text-tertiary, #808080)}.upgrade-prompt__tier strong{color:var(--text-secondary, #a0a0a0)}.limit-indicator{display:flex;flex-direction:column;gap:.375rem}.limit-indicator__header{display:flex;align-items:center;justify-content:space-between}.limit-indicator__label{font-size:.875rem;color:var(--text-primary, #f5f5f5)}.limit-indicator__count{font-size:.875rem;color:var(--text-secondary, #a0a0a0);font-feature-settings:"tnum"}.limit-indicator__bar{height:6px;background:var(--bg-tertiary, #3a3a5a);border-radius:3px;overflow:hidden}.limit-indicator__fill{height:100%;background:var(--color-primary, #8b5cf6);border-radius:3px;transition:width .3s ease}.limit-indicator--at-limit .limit-indicator__fill{background:var(--color-danger, #ef4444)}.limit-indicator__remaining{font-size:.75rem;color:var(--text-tertiary, #808080)}.limit-indicator--at-limit .limit-indicator__remaining{color:var(--color-danger, #ef4444)}.tier-badge{display:inline-block;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.tier-badge--bronze{background:#cd7f3233;color:#cd7f32}.tier-badge--silver{background:#c0c0c033;color:silver}.tier-badge--gold{background:#ffd70033;color:gold}.tier-badge--default{background:var(--bg-tertiary, #3a3a5a);color:var(--text-secondary, #a0a0a0)}.feature-card{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;transition:border-color .2s ease}.feature-card--enabled{border-color:var(--color-success, #10b981)}.feature-card--disabled{opacity:.8}.feature-card__status{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%}.feature-card--enabled .feature-card__status{background:#10b9811a;color:var(--color-success, #10b981)}.feature-card--disabled .feature-card__status{background:var(--bg-tertiary, #3a3a5a);color:var(--text-tertiary, #808080)}.feature-card__content{flex:1;min-width:0}.feature-card__name{margin:0 0 .25rem;font-size:.9375rem;color:var(--text-primary, #f5f5f5)}.feature-card__description{margin:0 0 .5rem;font-size:.8125rem;color:var(--text-secondary, #a0a0a0);line-height:1.4}.feature-card__tiers{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-tertiary, #808080)}.feature-card__tiers .tier-badge{margin-left:.25rem}.content-library{min-height:100%;display:flex;flex-direction:column}.library-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem;border-bottom:1px solid var(--border-color, #3a3a5a)}.library-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #f5f5f5)}.library-search{flex:0 1 300px}.library-search input{width:100%;padding:.5rem 1rem;border:1px solid var(--border-color, #3a3a5a);border-radius:.375rem;background:var(--bg-secondary, #2a2a4a);color:var(--text-primary, #f5f5f5);font-size:.875rem}.library-search input:focus{outline:none;border-color:var(--color-primary, #8b5cf6)}.library-layout{display:flex;flex:1;overflow:hidden}.library-filters{width:240px;padding:1.5rem;border-right:1px solid var(--border-color, #3a3a5a);overflow-y:auto;flex-shrink:0}.library-filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.library-filters-header h3{margin:0;font-size:1rem;color:var(--text-primary, #f5f5f5)}.library-clear-filters{background:none;border:none;color:var(--color-primary, #8b5cf6);font-size:.75rem;cursor:pointer}.library-clear-filters:hover{text-decoration:underline}.library-filter-section{margin-bottom:1.5rem}.library-filter-section h4{margin:0 0 .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #a0a0a0)}.library-filter-options{display:flex;flex-direction:column;gap:.25rem}.library-filter-option{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border:none;border-radius:.25rem;background:transparent;color:var(--text-primary, #f5f5f5);font-size:.875rem;cursor:pointer;text-align:left;transition:background-color .15s ease}.library-filter-option:hover{background:var(--bg-hover, #3a3a5a)}.library-filter-option.active{background:var(--color-primary, #8b5cf6);color:#fff}.library-filter-icon{font-size:1rem}.library-filter-dot{width:.5rem;height:.5rem;border-radius:50%}.library-filter-tags{display:flex;flex-wrap:wrap;gap:.25rem}.library-filter-tag{padding:.25rem .5rem;border:1px solid var(--border-color, #3a3a5a);border-radius:1rem;background:transparent;color:var(--text-secondary, #a0a0a0);font-size:.75rem;cursor:pointer;transition:all .15s ease}.library-filter-tag:hover{border-color:var(--color-primary, #8b5cf6);color:var(--text-primary, #f5f5f5)}.library-filter-tag.active{background:var(--color-primary, #8b5cf6);border-color:var(--color-primary, #8b5cf6);color:#fff}.library-content{flex:1;padding:1.5rem;overflow-y:auto}.library-loading,.library-error,.library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;color:var(--text-secondary, #a0a0a0);gap:1rem}.library-error{color:var(--color-danger, #ef4444)}.library-category-section{margin-bottom:2rem}.library-category-section:last-child{margin-bottom:0}.library-category-title{display:flex;align-items:center;gap:.5rem;margin:0 0 1rem;font-size:1.125rem;color:var(--text-primary, #f5f5f5)}.library-category-icon{font-size:1.25rem}.library-category-count{background:var(--bg-secondary, #2a2a4a);padding:.125rem .5rem;border-radius:.75rem;font-size:.75rem;font-weight:600;color:var(--text-secondary, #a0a0a0)}.library-items-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.library-item-card{background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;padding:1rem;transition:all .2s ease;position:relative}.library-item-card:hover{border-color:var(--color-primary, #8b5cf6)}.library-item-card.selectable{cursor:pointer}.library-item-card.selected{border-color:var(--color-primary, #8b5cf6);background:#8b5cf61a}.library-item-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.library-item-type{padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.library-item-usage{font-size:.75rem;color:var(--text-secondary, #a0a0a0)}.library-item-name{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary, #f5f5f5);line-height:1.3}.library-item-description{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0);line-height:1.4}.library-item-tags{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.75rem}.library-item-tag{padding:.125rem .375rem;background:var(--bg-tertiary, #3a3a5a);border-radius:.25rem;font-size:.75rem;color:var(--text-secondary, #a0a0a0)}.library-item-tag-more{padding:.125rem .375rem;font-size:.75rem;color:var(--text-tertiary, #808080)}.library-item-meta{font-size:.75rem;color:var(--text-tertiary, #808080);margin-bottom:.75rem}.library-item-actions{display:flex;gap:.5rem;justify-content:flex-end}.library-item-actions .btn-sm{padding:.25rem .5rem;font-size:.75rem}.library-item-selected-indicator{position:absolute;top:.5rem;right:.5rem;width:1.5rem;height:1.5rem;background:var(--color-primary, #8b5cf6);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:700}.library-selection-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--bg-secondary, #2a2a4a);border-top:1px solid var(--border-color, #3a3a5a)}.library-upgrade-prompt{padding:2rem;display:flex;align-items:center;justify-content:center;min-height:300px}.library-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.library-dialog{background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;padding:1.5rem;width:100%;max-width:400px;margin:1rem}.library-dialog h3{margin:0 0 1rem;font-size:1.25rem;color:var(--text-primary, #f5f5f5)}.library-dialog-field{margin-bottom:1rem}.library-dialog-field label{display:block;margin-bottom:.25rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0)}.library-dialog-field input,.library-dialog-field textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #3a3a5a);border-radius:.375rem;background:var(--bg-secondary, #2a2a4a);color:var(--text-primary, #f5f5f5);font-family:inherit;font-size:.875rem}.library-dialog-field input:focus,.library-dialog-field textarea:focus{outline:none;border-color:var(--color-primary, #8b5cf6)}.library-dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}@media(max-width:768px){.library-layout{flex-direction:column}.library-filters{width:100%;border-right:none;border-bottom:1px solid var(--border-color, #3a3a5a);padding:1rem}.library-filter-options{flex-direction:row;flex-wrap:wrap}.library-header{flex-direction:column;align-items:stretch}.library-search{flex:none}}.domain-settings{max-width:800px;padding:1.5rem}.domain-settings-header{margin-bottom:2rem}.domain-settings-header h2{margin:0;font-size:1.5rem;color:var(--text-primary, #f5f5f5)}.domain-settings-error{margin:1rem 0 0;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.375rem;color:var(--color-danger, #ef4444);font-size:.875rem}.domain-section{background:var(--bg-secondary, #2a2a4a);border:1px solid var(--border-color, #3a3a5a);border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.domain-section:last-child{margin-bottom:0}.domain-section h3{margin:0 0 .5rem;font-size:1.125rem;color:var(--text-primary, #f5f5f5)}.domain-section-help{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0)}.domain-status-badge{display:inline-block;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:600;text-transform:uppercase}.domain-status-badge.status-success{background:#10b98133;color:#10b981}.domain-status-badge.status-warning{background:#f59e0b33;color:#f59e0b}.domain-status-badge.status-pending{background:#3b82f633;color:#3b82f6}.domain-status-badge.status-error{background:#ef444433;color:#ef4444}.domain-status-badge.status-unknown{background:#6b728033;color:#6b7280}.subdomain-display{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.subdomain-current{display:flex;align-items:center;gap:.75rem}.subdomain-link{font-size:1.125rem;color:var(--color-primary, #8b5cf6);text-decoration:none}.subdomain-link:hover{text-decoration:underline}.subdomain-editor{display:flex;flex-direction:column;gap:1rem}.subdomain-input-group{display:flex;align-items:center}.subdomain-input{flex:1;max-width:300px;padding:.5rem .75rem;border:1px solid var(--border-color, #3a3a5a);border-right:none;border-radius:.375rem 0 0 .375rem;background:var(--bg-primary, #1a1a2e);color:var(--text-primary, #f5f5f5);font-size:.875rem}.subdomain-input:focus{outline:none;border-color:var(--color-primary, #8b5cf6)}.subdomain-suffix{padding:.5rem .75rem;background:var(--bg-tertiary, #3a3a5a);border:1px solid var(--border-color, #3a3a5a);border-radius:0 .375rem .375rem 0;color:var(--text-secondary, #a0a0a0);font-size:.875rem}.subdomain-error{margin:0;color:var(--color-danger, #ef4444);font-size:.875rem}.subdomain-actions{display:flex;gap:.5rem}.custom-domain-display{display:flex;flex-direction:column;gap:1rem}.custom-domain-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.custom-domain-info{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.custom-domain-name{font-size:1.125rem;color:var(--text-primary, #f5f5f5);font-weight:500}.custom-domain-actions{display:flex;gap:.5rem}.custom-domain-form{display:flex;flex-direction:column;gap:1rem}.domain-input-group{max-width:400px}.domain-input{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #3a3a5a);border-radius:.375rem;background:var(--bg-primary, #1a1a2e);color:var(--text-primary, #f5f5f5);font-size:.875rem}.domain-input:focus{outline:none;border-color:var(--color-primary, #8b5cf6)}.domain-error{margin:0;color:var(--color-danger, #ef4444);font-size:.875rem}.domain-form-actions{display:flex;gap:.5rem}.domain-error-message{padding:1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:.375rem}.domain-error-message p{margin:0 0 .75rem;color:var(--text-primary, #f5f5f5);font-size:.875rem}.dns-records{background:var(--bg-primary, #1a1a2e);border:1px solid var(--border-color, #3a3a5a);border-radius:.375rem;padding:1rem}.dns-records h4{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary, #f5f5f5)}.dns-help{margin:0 0 1rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0)}.dns-records-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.dns-record{background:var(--bg-secondary, #2a2a4a);border-radius:.375rem;padding:.75rem}.dns-record-header{margin-bottom:.5rem}.dns-record-type{display:inline-block;padding:.125rem .5rem;background:var(--color-primary, #8b5cf6);color:#fff;border-radius:.25rem;font-size:.75rem;font-weight:600}.dns-record-content{display:flex;flex-direction:column;gap:.375rem}.dns-record-row{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.dns-record-label{color:var(--text-secondary, #a0a0a0);min-width:50px}.dns-record-value{flex:1;padding:.25rem .5rem;background:var(--bg-primary, #1a1a2e);border-radius:.25rem;color:var(--text-primary, #f5f5f5);font-family:monospace;font-size:.75rem;word-break:break-all}.dns-copy-btn{padding:.25rem .5rem;border:none;border-radius:.25rem;background:var(--bg-tertiary, #3a3a5a);color:var(--text-secondary, #a0a0a0);font-size:.75rem;cursor:pointer;transition:all .15s ease}.dns-copy-btn:hover{background:var(--color-primary, #8b5cf6);color:#fff}.dns-note{margin:0;font-size:.75rem;color:var(--text-tertiary, #808080);font-style:italic}.domain-recommendations{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #3a3a5a)}.domain-recommendations h4{margin:0 0 .5rem;font-size:.875rem;color:var(--text-primary, #f5f5f5)}.domain-recommendations p{margin:0 0 .5rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0)}.domain-recommendations ul{margin:0;padding-left:1.25rem}.domain-recommendations li{margin-bottom:.375rem;font-size:.875rem;color:var(--text-secondary, #a0a0a0)}.domain-recommendations a{color:var(--color-primary, #8b5cf6);text-decoration:none}.domain-recommendations a:hover{text-decoration:underline}@media(max-width:600px){.subdomain-display,.custom-domain-header{flex-direction:column;align-items:flex-start}.subdomain-input-group{flex-direction:column}.subdomain-input{max-width:none;border-right:1px solid var(--border-color, #3a3a5a);border-radius:.375rem}.subdomain-suffix{width:100%;text-align:center;border-radius:.375rem;margin-top:.5rem}.dns-record-row{flex-direction:column;align-items:flex-start}.dns-record-label{min-width:auto}.dns-record-value{width:100%}.dns-copy-btn{align-self:flex-end;margin-top:.25rem}}.campaign-admin{display:flex;min-height:calc(100vh - 60px);background:var(--bg-primary)}.admin-sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border-primary);flex-shrink:0}.admin-sidebar-header{padding:1.5rem;border-bottom:1px solid var(--border-primary)}.admin-sidebar-header h2{font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.admin-sidebar-header p{font-size:.875rem;margin:0}.admin-nav{padding:1rem .75rem;display:flex;flex-direction:column;gap:.25rem}.admin-nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;border-radius:8px;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.admin-nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.admin-nav-item.active{background:var(--accent-muted);color:var(--accent-primary)}.admin-nav-icon{font-size:1.125rem}.admin-content{flex:1;padding:1.5rem 2rem;overflow-y:auto}.admin-access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center}.admin-access-denied h2{color:var(--error);margin-bottom:.5rem}.admin-access-denied p{color:var(--text-secondary)}@media(max-width:768px){.campaign-admin{flex-direction:column}.admin-sidebar{width:100%;border-right:none;border-bottom:1px solid var(--border-primary)}.admin-nav{flex-direction:row;overflow-x:auto;padding:.75rem;gap:.5rem}.admin-nav-item{flex-shrink:0;padding:.5rem .75rem}.admin-nav-label{display:none}.admin-content{padding:1rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--black-void: #0B0B0F;--obsidian: #141018;--ashen-char: #1E1A22;--surface: #252030;--violet-core: #6E2EBF;--deep-amethyst: #4B1F7A;--ember-violet: #9B5FFF;--violet-glow: rgba(110, 46, 191, .15);--gold: #B8860B;--gold-light: #DAA520;--gold-glow: rgba(184, 134, 11, .15);--blood-wine: #7A1E2E;--dark-crimson: #4E121D;--rusted-rose: #9C3A4A;--silver-ash: #C9C6CF;--dull-steel: #9A96A3;--moon-sheen: #E6E4EA;--text-muted: #6B6777;--success: #3E7A5E;--success-light: #4CAF50;--warning: #B07A2A;--error: #8B2C3A;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display: "Cinzel", "Times New Roman", serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--text-5xl: 3.5rem;--text-6xl: 4.5rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px var(--violet-glow);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--max-width: 1200px;--header-height: 4rem}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--black-void);color:var(--silver-ash);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--moon-sheen);line-height:1.2;font-weight:600}h1{font-size:var(--text-5xl)}h2{font-size:var(--text-4xl)}h3{font-size:var(--text-3xl)}h4{font-size:var(--text-2xl)}h5{font-size:var(--text-xl)}h6{font-size:var(--text-lg)}p{margin-bottom:var(--space-md)}a{color:var(--ember-violet);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--violet-core)}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-lg)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-muted{color:var(--dull-steel)}.text-primary{color:var(--ember-violet)}.text-gold{color:var(--gold-light)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-sans);font-size:var(--text-base);font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--violet-core);color:#fff}.btn-primary:hover:not(:disabled){background:var(--ember-violet);box-shadow:var(--shadow-glow)}.btn-secondary{background:transparent;color:var(--silver-ash);border:1px solid var(--ashen-char)}.btn-secondary:hover:not(:disabled){border-color:var(--violet-core);color:var(--moon-sheen)}.btn-ghost{background:transparent;color:var(--silver-ash)}.btn-ghost:hover:not(:disabled){color:var(--ember-violet)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--text-lg)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-sm)}.card{background:var(--ashen-char);border:1px solid var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);transition:all var(--transition-base)}.card:hover{border-color:var(--violet-core);box-shadow:var(--shadow-glow)}.section{padding:var(--space-4xl) 0}.section-dark{background:var(--obsidian)}.section-header{text-align:center;margin-bottom:var(--space-3xl)}.section-header h2{margin-bottom:var(--space-md)}.section-header p{color:var(--dull-steel);font-size:var(--text-lg);max-width:600px;margin:0 auto}.grid{display:grid;gap:var(--space-lg)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media(max-width:1024px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}.section{padding:var(--space-3xl) 0}}.form-group{margin-bottom:var(--space-lg)}.form-label{display:block;margin-bottom:var(--space-sm);font-size:var(--text-sm);font-weight:500;color:var(--moon-sheen)}.form-input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--obsidian);border:1px solid var(--ashen-char);border-radius:var(--radius-md);color:var(--silver-ash);font-size:var(--text-base);transition:border-color var(--transition-fast)}.form-input:focus{outline:none;border-color:var(--violet-core)}.form-input::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;border-radius:var(--radius-full)}.badge-primary{background:var(--violet-glow);color:var(--ember-violet)}.badge-gold{background:var(--gold-glow);color:var(--gold-light)}.badge-success{background:#3e7a5e33;color:var(--success-light)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--violet-glow)}50%{box-shadow:0 0 40px var(--violet-glow)}}.animate-fade-in{animation:fadeIn .5s ease forwards}.animate-slide-up{animation:slideUp .5s ease forwards}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--obsidian)}::-webkit-scrollbar-thumb{background:var(--ashen-char);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--surface)}::selection{background:var(--violet-core);color:#fff}
