/**
 * PromptHive AI v1.2 — Categories/AI Tools/Blog/Comments/Icons UI
 * Author: Mr Arslan CEO
 * Author URL: https://codester.com/mrdigitalceo
 */

/* ============================================================
   Icon Picker Modal
   ============================================================ */
.ph-icon-picker{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:14px}
.ph-icon-picker.open{display:flex}
.ph-icon-picker-overlay{position:absolute;inset:0;background:rgba(8,10,22,.62);backdrop-filter:blur(6px)}
.ph-icon-picker-modal{position:relative;width:min(880px,100%);max-height:90vh;display:flex;flex-direction:column;background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.55);overflow:hidden}
.ph-icp-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border,#243056)}
.ph-icp-head h3{font-size:16px;margin:0;display:flex;align-items:center;gap:8px}
.ph-icp-x{background:transparent;border:0;color:var(--text,#e9ecf4);cursor:pointer;padding:6px;border-radius:8px}
.ph-icp-x:hover{background:var(--bg-soft,#131a30)}
.ph-icp-filters{display:flex;gap:10px;padding:12px 18px;border-bottom:1px solid var(--border,#243056);flex-wrap:wrap}
.ph-icp-filters input,.ph-icp-filters select{flex:1;min-width:160px}
.ph-icp-grid{padding:14px;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.ph-icp-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);border-radius:12px;cursor:pointer;transition:.2s;text-align:center}
.ph-icp-item:hover{border-color:var(--primary,#8E46E8);transform:translateY(-2px);background:rgba(142,70,232,.08)}
.ph-icp-thumb{width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--primary-light,#a05cf0)}
.ph-icp-nm{font-size:11px;color:var(--text-soft,#cbd5e1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:88px}
.ph-icp-empty{grid-column:1/-1;text-align:center;color:var(--muted,#94a3b8);padding:30px}

/* Icon picker row in forms */
.ph-icon-picker-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px;background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);border-radius:12px}
.ph-icon-current{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--card,#161e36);border-radius:10px;color:var(--primary-light,#a05cf0);flex-shrink:0}
.ph-icon-label{font-size:13px;color:var(--text,#e9ecf4);font-weight:600}

/* ============================================================
   Icons Library admin grid
   ============================================================ */
.ph-iclib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.ph-iclib-card{background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);border-radius:14px;padding:14px 10px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;transition:.2s}
.ph-iclib-card:hover{border-color:var(--primary,#8E46E8);transform:translateY(-2px)}
.ph-iclib-thumb{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--card,#161e36);border-radius:14px;color:var(--primary-light,#a05cf0)}
.ph-iclib-name{font-size:13px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ph-iclib-meta{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}
.ph-iclib-actions{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}

/* ============================================================
   Admin switches & misc
   ============================================================ */
.ph-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.ph-switch input[type=checkbox]{appearance:none;-webkit-appearance:none;width:42px;height:24px;background:var(--bg-mute,#1c2440);border:1px solid var(--border,#243056);border-radius:999px;position:relative;cursor:pointer;transition:.2s;flex-shrink:0}
.ph-switch input[type=checkbox]::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#94a3b8;border-radius:999px;transition:.2s}
.ph-switch input[type=checkbox]:checked{background:var(--primary,#8E46E8);border-color:var(--primary,#8E46E8)}
.ph-switch input[type=checkbox]:checked::after{left:22px;background:#fff}
.ph-switch span{font-size:13px;color:var(--text-soft,#cbd5e1)}

.ph-cat-tn,.ph-tool-tn{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;overflow:hidden}

.badge.badge-secondary{background:rgba(148,163,184,.15);color:#94a3b8}

/* ============================================================
   Frontend — Homepage Category / AI Tool cards
   ============================================================ */
.ph-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:14px 0 22px}
.ph-card{display:flex;flex-direction:column;background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}
.ph-card:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(0,0,0,.25);border-color:var(--primary,#8E46E8)}
.ph-card-icon{width:100%;height:120px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:28px;position:relative;overflow:hidden}
.ph-card-icon img{width:64px;height:64px;object-fit:contain;border-radius:14px;background:rgba(255,255,255,.08);padding:8px}
.ph-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;min-height:96px}
.ph-card-title{font-size:15px;font-weight:700;color:var(--text,#e9ecf4);margin:0}
.ph-card-desc{font-size:12.5px;color:var(--muted,#94a3b8);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ph-card-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;color:var(--text-soft,#cbd5e1)}
.ph-card-count{display:inline-flex;align-items:center;gap:4px;color:var(--primary-light,#a05cf0)}
.ph-card-cta{display:inline-flex;align-items:center;gap:3px;color:var(--primary,#8E46E8);font-weight:600}

/* Light theme tweaks */
[data-theme=light] .ph-card{background:#fff;border-color:#e5e7eb}
[data-theme=light] .ph-iclib-card,[data-theme=light] .ph-icp-item{background:#f8fafc}
[data-theme=light] .ph-icon-picker-row{background:#f8fafc;border-color:#e5e7eb}

/* ============================================================
   Frontend Blog
   ============================================================ */
.ph-blog-hero{padding:30px 22px;background:linear-gradient(135deg,rgba(142,70,232,.18),rgba(6,182,212,.10));border:1px solid var(--border,#243056);border-radius:22px;margin-bottom:18px;text-align:center}
.ph-blog-hero h1{font-size:clamp(24px,4vw,38px);margin:0 0 8px;display:inline-flex;gap:10px;align-items:center}
.ph-blog-hero p{color:var(--muted,#94a3b8);max-width:560px;margin:0 auto 16px}
.ph-blog-search{display:flex;gap:8px;max-width:480px;margin:0 auto;flex-wrap:wrap}
.ph-blog-search input{flex:1;min-width:200px;padding:12px 16px;border-radius:12px;border:1px solid var(--border,#243056);background:var(--bg,#0b1020);color:var(--text,#e9ecf4);font-size:14px}
.ph-blog-search button{padding:12px 18px;border:0;border-radius:12px;background:var(--primary,#8E46E8);color:#fff;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}

.ph-blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-bottom:24px}
.ph-blog-card{display:flex;flex-direction:column;background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}
.ph-blog-card:hover{transform:translateY(-3px);box-shadow:0 18px 50px rgba(0,0,0,.25);border-color:var(--primary,#8E46E8)}
.ph-blog-img{aspect-ratio:16/9;background:var(--bg-soft,#131a30);overflow:hidden;display:flex;align-items:center;justify-content:center}
.ph-blog-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.ph-blog-card:hover .ph-blog-img img{transform:scale(1.05)}
.ph-blog-img-fallback{background:linear-gradient(135deg,#3b82f6,#06b6d4);color:#fff}
.ph-blog-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.ph-blog-title{font-size:16px;font-weight:700;color:var(--text,#e9ecf4);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
.ph-blog-excerpt{font-size:13px;color:var(--muted,#94a3b8);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5;flex:1}
.ph-blog-meta{font-size:12px;color:var(--muted,#94a3b8);display:inline-flex;align-items:center;gap:6px;margin-top:6px}

[data-theme=light] .ph-blog-card{background:#fff;border-color:#e5e7eb}
[data-theme=light] .ph-blog-search input{background:#fff;border-color:#e5e7eb;color:#1a1a2e}
[data-theme=light] .ph-blog-hero{background:linear-gradient(135deg,rgba(142,70,232,.08),rgba(6,182,212,.06));border-color:#e5e7eb}

/* Single article */
.ph-blog-article{background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:22px;padding:28px;margin-bottom:24px}
.ph-blog-header h1.ph-blog-h1{font-size:clamp(24px,3.4vw,36px);line-height:1.2;margin:0 0 10px}
.ph-blog-meta-row{display:flex;flex-wrap:wrap;gap:14px;color:var(--muted,#94a3b8);font-size:13px;margin-bottom:18px}
.ph-blog-meta-row span{display:inline-flex;align-items:center;gap:5px}
.ph-blog-cover-wrap{margin:0 -28px 22px;max-height:480px;overflow:hidden}
.ph-blog-cover{width:100%;height:auto;display:block}
.ph-blog-content{font-size:16px;line-height:1.75;color:var(--text-soft,#cbd5e1)}
.ph-blog-content h2{margin:24px 0 12px;font-size:24px;color:var(--text,#e9ecf4)}
.ph-blog-content h3{margin:20px 0 10px;font-size:20px;color:var(--text,#e9ecf4)}
.ph-blog-content p{margin:0 0 14px}
.ph-blog-content img{max-width:100%;border-radius:12px;margin:12px 0}
.ph-blog-content a{color:var(--primary-light,#a05cf0)}
.ph-blog-content code{background:var(--bg-soft,#131a30);padding:2px 6px;border-radius:6px;font-size:13px}
.ph-blog-content pre{background:var(--bg-soft,#131a30);padding:14px;border-radius:12px;overflow-x:auto;margin:14px 0}
.ph-blog-content blockquote{border-left:4px solid var(--primary,#8E46E8);padding:6px 14px;color:var(--muted,#94a3b8);margin:14px 0}
.ph-blog-content ul,.ph-blog-content ol{margin:10px 0 14px 24px}

.ph-blog-share{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid var(--border,#243056)}
.ph-share-btn{padding:6px 12px;border-radius:8px;background:var(--bg-soft,#131a30);color:var(--text,#e9ecf4);text-decoration:none;font-size:12px;border:1px solid var(--border,#243056);transition:.15s}
.ph-share-btn:hover{background:var(--primary,#8E46E8);color:#fff;border-color:var(--primary,#8E46E8)}

.ph-blog-related{margin-bottom:24px}

[data-theme=light] .ph-blog-article{background:#fff;border-color:#e5e7eb}
[data-theme=light] .ph-blog-content{color:#4b5563}

/* ============================================================
   Comments
   ============================================================ */
.ph-comments{background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:22px;padding:24px;margin-bottom:30px}
.ph-comment-empty{text-align:center;padding:32px;color:var(--muted,#94a3b8)}
.ph-comment-empty p{margin-top:10px}
.ph-comment-list{display:flex;flex-direction:column;gap:14px;margin-bottom:20px}
.ph-comment{display:flex;gap:12px;padding:14px;background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);border-radius:14px}
.ph-comment-reply{margin-left:24px;background:var(--bg-mute,#1c2440)}
.ph-comment-av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary,#8E46E8),var(--primary-light,#a05cf0));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;overflow:hidden}
.ph-comment-av img{width:100%;height:100%;object-fit:cover}
.ph-comment-body{flex:1;min-width:0}
.ph-comment-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;margin-bottom:4px}
.ph-comment-name{color:var(--text,#e9ecf4)}
.ph-comment-date{color:var(--muted,#94a3b8);font-size:12px}
.ph-comment-text{font-size:14px;color:var(--text-soft,#cbd5e1);line-height:1.55;word-wrap:break-word}
.ph-comment-reply-btn{margin-top:8px;background:transparent;border:0;color:var(--primary-light,#a05cf0);cursor:pointer;font-size:12px;padding:2px 6px;border-radius:6px;display:inline-flex;align-items:center;gap:4px}
.ph-comment-reply-btn:hover{background:rgba(142,70,232,.12)}
.ph-comment-children{display:flex;flex-direction:column;gap:10px;margin-top:10px}

.ph-comment-login{text-align:center;padding:28px;background:linear-gradient(135deg,rgba(142,70,232,.10),rgba(6,182,212,.06));border:1px dashed var(--border,#243056);border-radius:16px;color:var(--text,#e9ecf4)}
.ph-comment-login h3{margin:10px 0 4px}
.ph-comment-login p{color:var(--muted,#94a3b8);margin-bottom:14px}

.ph-comment-form-wrap{margin-top:16px}
.ph-comment-form{background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);padding:16px;border-radius:14px}

[data-theme=light] .ph-comments{background:#fff;border-color:#e5e7eb}
[data-theme=light] .ph-comment{background:#f5f6fa;border-color:#e5e7eb}
[data-theme=light] .ph-comment-reply{background:#eef0f6}
[data-theme=light] .ph-comment-form{background:#f5f6fa;border-color:#e5e7eb}

/* Pagination */
.ph-pagination{display:flex;gap:6px;justify-content:center;margin:18px 0}
.ph-pagination a{padding:8px 12px;border-radius:8px;background:var(--bg-soft,#131a30);color:var(--text,#e9ecf4);text-decoration:none;font-size:13px;border:1px solid var(--border,#243056)}
.ph-pagination a.active{background:var(--primary,#8E46E8);border-color:var(--primary,#8E46E8);color:#fff}
[data-theme=light] .ph-pagination a{background:#fff;border-color:#e5e7eb}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:768px){
    .ph-blog-cover-wrap{margin:0 -16px 18px}
    .ph-blog-article{padding:18px}
    .ph-icp-grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}
    .ph-icon-picker-modal{max-height:94vh}
    .ph-comment-reply{margin-left:14px}
    .ph-card-icon{height:96px}
}
@media (max-width:460px){
    .ph-card-grid{grid-template-columns:repeat(2,1fr)}
    .ph-card-icon{height:80px}
    .ph-card-body{padding:10px 12px 12px;min-height:auto}
    .ph-card-title{font-size:13.5px}
    .ph-card-desc{font-size:11.5px;-webkit-line-clamp:2}
    .ph-card-meta{font-size:11px}
}

/* ================================================================
   v1.2.1 — Separate Directory Pages (Categories / AI Tools / Collections)
   Author: Mr Arslan CEO  |  https://codester.com/mrdigitalceo
   ================================================================ */
.ph-dir-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:14px 0 18px;padding:12px 14px;background:var(--card,#161e36);border:1px solid var(--border,#243056);border-radius:14px}
.ph-dir-search{position:relative;flex:1;min-width:220px;display:flex;align-items:center;gap:8px}
.ph-dir-search input{padding-left:36px}
.ph-dir-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--muted,#94a3b8);pointer-events:none}
.ph-dir-sort{max-width:200px}
.ph-dir-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.ph-badge-star{color:#f59e0b;font-size:.9em;margin-left:4px}

/* Collection cards (cover image variant) */
.ph-col-card{overflow:hidden}
.ph-col-cover{position:relative;width:100%;aspect-ratio:16/9;background:linear-gradient(135deg,var(--primary,#8E46E8),#ec4899);overflow:hidden;display:flex;align-items:center;justify-content:center}
.ph-col-cover img{width:100%;height:100%;object-fit:cover;display:block}
.ph-col-cover-fallback{display:flex;flex-direction:column;align-items:center;gap:6px;color:#fff;text-align:center;padding:18px}
.ph-col-cover-lbl{font-size:13px;font-weight:600;opacity:.95;line-height:1.25;max-width:80%}

/* AI Tool detail hero */
.ph-tool-head{margin-bottom:18px}
.ph-tool-hero{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.ph-tool-hero-icon{width:84px;height:84px;border-radius:18px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;overflow:hidden}
.ph-tool-hero-icon img{width:100%;height:100%;object-fit:cover}
.ph-tool-hero-body{flex:1;min-width:240px}
.ph-tool-hero-body h1{margin:0 0 4px;font-size:26px}
.ph-tool-desc{color:var(--text-soft,#cbd5e1);margin:10px 0 0;max-width:760px;line-height:1.55}
.ph-tool-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}

/* Blog category chips & badge */
.ph-blog-cat-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}
.ph-blog-cat-chips .chip{padding:6px 12px;border-radius:999px;background:var(--bg-soft,#131a30);border:1px solid var(--border,#243056);color:var(--text-soft,#cbd5e1);font-size:13px;display:inline-flex;align-items:center;gap:6px;text-decoration:none;transition:.2s}
.ph-blog-cat-chips .chip:hover{transform:translateY(-1px);border-color:var(--primary,#8E46E8)}
.ph-blog-cat-chips .chip.is-active{background:var(--primary,#8E46E8);color:#fff;border-color:var(--primary,#8E46E8)}
.ph-blog-cat-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:600;margin-bottom:6px;letter-spacing:.2px}

/* Icon library copy buttons label hide on narrow screens */
.ph-iclib-actions .phc-lbl{margin-left:4px}
@media (max-width:600px){
    .ph-iclib-actions .phc-lbl{display:none}
}

/* ================================================================
   v1.2.1 — Mobile responsive polish for directory pages
   ================================================================ */
@media (max-width:768px){
    .ph-dir-filters{padding:10px;gap:8px}
    .ph-dir-search{min-width:0;width:100%}
    .ph-dir-sort{max-width:100%;width:100%}
    .ph-dir-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:10px}
    .ph-tool-hero-icon{width:60px;height:60px;border-radius:14px}
    .ph-tool-hero-body h1{font-size:20px}
    .ph-blog-cat-chips{margin:10px 0 14px}
    .ph-blog-cat-chips .chip{font-size:12px;padding:5px 10px}
    /* Ensure bottom-nav doesn't cover content on directory pages */
    main, .container, .ph-app, .page-body { padding-bottom: 80px; }
}
@media (max-width:414px){
    .ph-dir-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
    .ph-card-body{padding:10px}
    .ph-card-title{font-size:13.5px}
    .ph-card-desc{font-size:11.5px}
}
@media (max-width:360px){
    .ph-dir-grid{grid-template-columns:1fr}
}

/* ============================================================
 * v1.0 PATCH — Neutralise legacy gradient .ph-card-icon banner.
 * The new app-style icon card (.ph-app-card / .ph-app-grid) lives
 * in assets/css/app-experience.css. This patch makes sure that any
 * remaining legacy .ph-card / .ph-card-grid markup also adopts the
 * icon-only look (no big colored thumbnail).
 * ============================================================ */
.ph-card-grid .ph-card .ph-card-icon[style*="linear-gradient"]{
    background:transparent !important;
}
.ph-card-grid .ph-card{
    text-align:center;
}
.ph-card-grid .ph-card .ph-card-icon{
    height:64px !important;
    width:64px !important;
    margin:14px auto 8px !important;
    border-radius:18px;
    color:var(--primary,#8E46E8) !important;
    background:transparent !important;
    padding:0 !important;
}
.ph-card-grid .ph-card .ph-card-icon svg,
.ph-card-grid .ph-card .ph-card-icon .hn-icon{
    width:38px !important;height:38px !important;
    color:var(--primary,#8E46E8) !important;
}
.ph-card-grid .ph-card .ph-card-icon img{
    width:46px !important;height:46px !important;
    background:transparent !important;
}
