@import url('../css pages/global.css');

*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Plus Jakarta Sans',sans-serif;background:var(--surface-2);color:var(--text-1);transition:background .2s,color .2s;}
.gradient-brand{background:linear-gradient(135deg,var(--brand-1) 0%,var(--brand-2) 100%);}
.text-brand{background:linear-gradient(135deg,var(--brand-1),var(--brand-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* ── Sidebar ───────────────────────────────────────────────── */
#sidebar{width:260px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;transition:transform .3s;}
.sidebar-link:hover{background-color:#f1f5f9;color:var(--brand-1);}
.sidebar-link.active{background-color:#eef2ff;color:var(--brand-1);border-right:3px solid var(--brand-1);}
body.dark-theme .sidebar-link:hover{background-color:#334155;}
body.dark-theme .sidebar-link.active{background-color:#312e81;}
#sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:89;backdrop-filter:blur(3px);}
@media(max-width:768px){
    #sidebar{position:fixed;z-index:90;transform:translateX(-100%);height:100vh;top:0;}
    #sidebar.open{transform:translateX(0);}
    #sidebar-overlay.open{display:block;}
    #mob-menu-btn{display:flex !important;}
}

/* ── Stars / Half-stars ────────────────────────────────────── */
.stars-input{display:flex;flex-direction:row;gap:3px;align-items:center;}
.star-interactive{position:relative;cursor:pointer;font-size:28px;color:#cbd5e1;transition:color .1s,transform .1s;line-height:1;user-select:none;}
.star-interactive.filled{color:#f59e0b;}
.star-interactive.half-filled{color:#cbd5e1;}
.star-interactive.half-filled::before{content:"\f089";font-family:"Font Awesome 6 Free";font-weight:900;color:#f59e0b;position:absolute;left:0;top:0;width:50%;overflow:hidden;white-space:nowrap;}
.star-interactive:hover{transform:scale(1.2);}
.s-fill{color:#f59e0b;} .s-empty{color:#cbd5e1;} .s-half-icon{color:#f59e0b;}

/* ── Tags ──────────────────────────────────────────────────── */
.tag-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid var(--border);color:var(--text-2);background:var(--surface-2);cursor:pointer;transition:all .15s;white-space:nowrap;}
.tag-pill:hover{border-color:var(--brand-1);color:var(--brand-1);}
.tag-pill.active{background:linear-gradient(135deg,var(--brand-1),var(--brand-2));color:white;border-color:transparent;}
.tag-select-btn{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;}
.tag-select-btn.selected{border-color:var(--brand-1);color:var(--brand-1);background:rgba(99,102,241,.08);}

/* ── Helpful votes ─────────────────────────────────────────── */
.helpful-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-size:12px;font-weight:600;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;}
.helpful-btn:hover{border-color:rgba(16,185,129,.5);color:#10b981;}
.helpful-btn.voted-yes{border-color:rgba(16,185,129,.5);color:#10b981;background:rgba(16,185,129,.08);}
.helpful-btn.voted-no{border-color:rgba(239,68,68,.35);color:#ef4444;background:rgba(239,68,68,.06);}

/* ── Notification bell ─────────────────────────────────────── */
.notif-btn{position:relative;}
.notif-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#ef4444;border-radius:50%;border:2px solid var(--surface);display:none;}
.notif-dot.show{display:block;}
.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.15);z-index:300;animation:slideUp .2s ease;}
.notif-item{display:flex;gap:10px;padding:.75rem 1rem;border-bottom:1px solid var(--border);transition:background .15s;cursor:pointer;}
.notif-item:last-child{border-bottom:none;}
.notif-item:hover{background:var(--surface-2);}
.notif-item.unread{background:linear-gradient(135deg,rgba(99,102,241,.04),var(--surface));}

/* ── Badges ─────────────────────────────────────────────────── */
.badge-top{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:white;background:linear-gradient(135deg,#f59e0b,#ef4444);padding:2px 6px;border-radius:6px;}
.badge-expert{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:white;background:linear-gradient(135deg,#10b981,#06b6d4);padding:2px 6px;border-radius:6px;}
.badge-early{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:white;background:linear-gradient(135deg,#8b5cf6,#ec4899);padding:2px 6px;border-radius:6px;}
.badge-helpful-b{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:white;background:linear-gradient(135deg,#3b82f6,#6366f1);padding:2px 6px;border-radius:6px;}
.badge-trusted{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:800;color:white;background:linear-gradient(135deg,#64748b,#374151);padding:2px 6px;border-radius:6px;}

/* ── Thread depth ───────────────────────────────────────────── */
.thread-d1{margin-left:.75rem;padding-left:.75rem;border-left:2px solid var(--border);}
.thread-d2{margin-left:1.25rem;padding-left:.75rem;border-left:2px solid rgba(99,102,241,.2);}
.thread-d3{margin-left:1.75rem;padding-left:.75rem;border-left:2px solid rgba(168,85,247,.15);}

/* ── Cards ─────────────────────────────────────────────────── */
.avis-card{
    background:var(--surface);border:1px solid var(--border);
    border-radius:20px;padding:1.5rem;
    transition:box-shadow .25s,transform .2s,opacity .3s,border-color .2s;
    box-shadow:var(--shadow);animation:slideUp .3s ease both;
}
.avis-card:hover{box-shadow:0 8px 30px rgba(99,102,241,.10);transform:translateY(-1px);}
.avis-card.pinned{border-color:rgba(99,102,241,.3);background:linear-gradient(135deg,rgba(99,102,241,.04) 0%,var(--surface) 80%);}
.avis-card.removing{opacity:0;transform:scale(.96);}
.avis-card.deeplink-highlight{border-color:var(--brand-1);box-shadow:0 0 0 3px rgba(99,102,241,.2);animation:deepPulse 2s ease 3;}
@keyframes deepPulse{0%,100%{box-shadow:0 0 0 3px rgba(99,102,241,.2);}50%{box-shadow:0 0 0 6px rgba(99,102,241,.35);}}
@keyframes slideUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

/* ── Grid view ─────────────────────────────────────────────── */
#avis-container.grid-view{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
@media(max-width:640px){#avis-container.grid-view{grid-template-columns:1fr;}}
#avis-container.grid-view .avis-card .edit-area{display:none !important;}

/* ── Reply card ────────────────────────────────────────────── */
.reply-card{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.9rem 1.1rem;margin-top:.65rem;animation:slideUp .25s ease both;}

/* ── Avatar ────────────────────────────────────────────────── */
.av{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;overflow:hidden;}
.av img,.av-sm img{width:100%;height:100%;object-fit:cover;}
.av-sm{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex-shrink:0;overflow:hidden;}

/* ── Like btn ──────────────────────────────────────────────── */
.like-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;}
.like-btn:hover{border-color:rgba(59,130,246,.4);color:#3b82f6;background:rgba(59,130,246,.05);}
.like-btn.liked{border-color:rgba(59,130,246,.4);color:#3b82f6;background:rgba(59,130,246,.1);}
.like-btn.liked i{animation:heartPop .3s cubic-bezier(.36,.07,.19,.97);}
.dislike-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;}
.dislike-btn:hover{border-color:rgba(239,68,68,.4);color:#ef4444;background:rgba(239,68,68,.05);}
.dislike-btn.disliked{border-color:rgba(239,68,68,.4);color:#ef4444;background:rgba(239,68,68,.1);}
.report-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-2);cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;}
.report-btn:hover{border-color:rgba(153,27,27,.5);color:#991b1b;background:rgba(153,27,27,.06);}
.report-btn.reported{opacity:.4;cursor:not-allowed;}
.reply-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:transparent;color:#64748b;cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;font-family:'Plus Jakarta Sans',sans-serif;}
.reply-btn:hover{border-color:#94a3b8;color:#475569;background:rgba(100,116,139,.08);}
@keyframes heartPop{0%{transform:scale(1);}30%{transform:scale(1.5);}60%{transform:scale(.9);}100%{transform:scale(1);}}

/* ── Reactions ─────────────────────────────────────────────── */
.reactions-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:.5rem;}
.react-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:var(--surface-2);cursor:pointer;font-size:13px;font-weight:600;transition:all .2s;font-family:'Plus Jakarta Sans',sans-serif;color:var(--text-2);}
.react-btn:hover{transform:scale(1.08);border-color:var(--brand-1);}
.react-btn.reacted{background:linear-gradient(135deg,rgba(99,102,241,.12),rgba(168,85,247,.12));border-color:var(--brand-1);color:var(--brand-1);}
.react-btn .react-emoji{font-size:16px;line-height:1;}
@keyframes reactPop{0%{transform:scale(1);}40%{transform:scale(1.4);}70%{transform:scale(.92);}100%{transform:scale(1);}}
.react-btn.pop .react-emoji{animation:reactPop .35s cubic-bezier(.36,.07,.19,.97);}

/* ── Trending ──────────────────────────────────────────────── */
.trending-strip{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.5rem;scrollbar-width:none;}
.trending-strip::-webkit-scrollbar{display:none;}
.trending-card{
    flex-shrink:0;width:260px;border-radius:18px;padding:1.25rem;
    background:var(--surface);border:1px solid var(--border);
    cursor:pointer;transition:transform .2s,box-shadow .2s;
    position:relative;overflow:hidden;
}
.trending-card::before{content:'';position:absolute;inset:0;opacity:.04;pointer-events:none;}
.trending-card.note-5::before{background:linear-gradient(135deg,#10b981,#06b6d4);}
.trending-card.note-4::before{background:linear-gradient(135deg,#6366f1,#8b5cf6);}
.trending-card.note-3::before{background:linear-gradient(135deg,#f59e0b,#fb923c);}
.trending-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(99,102,241,.12);}
.trending-rank{position:absolute;top:10px;right:12px;font-size:11px;font-weight:800;color:var(--text-2);opacity:.5;}

/* ── NPS meter ─────────────────────────────────────────────── */
.nps-bar{height:8px;border-radius:999px;background:var(--border);overflow:hidden;position:relative;}
.nps-fill{height:100%;border-radius:999px;transition:width .8s cubic-bezier(.34,1.56,.64,1);}
.nps-fill.poor{background:linear-gradient(90deg,#ef4444,#f87171);}
.nps-fill.ok{background:linear-gradient(90deg,#f59e0b,#fbbf24);}
.nps-fill.good{background:linear-gradient(90deg,#10b981,#34d399);}
.nps-fill.great{background:linear-gradient(90deg,#6366f1,#a855f7);}

/* ── Filter bar ────────────────────────────────────────────── */
.filter-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;font-size:13px;font-weight:600;transition:all .15s;white-space:nowrap;font-family:'Plus Jakarta Sans',sans-serif;}
.filter-chip:hover{border-color:var(--brand-1);color:var(--brand-1);}
.filter-chip.active{background:linear-gradient(135deg,var(--brand-1),var(--brand-2));color:white;border-color:transparent;}

/* ── Progress bars ─────────────────────────────────────────── */
.prog-bg{background:var(--border);border-radius:999px;height:7px;flex:1;}
.prog-fill{background:linear-gradient(90deg,var(--brand-1),var(--brand-2));border-radius:999px;height:100%;transition:width .6s cubic-bezier(.34,1.56,.64,1);}

/* ── Modal ─────────────────────────────────────────────────── */
.modal-overlay{display:none;position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.55);backdrop-filter:blur(5px);align-items:center;justify-content:center;padding:1rem;}
.modal-overlay.open{display:flex;animation:fadeIn .18s ease;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.modal-box{background:var(--surface);border-radius:20px;padding:2rem;max-width:520px;width:100%;box-shadow:0 24px 60px -12px rgba(0,0,0,.25);animation:modalIn .22s ease;}
@keyframes modalIn{from{transform:translateY(24px) scale(.97);opacity:0;}to{transform:translateY(0) scale(1);opacity:1;}}
#modal-confirm .modal-box{max-width:380px;}
#modal-share .modal-box{max-width:400px;}

/* ── Share ──────────────────────────────────────────────────── */
.share-link-box{display:flex;align-items:center;gap:.5rem;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:.6rem .9rem;font-size:13px;font-weight:600;color:var(--text-2);}
.share-link-box span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.share-social-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:12px;font-size:13px;font-weight:700;transition:all .15s;cursor:pointer;border:none;}

/* ── Inputs ─────────────────────────────────────────────────── */
input[type=text],input[type=email],textarea,select{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--text-1);font-family:'Plus Jakarta Sans',sans-serif;font-size:14px;outline:none;width:100%;transition:border-color .2s,box-shadow .2s;}
input:focus,textarea:focus,select:focus{border-color:var(--brand-1);box-shadow:0 0 0 3px rgba(99,102,241,.12);}
textarea{resize:vertical;}
select{appearance:none;cursor:pointer;}

/* ── Search ─────────────────────────────────────────────────── */
.search-wrap{position:relative;}
.search-wrap i{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--text-2);pointer-events:none;}
.search-wrap input{padding-left:34px !important;}

/* ── Pagination ─────────────────────────────────────────────── */
.pg-btn{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;font-size:13px;font-weight:700;transition:all .15s;}
.pg-btn:hover{border-color:var(--brand-1);color:var(--brand-1);}
.pg-btn.active{background:linear-gradient(135deg,var(--brand-1),var(--brand-2));color:white;border-color:transparent;}
.pg-btn:disabled{opacity:.3;cursor:not-allowed;}

/* ── Toast ───────────────────────────────────────────────────── */
#toasts{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;}
.toast{padding:.8rem 1.2rem;border-radius:12px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:.6rem;box-shadow:0 8px 24px -4px rgba(0,0,0,.15);animation:toastIn .22s ease;}
@keyframes toastIn{from{transform:translateX(60px);opacity:0;}to{transform:translateX(0);opacity:1;}}
.t-ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0;}
.t-err{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;}
.t-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe;}
body.dark-theme .t-ok{background:#064e3b;color:#6ee7b7;border-color:#065f46;}
body.dark-theme .t-err{background:#7f1d1d;color:#fca5a5;border-color:#991b1b;}
body.dark-theme .t-info{background:#1e3a5f;color:#93c5fd;border-color:#1e40af;}

/* ── Badges inline ───────────────────────────────────────────── */
.badge-verified{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#6366f1;background:rgba(99,102,241,.1);padding:2px 7px;border-radius:6px;}
.badge-admin{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:white;background:linear-gradient(135deg,#6366f1,#a855f7);padding:2px 7px;border-radius:6px;}
.badge-edited{font-size:11px;color:var(--text-2);font-style:italic;}
.badge-pinned{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:white;background:linear-gradient(135deg,#f59e0b,#ef4444);padding:2px 8px;border-radius:6px;}
.badge-report{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:#dc2626;background:rgba(220,38,38,.1);padding:2px 7px;border-radius:6px;}

/* ── Skeleton ────────────────────────────────────────────────── */
.sk{background:linear-gradient(90deg,var(--border) 25%,rgba(226,232,240,.5) 50%,var(--border) 75%);background-size:200% 100%;animation:shim 1.4s infinite;border-radius:8px;}
@keyframes shim{0%{background-position:200% 0;}100%{background-position:-200% 0;}}

/* ── Edit inline ─────────────────────────────────────────────── */
.edit-area{display:none;}
.edit-area.open{display:block;animation:slideUp .2s ease;}
.report-pending{position:relative;}
.report-pending::after{content:'';position:absolute;top:-3px;right:-3px;width:8px;height:8px;background:#ef4444;border-radius:50%;border:2px solid var(--surface);}

/* ── Search highlight ────────────────────────────────────────── */
.search-highlight{background:linear-gradient(135deg,rgba(99,102,241,.15),rgba(168,85,247,.15));border-radius:4px;padding:0 2px;}

/* ── Misc ────────────────────────────────────────────────────── */
.time-badge{font-size:11px;color:var(--text-2);}
.char-counter{font-size:11px;color:var(--text-2);transition:color .2s;}
.char-counter.warn{color:#f59e0b;} .char-counter.danger{color:#ef4444;font-weight:700;}
.replies-toggle{font-size:12px;font-weight:600;color:var(--brand-1);cursor:pointer;background:none;border:none;padding:4px 0;margin-top:6px;font-family:'Plus Jakarta Sans',sans-serif;}
.replies-toggle:hover{opacity:.8;}
#dark-toggle{transition:transform .3s,background .2s;} #dark-toggle:hover{transform:rotate(20deg);}
#scroll-top{position:fixed;bottom:5rem;right:1.5rem;z-index:200;width:40px;height:40px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(0,0,0,.1);transition:all .2s;}
#scroll-top.visible{display:flex;} #scroll-top:hover{border-color:var(--brand-1);color:var(--brand-1);}

/* ── Live badge ──────────────────────────────────────────────── */
#live-badge{display:none;position:relative;}
#live-badge.show{display:flex;}
.live-dot{width:7px;height:7px;background:#ef4444;border-radius:50%;animation:livePulse 1.5s infinite;}
@keyframes livePulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.6;transform:scale(1.3);}}

/* ── Admin analytics modal ───────────────────────────────────── */
#modal-analytics .modal-box{max-width:720px;max-height:85vh;overflow-y:auto;}
.stat-kpi{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:1rem 1.2rem;}
.bar-chart-wrap{display:flex;align-items:flex-end;gap:6px;height:80px;}
.bar-month{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;}
.bar-fill{width:100%;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--brand-1),var(--brand-2));min-height:2px;transition:height .5s ease;}
.bar-label{font-size:9px;font-weight:700;color:var(--text-2);white-space:nowrap;}
.bar-val{font-size:10px;font-weight:800;color:var(--text-1);}

/* ── View toggle ─────────────────────────────────────────────── */
.view-toggle{display:flex;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:2px;}
.view-toggle button{width:30px;height:28px;border:none;background:transparent;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all .15s;}
.view-toggle button.active{background:var(--surface);color:var(--brand-1);box-shadow:0 1px 4px rgba(0,0,0,.08);}

/* ── Spin keyframe ───────────────────────────────────────────── */
@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}
