.npcs-page{padding:2rem;background:var(--bg)}.page-header{margin-bottom:2rem;text-align:center}.header-content{display:flex;flex-direction:column;gap:16px}.eyebrow{font-size:.875rem;font-weight:600;color:var(--text);opacity:.7;text-transform:uppercase;letter-spacing:.05em}.page-header h1{font-size:2.5rem;font-weight:700;color:var(--text);margin:0;line-height:1.2}.page-header .description{font-size:1.125rem;color:var(--text);opacity:.7;max-width:600px;margin:0 auto;line-height:1.6}.filters-section{display:flex;flex-direction:column;gap:20px;margin-bottom:2rem;padding:1.5rem;background:var(--bg-elevated);border:1px solid var(--text);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04)}.search-filter{display:flex;gap:12px;align-items:center;position:relative}.search-input{flex:1;padding:.75rem 1rem;border:1px solid var(--text);border-radius:8px;background:var(--bg);color:var(--text);font-size:1rem;transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(74,124,89,.1)}.search-input::placeholder{color:var(--text);opacity:.5}.results-count{white-space:nowrap;color:var(--text);opacity:.7;font-size:.875rem;font-weight:500;padding:8px 12px;background:var(--bg);border-radius:6px;border:1px solid var(--text)}.filter-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.filter-group{display:flex;flex-direction:column}.filter-group label{font-size:.875rem;font-weight:600;color:var(--text);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px;opacity:.8}.filter-select{padding:.75rem 1rem;border:1px solid var(--text);border-radius:8px;background:var(--bg);color:var(--text);font-size:1rem;cursor:pointer;transition:border-color .2s}.filter-select:focus{outline:none}.filter-select:focus,.filter-select:hover{border-color:var(--green)}.table-container{width:100%;overflow-x:auto;background:var(--bg-elevated);border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.04);margin-bottom:2rem}.npcs-table{width:100%;border-collapse:collapse;background:var(--bg)}.npcs-table thead{background:var(--bg);border-bottom:2px solid var(--green)}.npcs-table th{padding:1rem;text-align:left;font-weight:600;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text);opacity:.8;white-space:nowrap}.npcs-table tbody tr{border-bottom:1px solid var(--text);opacity:.9;transition:background-color .2s}.npcs-table tbody tr:hover{background:var(--bg-elevated);opacity:1}.npcs-table tbody tr:last-child{border-bottom:none}.npcs-table td{padding:1rem;color:var(--text);font-size:.95rem}.npc-name{font-weight:500}.npc-location{color:var(--text);opacity:.7;font-size:.9rem}.npc-type{text-align:center}.npc-service{color:var(--text);opacity:.7}.type-badge{display:inline-block;padding:6px 12px;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#fff;white-space:nowrap}.no-results{padding:3rem 1rem!important;opacity:.7;font-style:italic}.coming-soon,.no-results{text-align:center;color:var(--text)}.coming-soon{padding:1.5rem;background:var(--bg-elevated);border:1px solid var(--text);border-radius:12px;opacity:.8;margin-bottom:2rem;box-shadow:0 2px 8px rgba(0,0,0,.04)}@media (max-width:768px){.npcs-page{padding:1rem}.page-header h1{font-size:1.75rem}.page-header .description{font-size:1rem}.filter-controls{grid-template-columns:1fr}.search-filter{flex-direction:column;align-items:stretch}.results-count{width:100%;text-align:center}.npcs-table{font-size:.875rem}.npcs-table td,.npcs-table th{padding:.75rem .5rem}@media (max-width:480px){.npcs-table td:nth-child(4),.npcs-table th:nth-child(4){display:none}}}