.npc-directory-wrap,.npc-detail-wrap{padding-bottom:40px}.db-header{text-align:center;margin-bottom:24px;position:relative}.db-lead{max-width:680px;color:var(--text-muted);margin:10px auto 0;font-size:1.05rem;line-height:1.5}.build-stamp{background-color:var(--surface-2);border-radius:var(--radius-pill);color:var(--text);padding:2px 8px;font-size:.85rem;font-weight:600;display:inline-block}.npc-toolbar{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:16px 20px;display:flex}.district-filter-group{flex-wrap:wrap;gap:8px;display:flex}.district-btn{font-family:var(--font-heading);color:var(--text-muted);background-color:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-pill);cursor:pointer;padding:6px 14px;font-size:.875rem;font-weight:700;transition:all .15s}.district-btn:hover{color:var(--text);border-color:var(--accent)}.district-btn.active{background-color:var(--accent);color:#fff;border-color:var(--accent)}[data-theme=dark] .district-btn.active{color:var(--bg)}.npc-search-box{flex:1;min-width:220px;max-width:320px}.npc-search-input{width:100%;font-family:var(--font-body);color:var(--text);background-color:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);outline:none;padding:8px 14px;font-size:.95rem;transition:border-color .15s}.npc-search-input:focus{border-color:var(--accent)}.npc-count-line{color:var(--text-muted);font-size:.9rem;font-weight:600}.npcs-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:16px;display:grid}.npc-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);color:inherit;flex-direction:column;padding:20px;text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.npc-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px);box-shadow:0 4px 14px #00000014}[data-theme=dark] .npc-card:hover{box-shadow:0 4px 14px #00000059}.npc-card-header{align-items:center;gap:16px;margin-bottom:14px;display:flex}.npc-avatar-box{border-radius:var(--radius-md);background-color:var(--surface-2);border:1px solid var(--line);flex-shrink:0;justify-content:center;align-items:center;width:76px;height:76px;display:flex;overflow:hidden}.npc-avatar-img{object-fit:cover;width:100%;height:100%}.npc-card-info{flex:1;min-width:0}.npc-card-name{font-family:var(--font-heading);color:var(--text);margin:0 0 6px;font-size:1.25rem;font-weight:700;line-height:1.2}.npc-card-district{color:var(--text-muted);font-size:.8rem;font-weight:600;display:inline-block}.npc-badge-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.npc-badge{border-radius:var(--radius-pill);border:1px solid var(--line);background-color:var(--surface-2);color:var(--text);align-items:center;gap:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.npc-badge-pin{color:#176336;background-color:#e3f5eb;border-color:#8ed4a7}[data-theme=dark] .npc-badge-pin{color:#8ee2ac;background-color:#1c3d2a;border-color:#2b6140}.npc-badge-menu{color:#8a5712;background-color:#fcf4e6;border-color:#f7d299}[data-theme=dark] .npc-badge-menu{color:#fed99b;background-color:#3b2b13;border-color:#59431e}.npc-card-stats{border-top:1px solid var(--line);color:var(--text-muted);justify-content:space-between;margin-top:auto;padding-top:12px;font-size:.85rem;display:flex}.npc-card-cta{color:var(--accent);font-weight:700}.npc-hero-grid{grid-template-columns:280px 1fr;align-items:start;gap:28px;margin-bottom:28px;display:grid}.npc-hero-portrait-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);text-align:center;padding:20px}.npc-hero-img-wrap{aspect-ratio:1;border-radius:var(--radius-md);background-color:var(--surface-2);border:1px solid var(--line);justify-content:center;align-items:center;width:100%;max-width:220px;margin:0 auto 16px;display:flex;overflow:hidden}.npc-hero-img{object-fit:cover;width:100%;height:100%}.npc-hero-name{font-family:var(--font-heading);color:var(--text);margin:0 0 6px;font-size:1.6rem;font-weight:700}.npc-hero-district-pill{background-color:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-pill);padding:4px 12px;font-size:.85rem;font-weight:600;display:inline-block}.npc-hero-content{flex-direction:column;gap:20px;display:flex}.npc-info-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px}.npc-info-title{font-family:var(--font-heading);color:var(--text);align-items:center;gap:8px;margin:0 0 12px;font-size:1.15rem;font-weight:700;display:flex}.npc-location-box{flex-direction:column;gap:12px;display:flex}.npc-map-coords-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.npc-coords-chip{background-color:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--text);padding:4px 10px;font-family:monospace;font-size:.95rem;font-weight:600}.npc-section{margin-top:32px}.npc-section-title{font-family:var(--font-heading);color:var(--text);justify-content:space-between;align-items:center;margin:0 0 16px;font-size:1.4rem;font-weight:700;display:flex}.npc-section-count{color:var(--text-muted);font-size:.9rem;font-weight:600}.quest-item-list{flex-direction:column;gap:14px;display:flex}.quest-item-card{background-color:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:inherit;flex-direction:column;gap:8px;padding:16px 20px;text-decoration:none;transition:all .15s;display:flex}.quest-item-card:hover{border-color:var(--accent);text-decoration:none;box-shadow:0 3px 10px #0000000f}.quest-item-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.quest-item-name{font-family:var(--font-heading);color:var(--text);margin:0;font-size:1.15rem;font-weight:700}.quest-category-badge{border-radius:var(--radius-pill);text-transform:uppercase;padding:2px 8px;font-size:.75rem;font-weight:700}.badge-main{color:#174b8a;background-color:#e3edf8;border:1px solid #9fc1e8}[data-theme=dark] .badge-main{color:#8ebbfa;background-color:#1a2f4c;border-color:#274773}.badge-side{color:#552882;background-color:#f1ecf7;border:1px solid #d4bee8}[data-theme=dark] .badge-side{color:#cfaff2;background-color:#351f47;border-color:#563373}.quest-item-desc{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.45}.quest-item-meta{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:4px;font-size:.85rem;display:flex}.task-preview-list{color:var(--text);margin:4px 0 0;padding:0;font-size:.88rem;list-style:inside}.task-preview-item{line-height:1.4}.npc-empty-notice{text-align:center;background-color:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-md);color:var(--text-muted);padding:24px}.npc-coords-empty{color:var(--text-muted);margin:0;font-size:.95rem;line-height:1.5}@media (width<=768px){.npc-hero-grid{grid-template-columns:1fr;gap:20px}.npc-toolbar{flex-direction:column;align-items:stretch}.npc-search-box{max-width:none}.npcs-grid{grid-template-columns:1fr}}
