:root{
  --green:#498B70;
  --green-dark:#437A64;
  --ink:#1C464F;
  --cream:#EEF0E9;
  --offwhite:#F6F7F4;
  --sage:#DAE0CB;
  --gold:#E8A93C;
  --danger:#C1443C;
  --danger-bg:#FBEAE8;
  --white:#FFFFFF;
  --font-head:'Fredoka', sans-serif;
  --font-body:'Inter', sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box;}
body{
  font-family:var(--font-body);
  background:var(--offwhite);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:var(--font-head);font-weight:600;color:var(--ink);}
a{color:var(--green-dark);text-decoration:none;}
.hidden{display:none !important;}

/* ============ LOGIN ============ */
.login-screen{
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg, var(--green) 0%, var(--green-dark) 100%);
}
.login-card{
  background:var(--white);border-radius:16px;padding:40px 36px;
  width:360px;box-shadow:0 20px 50px rgba(28,70,79,.25);text-align:center;
}
.login-logo{width:56px;height:56px;border-radius:14px;margin-bottom:12px;}
.login-card h1{font-size:1.5rem;margin-bottom:2px;}
.login-sub{font-size:.85rem;color:rgba(28,70,79,.6);margin-bottom:24px;}
.login-form{display:flex;flex-direction:column;gap:6px;text-align:left;}
.login-form label{font-size:.8rem;font-weight:600;color:rgba(28,70,79,.7);margin-top:8px;}
.login-form input{
  padding:10px 12px;border:1.5px solid var(--sage);border-radius:8px;
  font-family:var(--font-body);font-size:.95rem;
}
.login-form input:focus{outline:none;border-color:var(--green);}
.login-info{font-size:.82rem;color:rgba(28,70,79,.7);margin-bottom:8px;line-height:1.4;}
.form-error{color:var(--danger);font-size:.82rem;min-height:18px;margin-top:6px;}

/* ============ BOUTONS ============ */
.btn{
  font-family:var(--font-body);font-weight:600;font-size:.88rem;
  padding:10px 18px;border-radius:8px;border:none;cursor:pointer;
  transition:opacity .15s ease, transform .1s ease;
}
.btn:hover{opacity:.9;}
.btn:active{transform:scale(.98);}
.btn:disabled{opacity:.35;cursor:not-allowed;}
.btn:disabled:hover{opacity:.35;}
.btn-primary{background:var(--green);color:var(--white);width:100%;margin-top:16px;}
.btn-ghost{background:transparent;border:1.5px solid var(--sage);color:var(--ink);}
.btn-small{padding:6px 12px;font-size:.78rem;}
.btn-approve{background:var(--green);color:var(--white);}
.btn-reject{background:var(--danger-bg);color:var(--danger);}

/* ============ LAYOUT ============ */
.app-shell{display:flex;min-height:100vh;}
.sidebar{
  width:220px;flex-shrink:0;background:var(--ink);color:var(--cream);
  display:flex;flex-direction:column;padding:20px 0;
}
.sidebar-brand{
  display:flex;align-items:center;gap:10px;padding:0 20px 24px;
  font-family:var(--font-head);font-weight:700;font-size:1.1rem;
}
.sidebar-logo{width:32px;height:32px;border-radius:8px;}
.sidebar-nav{display:flex;flex-direction:column;flex:1;}
.sidebar-nav a{
  padding:12px 20px;color:rgba(238,240,233,.75);font-size:.92rem;font-weight:500;
  border-left:3px solid transparent;
}
.sidebar-nav a:hover{background:rgba(255,255,255,.05);color:var(--cream);}
.sidebar-nav a.active{
  background:rgba(255,255,255,.08);color:var(--cream);border-left-color:var(--gold);font-weight:600;
}
.sidebar-footer{
  padding:16px 20px 0;border-top:1px solid rgba(255,255,255,.1);
  display:flex;flex-direction:column;gap:10px;
}
#current-user{font-size:.78rem;color:rgba(238,240,233,.55);word-break:break-all;}
.sidebar-footer .btn-ghost{
  border-color:rgba(238,240,233,.3);color:var(--cream);
}
.sidebar-footer .btn-ghost:hover{background:rgba(255,255,255,.08);}

.main-content{flex:1;padding:32px 40px;max-width:1200px;}

.view-header{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px;
}
.view-header h2{font-size:1.5rem;}

/* ============ STATS ============ */
.stats-grid{display:grid;grid-template-columns:repeat(4, 1fr);gap:16px;}
.stat-card{
  background:var(--white);border-radius:12px;padding:20px;
  box-shadow:0 4px 14px rgba(28,70,79,.06);
}
.stat-wide{grid-column:span 4;}
.stat-value{font-family:var(--font-head);font-size:2rem;font-weight:700;color:var(--ink);}
.stat-label{font-size:.82rem;color:rgba(28,70,79,.6);margin-top:4px;}
.stat-approved .stat-value{color:var(--green-dark);}
.stat-pending .stat-value{color:var(--gold);}
.stat-rejected .stat-value{color:var(--danger);}
.callout-banner{
  background:#FFF6E6;border:1px solid var(--gold);border-radius:10px;
  padding:14px 18px;margin-bottom:20px;font-size:.9rem;
}

