.npd-directory-wrap,
.npd-front-crud-wrap{max-width:1200px;margin:0 auto 28px}
.npd-section-title{font-size:28px;font-weight:700;margin:0 0 16px;color:#143b63}
.npd-search-bar{margin:0 0 18px}
.npd-search-input,.npd-front-crud-wrap input,.npd-front-crud-wrap select{width:100%;box-sizing:border-box;padding:14px 15px;border:1px solid #d7dde5;border-radius:14px;background:#fff;font-size:16px;outline:none;transition:border-color .2s, box-shadow .2s}
.npd-search-input:focus,.npd-front-crud-wrap input:focus,.npd-front-crud-wrap select:focus{border-color:#4f86f7;box-shadow:0 0 0 4px rgba(79,134,247,.12)}
.npd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.npd-card,.npd-portal-card{background:#fff;border:1px solid #e6ebf0;border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(18,42,66,.07)}
.npd-card-image{aspect-ratio:1/1;background:linear-gradient(135deg,#eff5fb,#dfe9f7)}
.npd-card-image img{width:100%;height:100%;object-fit:cover;display:block}
.npd-card-body{padding:18px}
.npd-name{margin:0 0 12px;font-size:22px;line-height:1.25;color:#10253f}
.npd-meta{margin:0 0 8px;font-size:15px;line-height:1.6;color:#31465f;word-break:break-word}
.npd-meta a{text-decoration:none}
.npd-actions,.npd-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.npd-btn{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border:none;border-radius:12px;background:#1864f2;color:#fff;text-decoration:none;font-weight:700;cursor:pointer;transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease;box-shadow:0 10px 18px rgba(24,100,242,.16)}
.npd-btn:hover{opacity:.94;transform:translateY(-1px);color:#fff}
.npd-btn-secondary{background:#0f766e;box-shadow:0 10px 18px rgba(15,118,110,.16)}
.npd-btn-soft{background:#475569;box-shadow:0 10px 18px rgba(71,85,105,.16)}
.npd-btn-danger{background:#c62828;box-shadow:0 10px 18px rgba(198,40,40,.16)}
.npd-btn-call{background:#198754;box-shadow:0 10px 18px rgba(25,135,84,.16)}
.npd-btn-mail{background:#ea580c;box-shadow:0 10px 18px rgba(234,88,12,.16)}
.npd-btn-vcf{background:#6d28d9;box-shadow:0 10px 18px rgba(109,40,217,.16)}
.npd-empty{padding:18px;border-radius:16px;background:#fff7db;border:1px solid #efd27d;color:#6b5600}
.npd-portal-card{padding:22px;margin-bottom:20px}
.npd-portal-card h3{margin:0 0 8px;font-size:24px;color:#10253f}
.npd-portal-card p{margin:0 0 16px;color:#4c6078;line-height:1.65}
.npd-inline-form{display:flex;gap:14px;align-items:end;flex-wrap:wrap}
.npd-inline-form label,.npd-front-form label{display:block;margin:0 0 6px;font-weight:700;color:#23384d;font-size:14px}
.npd-field-grow{flex:1 1 320px}
.npd-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.npd-full{grid-column:1/-1}
.npd-message{margin-top:12px;font-weight:700}
.npd-message.success{color:#0f766e}
.npd-message.error{color:#c62828}
.npd-existing-photo{margin-top:10px}
.npd-existing-photo img{width:92px;height:92px;object-fit:cover;border-radius:14px;border:1px solid #d7dde5}
@media (max-width:991px){.npd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.npd-section-title{font-size:24px}}
@media (max-width:640px){.npd-grid,.npd-form-grid{grid-template-columns:1fr}.npd-name{font-size:20px}.npd-portal-card{padding:18px}.npd-inline-form{align-items:stretch}.npd-inline-form > div{width:100%}.npd-btn{width:100%}}
