/* ═══════════════════════════════════════════════════
   AiHaber — Card Components
   Modular card styles for news, tools, models, papers
   ═══════════════════════════════════════════════════ */

/* ─── BASE CARD ──────────────────────────────────── */
.card{background:var(--c-bg-card);border-radius:14px;overflow:hidden;border:1px solid var(--c-border);transition:all .3s cubic-bezier(.4,0,.2,1);cursor:pointer;position:relative}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(var(--c-pri-rgb),.1);border-color:var(--c-pri)}
.card-thumb{display:block;height:180px;overflow:hidden;position:relative}
.card-thumb img,.card-image{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.card:hover .card-thumb img,.card:hover .card-image{transform:scale(1.06)}
.skeleton-img{background:linear-gradient(135deg,var(--c-border),var(--c-bg-card-h));width:100%;height:100%}
.card-body{padding:16px 18px 18px}
.category-badges{display:flex;gap:6px;margin-bottom:8px;align-items:center}
.card-title{font-size:15px;font-weight:700;line-height:1.4;letter-spacing:-.01em;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-title a{color:var(--c-tx);text-decoration:none;transition:color .2s}
.card-title a:hover{color:var(--c-pri)}
.card-excerpt{font-size:13px;color:var(--c-tx-2);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:12px}

/* ─── POST META ──────────────────────────────────── */
.post-meta{display:flex;gap:10px;font-size:12px;color:var(--c-tx-3);align-items:center;padding-top:12px;border-top:1px solid var(--c-border)}
.post-meta svg{vertical-align:-2px}
.meta-author{display:flex;align-items:center;gap:6px}
.author-avatar{width:22px;height:22px;border-radius:50%;object-fit:cover;border:1.5px solid var(--c-border)}

/* ─── HERO CARD (Large Feature) ──────────────────── */
.card-large{border-radius:16px;overflow:hidden;position:relative;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end}
.card-thumb-overlay{display:flex;flex-direction:column;justify-content:flex-end;padding:32px;min-height:420px;position:relative;text-decoration:none;color:#fff}
.card-image-full{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.4,0,.2,1)}
.card-large:hover .card-image-full{transform:scale(1.03)}
.card-overlay{position:relative;z-index:1}
.card-overlay::before{content:'';position:absolute;inset:-32px;background:linear-gradient(to top,rgba(0,0,0,.88) 0%,rgba(0,0,0,.35) 50%,transparent 100%)}
.card-overlay-content{position:relative;z-index:2}
.card-title-large{font-size:26px;font-weight:800;line-height:1.25;margin-top:10px;letter-spacing:-.025em;color:#fff}
.card-subtitle{color:rgba(255,255,255,.75);font-size:14px;line-height:1.5;margin-top:8px}

/* ─── SIDE CARDS (Hero Right) ────────────────────── */
.card-small{background:var(--c-bg-card);border-radius:12px;padding:14px;border:1px solid var(--c-border);cursor:pointer;transition:all .3s;flex:1;display:flex;flex-direction:column;justify-content:center}
.card-small:hover{border-color:var(--c-pri);box-shadow:0 4px 16px rgba(var(--c-pri-rgb),.08);transform:translateY(-2px)}
.card-row{display:flex;gap:12px;align-items:flex-start}
.card-thumb-sq{width:76px;height:76px;border-radius:10px;overflow:hidden;flex-shrink:0}
.card-thumb-sq img{width:100%;height:100%;object-fit:cover}
.card-title-sm{font-size:14px;font-weight:700;line-height:1.35;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-title-sm a{color:var(--c-tx);text-decoration:none;transition:color .2s}
.card-title-sm a:hover{color:var(--c-pri)}
.card-date{font-size:11px;color:var(--c-tx-3);margin-top:4px}

/* ─── MODEL CARDS ────────────────────────────────── */
.card-model{border-radius:14px;padding:20px;transition:all .3s;cursor:pointer;position:relative;overflow:hidden}
.card-model::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--c-pri),var(--c-sec,#8B5CF6));opacity:0;transition:opacity .3s}
.card-model:hover::before{opacity:1}
.card-model:hover{box-shadow:0 8px 24px rgba(var(--c-pri-rgb),.1);transform:translateY(-3px)}
.card-model-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.model-logo{width:40px;height:40px;border-radius:12px;object-fit:contain}
.model-logo-placeholder{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;background:var(--c-pri-bg);color:var(--c-pri)}
.card-developer{font-size:12px;color:var(--c-tx-2);margin-top:4px;display:block}
.model-rating-bar{height:4px;border-radius:2px;background:var(--c-border);margin-top:14px;overflow:hidden}
.model-rating-bar .rating-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--c-pri),var(--c-sec,#8B5CF6));transition:width .6s ease}

/* ─── TOOL CARDS ─────────────────────────────────── */
.card-tool-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 0}
.tool-logo{width:52px;height:52px;border-radius:14px;object-fit:contain;border:1px solid var(--c-border)}
.tool-logo-placeholder{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;background:linear-gradient(135deg,var(--c-pri-bg),rgba(139,92,246,.08));color:var(--c-pri)}
.star-rating{display:flex;align-items:center;gap:3px;font-size:13px;font-weight:700;color:var(--c-warn)}
.star-rating svg{color:var(--c-warn)}
.card-tool-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;padding-top:12px;border-top:1px solid var(--c-border)}

/* ─── PAPER CARDS ────────────────────────────────── */
.card-paper{border-radius:14px}
.card-paper-top{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.card-authors{font-size:12px;color:var(--c-tx-2);margin-bottom:8px}
.card-paper-footer{display:flex;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--c-border)}

/* ─── RANKING CARDS (AIBase-inspired) ────────────── */
.ranking-card{background:var(--c-bg-card);border:1px solid var(--c-border);border-radius:14px;padding:20px;transition:all .3s}
.ranking-card:hover{border-color:var(--c-pri);box-shadow:0 4px 16px rgba(var(--c-pri-rgb),.08)}
.ranking-card-title{font-size:15px;font-weight:800;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--c-border);color:var(--c-tx)}
.ranking-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--c-border);text-decoration:none;transition:background .2s;border-radius:8px;margin:0 -8px;padding-left:8px;padding-right:8px}
.ranking-item:last-child{border-bottom:none}
.ranking-item:hover{background:var(--c-bg-card-h)}
.ranking-num{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:12px;font-weight:800;flex-shrink:0;background:var(--c-bg-input);color:var(--c-tx-3);border:1px solid var(--c-border)}
.ranking-num.rank-gold{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-color:transparent}
.ranking-num.rank-silver{background:linear-gradient(135deg,#94a3b8,#64748b);color:#fff;border-color:transparent}
.ranking-num.rank-bronze{background:linear-gradient(135deg,#d97706,#92400e);color:#fff;border-color:transparent}
.ranking-logo{width:32px;height:32px;border-radius:10px;object-fit:cover;flex-shrink:0}
.ranking-info{flex:1;min-width:0}
.ranking-name{font-size:14px;font-weight:700;color:var(--c-tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-url{font-size:11px;color:var(--c-tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ─── RESPONSIVE ─────────────────────────────────── */
@media(max-width:768px){
  .card-thumb{height:160px}
  .card-large,.card-thumb-overlay{min-height:300px}
  .card-title-large{font-size:22px}
  .card-thumb-sq{width:64px;height:64px}
}
@media(max-width:480px){
  .card-large,.card-thumb-overlay{min-height:240px}
  .card-title-large{font-size:19px}
}