/* ============ MODERATION CARDS ============ */
.moderation-card{
  display:flex;gap:20px;background:var(--white);border-radius:14px;padding:20px;
  margin-bottom:18px;box-shadow:0 4px 14px rgba(28,70,79,.06);
}
.moderation-card-media{flex-shrink:0;width:140px;}
.listing-thumb{width:140px;height:140px;object-fit:cover;border-radius:10px;}
.listing-thumb-placeholder{
  width:140px;height:140px;border-radius:10px;background:var(--offwhite);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:.75rem;color:rgba(28,70,79,.45);padding:10px;
}
.moderation-card-body{flex:1;}
.moderation-card-meta{display:flex;gap:16px;font-size:.78rem;color:rgba(28,70,79,.55);margin-bottom:10px;}
.flags-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;}
.flag{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px;}
.flag-danger{background:var(--danger-bg);color:var(--danger);}
.flag-warning{background:#FFF6E6;color:#946200;}
.reason-note{font-size:.82rem;color:var(--danger);margin-bottom:8px;}
.spelling-note{font-size:.78rem;color:var(--green-dark);margin-bottom:10px;}
.field-label{display:block;font-size:.75rem;font-weight:600;color:rgba(28,70,79,.6);margin:10px 0 4px;}
.edit-title, .edit-description, .edit-comment{
  width:100%;padding:8px 10px;border:1.5px solid var(--sage);border-radius:8px;
  font-family:var(--font-body);font-size:.88rem;resize:vertical;
}
.edit-title:focus, .edit-description:focus, .edit-comment:focus{outline:none;border-color:var(--green);}
.moderation-actions{display:flex;gap:10px;margin-top:14px;}

.empty-state{
  background:var(--white);border-radius:12px;padding:40px;text-align:center;
  color:rgba(28,70,79,.5);font-size:.92rem;
}
.loading{color:rgba(28,70,79,.5);font-size:.9rem;padding:20px 0;}

/* ============ TABLE ============ */
.select-filter{
  padding:8px 12px;border:1.5px solid var(--sage);border-radius:8px;
  font-family:var(--font-body);font-size:.85rem;background:var(--white);
}
.listings-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:12px;overflow:hidden;box-shadow:0 4px 14px rgba(28,70,79,.06);}
.listings-table th{
  text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;
  color:rgba(28,70,79,.5);padding:12px 16px;border-bottom:1px solid var(--sage);
}
.listings-table td{padding:14px 16px;font-size:.88rem;border-bottom:1px solid var(--offwhite);}
.listings-table tr:last-child td{border-bottom:none;}
.link-detail{font-weight:600;font-size:.85rem;}
.pagination{display:flex;justify-content:center;gap:12px;margin-top:20px;}

/* ============ BADGES ============ */
.badge{font-size:.75rem;font-weight:600;padding:4px 12px;border-radius:999px;}
.badge-approved{background:#E4F1EA;color:var(--green-dark);}
.badge-pending{background:#FFF6E6;color:#946200;}
.badge-rejected{background:var(--danger-bg);color:var(--danger);}

/* ============ DETAIL VIEW ============ */
.back-link{font-weight:600;font-size:.88rem;}
.detail-card{background:var(--white);border-radius:14px;padding:28px;box-shadow:0 4px 14px rgba(28,70,79,.06);}
.detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;}
.detail-grid h3{font-size:.95rem;margin-bottom:10px;}
.detail-text{font-size:.88rem;line-height:1.5;margin-bottom:6px;}
.detail-text-muted{color:rgba(28,70,79,.55);}
.image-variants-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:24px;}
.image-variant{text-align:center;}
.image-variant img{max-width:160px;max-height:160px;border-radius:8px;display:block;margin-bottom:6px;}
.image-variant span{font-size:.72rem;color:rgba(28,70,79,.55);}
.moderation-json{
  background:var(--ink);color:#CFE3DC;padding:16px;border-radius:10px;
  font-size:.78rem;overflow-x:auto;margin-bottom:20px;
}
.audit-box{background:var(--offwhite);border-radius:10px;padding:14px 18px;font-size:.85rem;margin-bottom:16px;}
.empty-note{font-size:.85rem;color:rgba(28,70,79,.5);}

/* ============ TOAST ============ */
.toast{
  position:fixed;bottom:24px;right:24px;background:var(--ink);color:var(--white);
  padding:12px 20px;border-radius:10px;font-size:.88rem;
  opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;z-index:100;
}
.toast.visible{opacity:1;transform:translateY(0);}
.toast-success{background:var(--green-dark);}
.toast-error{background:var(--danger);}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .app-shell{flex-direction:column;}
  .sidebar{width:100%;flex-direction:row;align-items:center;padding:12px 16px;}
  .sidebar-nav{flex-direction:row;}
  .sidebar-footer{flex-direction:row;border-top:none;padding:0;margin-left:auto;}
  .stats-grid{grid-template-columns:repeat(2, 1fr);}
  .stat-wide{grid-column:span 2;}
  .moderation-card{flex-direction:column;}
  .detail-grid{grid-template-columns:1fr;}
}

