:root{--card-bg:rgba(255, 255, 255, 0.98);--card-shadow:0 4px 20px rgba(0, 0, 0, 0.1);--card-shadow-hover:0 12px 40px rgba(123, 26, 155, 0.2);--card-radius:1rem;--transition-fast:0.2s;--transition-medium:0.3s;--gradient-purple:#7b1a9b;--gradient-violet:#a340c4;--gradient-pink:#ff6b9d;--gradient-cyan:#00d4ff;--gradient-green:#00ff87;--text-primary:#333;--text-secondary:#666;--audio-bg:#f5f5f5;--role-color:#7b1a9b}.cast-npc-accordion{display:flex;flex-direction:column;gap:.625rem}.cast-npc-block{background:var(--card-bg);border-radius:var(--card-radius);box-shadow:0 2px 8px rgba(0,0,0,.08);overflow:hidden;position:relative;transition:transform var(--transition-medium) ease,box-shadow var(--transition-medium) ease}.cast-npc-block::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--gradient-purple),var(--gradient-pink));transform:scaleX(0);transform-origin:left;transition:transform var(--transition-medium) ease;z-index:1}.cast-npc-block:hover{transform:translateY(-4px);box-shadow:0 6px 20px rgba(123,26,155,.2)}.cast-npc-block:hover::before{transform:scaleX(1)}.cast-npc-block.is-open{box-shadow:var(--card-shadow-hover)}.cast-npc-block.is-open:hover{transform:none;box-shadow:var(--card-shadow-hover)}.cast-npc-block.recording-actions{display:block;margin-left:0}.cast-npc-header{display:grid;grid-template-areas:"toggle actions";grid-template-columns:1fr auto;align-items:center;cursor:default}.cast-npc-header:has(.cast-npc-featured-audio){grid-template-areas:"toggle audio va actions";grid-template-columns:260px 1fr auto auto}.cast-npc-header:focus-visible{outline:2px solid var(--gradient-purple);outline-offset:-2px}.cast-npc-block.is-open .cast-npc-header{border-bottom:1px solid rgba(123,26,155,.12)}.cast-npc-toggle{grid-area:toggle;display:flex;align-items:center;gap:1rem;min-width:0;padding:.875rem 0 .875rem 1.25rem}.cast-npc-actions{grid-area:actions;display:flex;align-items:center;gap:.5rem;padding:0 1.25rem 0 .5rem;cursor:pointer}.cast-npc-link--pic{display:block;flex-shrink:0}.cast-npc-pic{width:64px;height:64px;border-radius:.5rem;object-fit:cover;flex-shrink:0;border:2px solid transparent;background:linear-gradient(white,#fff) padding-box,linear-gradient(135deg,var(--gradient-purple),var(--gradient-pink)) border-box;transition:transform .2s ease,box-shadow .2s ease}.cast-npc-link--pic:hover .cast-npc-pic{transform:scale(1.08);box-shadow:0 4px 12px rgba(123,26,155,.3)}.cast-npc-link--name{text-decoration:none;transition:color .2s ease}.cast-npc-link--name:hover{color:var(--gradient-purple)}.cast-npc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.cast-npc-block-name{font-size:1.05rem;font-weight:600;color:var(--text-primary);display:inline}.cast-npc-block-name .cast-archived-badge{vertical-align:middle}.cast-npc-meta{font-size:.875rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cast-npc-chevron{width:20px;height:20px;color:var(--gradient-purple);transition:transform var(--transition-medium) ease;flex-shrink:0}.cast-npc-block.is-open .cast-npc-chevron{transform:rotate(180deg)}.cast-npc-recordings{display:none;padding:.875rem}.cast-quest-section{margin-bottom:1rem}.cast-quest-section:last-child{margin-bottom:0}.cast-quest-label{font-size:.9rem;font-weight:600;color:var(--gradient-purple);margin:0 0 .5rem;padding-bottom:.375rem;border-bottom:2px solid rgba(123,26,155,.12)}.cast-quest-link{color:inherit;text-decoration:none}.cast-quest-link:focus-visible,.cast-quest-link:hover{text-decoration:underline}.cast-quest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:.5rem}.cast-archived-badge{display:inline-block;background:rgba(123,26,155,.12);color:var(--gradient-purple);padding:.15rem .5rem;border-radius:1rem;font-size:.75rem;font-weight:500}.cast-recording-line{display:flex;align-items:baseline;gap:.375rem}.cast-recording-line .line-number{white-space:nowrap}.cast-recording-quest{font-size:.8rem;color:var(--text-secondary);font-style:italic}.cast-recording-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-radius:.75rem;background:var(--audio-bg);transition:background var(--transition-medium) ease}.cast-recording-player{margin-left:auto}.cast-recording-item:hover{background:#ebebeb}.delete-recording-btn{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#ff5252,#f44336);color:#fff;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease;padding:0;line-height:1}.delete-recording-btn:focus-visible,.delete-recording-btn:hover{transform:scale(1.1) rotate(90deg);box-shadow:0 4px 15px rgba(244,67,54,.5)}.delete-recording-btn:focus-visible{outline:2px solid var(--gradient-purple);outline-offset:2px}.archive-all-recordings-btn{background:linear-gradient(135deg,#ff7043,#f4511e);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease}.archive-all-recordings-btn:focus-visible,.archive-all-recordings-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(244,81,30,.4)}.archive-all-recordings-btn:focus-visible{outline:2px solid var(--gradient-purple);outline-offset:2px}.uploadbtn{background:linear-gradient(135deg,var(--gradient-cyan),var(--gradient-green));color:#333;border:none;padding:.75rem 1.5rem;border-radius:.5rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;transition:transform var(--transition-fast) ease,box-shadow var(--transition-fast) ease}.uploadbtn:focus-visible,.uploadbtn:hover{transform:translateY(-2px);box-shadow:0 4px 15px rgba(0,212,255,.4)}.uploadbtn:focus-visible{outline:2px solid var(--gradient-purple);outline-offset:2px}.quest-admin-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;padding:1rem;border-top:1px solid #eee}.cast-npc-featured-audio{grid-area:audio;display:flex;align-items:center;padding:.5rem .5rem .5rem 1rem;min-width:0}.cast-npc-featured-va{grid-area:va;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:.5rem;padding:.5rem 1rem}.cast-npc-va-avatar{width:64px;height:64px;border-radius:50%;border:2px solid var(--gradient-purple);object-fit:cover;transition:transform .2s ease,box-shadow .2s ease}.cast-npc-va-link--pic{display:block}.cast-npc-va-link--pic:hover .cast-npc-va-avatar{transform:scale(1.08);box-shadow:0 4px 12px rgba(123,26,155,.3)}.cast-npc-va-name{font-size:.85rem;color:var(--gradient-purple);text-decoration:none;font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}a.cast-npc-va-name:hover{color:var(--gradient-pink)}@media (prefers-reduced-motion:reduce){.cast-npc-va-avatar{transition:none}.cast-npc-va-link--pic:hover .cast-npc-va-avatar{transform:none}}@media (max-width:900px){.cast-npc-header:has(.cast-npc-featured-audio){grid-template-areas:"toggle  va     " "audio   actions";grid-template-columns:1fr auto}.cast-npc-featured-audio{padding:0 .5rem .75rem 1.25rem}.cast-npc-featured-va{justify-content:flex-end;padding:.5rem 1rem 0 0}.cast-npc-actions{padding:0 1.25rem .75rem .5rem}}@media (max-width:520px){.cast-npc-header{grid-template-areas:"toggle " "actions";grid-template-columns:1fr}.cast-npc-header:has(.cast-npc-featured-audio){grid-template-areas:"toggle  toggle " "va      va     " "audio   actions";grid-template-columns:1fr auto}.cast-npc-featured-audio .audio-waveform{display:none}.cast-npc-toggle{padding:.75rem 1rem .5rem;gap:.75rem}.cast-npc-block-name{display:block;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cast-npc-featured-va{flex-direction:row;align-items:center;justify-content:flex-end;gap:.5rem;padding:0 1rem .25rem}.cast-npc-actions{justify-content:flex-end;padding:0 1rem .75rem .25rem}}@media (max-width:500px){.cast-npc-recordings{padding:.625rem}.cast-recording-item{padding:.75rem;gap:.75rem}.delete-recording-btn{width:28px;height:28px;font-size:1rem}}@media (prefers-reduced-motion:reduce){.archive-all-recordings-btn,.cast-npc-block,.cast-npc-block::before,.cast-npc-chevron,.cast-recording-item,.delete-recording-btn,.uploadbtn{transition:none}.cast-npc-block:hover,.delete-recording-btn:hover{transform:none}.cast-npc-block::before{transform:scaleX(1)}.cast-npc-block.is-open .cast-npc-chevron{transform:none}}