/* Frontend News Publisher – Stylesheet
 *
 * This file contains all the visual styles required by the plugin. It is
 * separated from PHP to allow caching and better performance. Feel free
 * to further minify this file for production use.
 */

.fnp-form { max-width:960px; margin:20px auto; background:#fff; padding:20px; border:1px solid #e9ecef; border-radius:12px; }
.fnp-field { margin-bottom:16px; }
.fnp-field label, .fnp-field legend { display:block; font-weight:600; margin-bottom:6px; }
.fnp-field input[type=text], .fnp-field textarea, .fnp-field select { width:100%; padding:10px; border:1px solid #ccd; border-radius:8px; }
.fnp-actions { margin-top:24px; text-align:center; }
.fnp-primary-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius:999px; border:0; background:linear-gradient(135deg,#2563eb,#7c3aed); color:#fff; box-shadow:0 10px 20px rgba(37,99,235,.25); font-weight:700; cursor:pointer; }
.fnp-secondary-btn { border:1px solid #cbd5e1; background:#f8fafc; border-radius:999px; padding:10px 18px; cursor:pointer; }
.fnp-btns-inline { display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.fnp-alert { padding:12px 14px; border-radius:10px; margin-bottom:14px; }
.fnp-success { background:#ecfff2; border:1px solid #b8f0c8; }
.fnp-warning { background:#fff8e6; border:1px solid #ffe0a3; }
.fnp-danger  { background:#ffecec; border:1px solid #ffb3b3; }
.fnp-table { width:100%; border-collapse:collapse; margin:10px 0; }
.fnp-table th, .fnp-table td { border-bottom:1px solid #eee; padding:10px; text-align:right; }
.fnp-table th { background:#f8f9fa; }
.fnp-pagination { display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin:14px 0; }
.fnp-page-link, .fnp-page-current, .fnp-page-nav { border:1px solid #ddd; padding:6px 10px; border-radius:8px; text-decoration:none; }
.fnp-page-current { background:#eef2ff; border-color:#c7d2fe; }
.fnp-thumb img { display:block; max-width:180px; border-radius:8px; }
.fnp-grid { display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:900px) { .fnp-grid { grid-template-columns:1fr 1fr; } }
.fnp-seo-preview { border:1px dashed #d0d7de; padding:12px; border-radius:10px; background:#fafbfd; }
.fnp-seo-url { color:#0b57d0; font-size:.9rem; margin-bottom:6px; word-break:break-all; }
.fnp-seo-title { color:#1a0dab; font-size:1.05rem; line-height:1.4; margin-bottom:4px; }
.fnp-seo-desc { color:#4d5156; font-size:.9rem; }
.fnp-badge { display:inline-block; font-size:.75rem; background:#eef2ff; border:1px solid #c7d2fe; padding:2px 6px; border-radius:6px; margin-inline-end:6px; }
.fnp-info { display:inline-block; margin-inline-start:6px; width:18px; height:18px; border-radius:50%; background:#e2e8f0; color:#334155; font-weight:700; font-size:12px; line-height:18px; text-align:center; cursor:pointer; }
.fnp-info-box { display:none; background:#f8fafc; border:1px solid #e5e7eb; color:#334155; border-radius:8px; padding:10px; margin-top:6px; font-size:.9rem; }
.fnp-tags { display:flex; gap:6px; flex-wrap:wrap; border:1px solid #ccd; padding:8px; border-radius:8px; cursor:text; }
.fnp-tag { background:#eef2ff; border:1px solid #c7d2fe; padding:2px 8px; border-radius:999px; display:flex; align-items:center; gap:6px; }
.fnp-tag b { cursor:pointer; }
.fnp-tags input { border:none !important; outline:none; min-width:120px; }

/* Gallery modal */
.fnp-modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.4); display:none; z-index:99998; }
.fnp-modal { position:fixed; inset:auto 50% 10% 50%; transform:translateX(50%); width:min(1000px,92vw); background:#fff; border-radius:14px; box-shadow:0 10px 40px rgba(0,0,0,.25); display:none; z-index:99999; max-height:80vh; overflow:auto; }
.fnp-modal header { display:flex; justify-content:space-between; align-items:center; padding:10px 14px; border-bottom:1px solid #eee; position:sticky; top:0; background:#fff; }
.fnp-modal .body { padding:14px; }
.fnp-media-toolbar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.fnp-media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; }
.fnp-media-item { border:2px solid transparent; border-radius:10px; overflow:hidden; cursor:pointer; background:#f8fafc; display:flex; align-items:center; justify-content:center; }
.fnp-media-item.selected { border-color:#2563eb; }
.fnp-media-item img { width:100%; height:110px; object-fit:cover; display:block; }
.fnp-nonimg { width:100%; height:110px; display:flex; align-items:center; justify-content:center; font-weight:700; color:#334155; background:#e5e7eb; }
.fnp-modal footer { padding:10px 14px; border-top:1px solid #eee; display:flex; justify-content:flex-end; gap:10px; position:sticky; bottom:0; background:#fff; }
.fnp-btn { border:1px solid #cbd5e1; border-radius:8px; padding:6px 10px; background:#f8fafc; cursor:pointer; }
.fnp-btn.primary { background:#2563eb; border-color:#2563eb; color:#fff; }

/* Responsive media inside content */
img.fnp-img-responsive { max-width:100%; height:auto; display:block; margin:12px auto; }
video.fnp-video-responsive { max-width:100%; height:auto; display:block; margin:12px auto; }

/* Lightbox */
.fnp-lightbox-ov { position:fixed; inset:0; background:rgba(0,0,0,.85); display:none; align-items:center; justify-content:center; z-index:999999; }
.fnp-lightbox-ov img { max-width:94vw; max-height:90vh; border-radius:8px; box-shadow:0 10px 40px rgba(0,0,0,.5); }

/* Justify paragraphs on single posts */
.single .entry-content p,
.single .post-content p,
.single .content p { text-align:justify; }