/* ============ ADMIN EXTENSIONS ============ */
.view-subtitle{font-size:.84rem;color:rgba(28,70,79,.58);margin-top:4px;}
.toolbar{display:flex;gap:10px;flex-wrap:wrap;}
.search-input{padding:8px 12px;border:1.5px solid var(--sage);border-radius:8px;font:inherit;min-width:230px;background:var(--white);}
.search-input:focus{outline:none;border-color:var(--green);}
.cell-muted{font-size:.75rem;color:rgba(28,70,79,.5);}
.actions-cell{display:flex;gap:8px;flex-wrap:wrap;}
.btn-danger-outline{background:transparent;border:1.5px solid var(--danger);color:var(--danger);}
.section-card{margin-top:22px;background:var(--white);border-radius:12px;padding:20px;box-shadow:0 4px 14px rgba(28,70,79,.06);overflow-x:auto;}
.section-card-header{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px;}
.investor-grid{grid-template-columns:repeat(4,1fr);}
.info-box{margin-top:20px;background:#edf5f1;border:1px solid var(--sage);border-radius:10px;padding:14px 16px;font-size:.84rem;line-height:1.5;}
.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;}
.metric-strip>div{background:var(--offwhite);border-radius:10px;padding:14px;display:flex;flex-direction:column;}
.metric-strip strong{font-family:var(--font-head);font-size:1.45rem;}.metric-strip span{font-size:.75rem;color:rgba(28,70,79,.55);}
.spaced-heading{margin-top:18px;}.admin-actions-panel{border-top:1px solid var(--sage);padding-top:20px;margin-top:20px;}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}.technical-details{margin-top:22px}.technical-details summary{cursor:pointer;font-weight:600;margin-bottom:12px;}
@media(max-width:900px){.investor-grid,.metric-strip{grid-template-columns:repeat(2,1fr)}.toolbar{width:100%}.search-input{flex:1;min-width:160px}.main-content{padding:22px 16px}.listings-table{min-width:760px}.section-card,#listings-table-wrap,#users-table-wrap{overflow-x:auto}}
.badge-archived{background:#ECEDEC;color:#5f6867;}

/* ============ ANALYTICS V2 ============ */
.analytics-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.analytics-tab{border:1px solid var(--sage);background:var(--white);color:var(--ink);padding:9px 14px;border-radius:999px;font:600 .82rem var(--font-body);cursor:pointer}.analytics-tab.active{background:var(--ink);color:var(--white);border-color:var(--ink)}.analytics-panel{display:none}.analytics-panel.active{display:block}.growth-chart{height:210px;display:flex;align-items:flex-end;gap:18px;padding:10px 6px 0;border-bottom:1px solid var(--sage)}.growth-col{flex:1;min-width:58px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.growth-number{font-size:.72rem;font-weight:600;margin-bottom:6px}.growth-bar{width:min(54px,78%);background:var(--green);border-radius:8px 8px 0 0}.growth-month{font-size:.75rem;color:rgba(28,70,79,.62);margin-top:8px;margin-bottom:8px}.growth-legend{display:flex;gap:20px;flex-wrap:wrap;font-size:.78rem;color:rgba(28,70,79,.6);padding-top:12px}.retention-pill{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:5px 9px;border-radius:7px;background:linear-gradient(90deg,#e6f3ed var(--ret),#f5f6f2 var(--ret));font-weight:600}.event-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}.event-card{background:var(--offwhite);border:1px solid rgba(149,177,164,.4);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:4px}.event-card code{font-size:.68rem;color:rgba(28,70,79,.58);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-card strong{font:700 1.25rem var(--font-head);color:var(--ink)}.event-card span{font-size:.75rem;color:rgba(28,70,79,.62)}.deal-events-card{margin:0 0 24px}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}.event-kpi-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.event-kpi{padding:12px;border-radius:9px;background:var(--offwhite);display:flex;justify-content:space-between;gap:12px;font-size:.84rem}.event-kpi strong{font-size:1rem}.funnel-row{margin-bottom:14px}.funnel-label{display:flex;justify-content:space-between;font-size:.83rem;margin-bottom:5px}.funnel-bar{height:8px;border-radius:999px;background:var(--offwhite);overflow:hidden}.funnel-bar span{display:block;height:100%;background:var(--green);border-radius:999px}.merchant-title{margin-top:8px}.merchant-table td:nth-child(n+2){white-space:nowrap}
@media(max-width:1100px){.event-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.dashboard-columns{grid-template-columns:1fr}.event-grid{grid-template-columns:repeat(2,1fr)}.growth-chart{overflow-x:auto}.growth-col{min-width:72px}.event-kpi-list{grid-template-columns:1fr}}
