:root{--g:#1a5c3a;--gl:#e8f5ee;--ac:#e05a2b;--bg:#f0f0ee;--s:#fff;--t:#111;--t2:#4a4a4a;--t3:#888;--bd:#ddd;--r:6px;--rs:4px;--max-w:1100px;--page-pad:10px;}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html{font-size:13px;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--t);min-height:100vh;}
a{color:inherit;text-decoration:none;}
button{cursor:pointer;font-family:inherit;}
input,select,textarea{font-family:inherit;font-size:12px;width:100%;padding:7px 9px;border:1px solid var(--bd);border-radius:var(--rs);background:#fff;outline:none;color:var(--t);}
input:focus,select:focus,textarea:focus{border-color:var(--g);}
label{display:block;font-size:11px;font-weight:600;color:var(--t2);margin-bottom:3px;}
.hidden{display:none!important;}
.fg{margin-bottom:9px;}
.err{color:#c00;font-size:11px;margin-top:3px;}
.shim{background:linear-gradient(90deg,#eee 25%,#e2e2e2 50%,#eee 75%);background-size:200% 100%;animation:sh 1.2s infinite;}
@keyframes sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
#toast{position:fixed;bottom:72px;left:50%;transform:translateX(-50%);background:#111;color:#fff;padding:7px 16px;border-radius:20px;z-index:9999;font-size:11px;display:none;white-space:nowrap;}
.badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:2px;font-size:10px;font-weight:600;}
.bg{background:#d4edda;color:#155724;}
.by{background:#fff3cd;color:#856404;}
.br{background:#f8d7da;color:#721c24;}
.bb{background:#cce5ff;color:#004085;}
/* NAV */
.nav{background:var(--g);display:flex;align-items:center;gap:7px;padding:6px 10px;position:sticky;top:0;z-index:100;}
.nav-logo{height:22px;width:auto;}
.nav-title{font-size:13px;font-weight:700;color:#fff;flex:1;}
.nav-sub{font-size:10px;color:rgba(255,255,255,0.6);}
.nav-back{background:rgba(255,255,255,0.12);border:none;color:#fff;padding:4px 9px;border-radius:var(--rs);font-size:11px;}
.nav-menu{margin-left:auto;position:relative;}
.nav-dots{background:rgba(255,255,255,0.12);border:none;color:rgba(255,255,255,0.7);padding:4px 7px;border-radius:var(--rs);font-size:14px;line-height:1;}
.nav-dd{position:absolute;top:calc(100% + 4px);right:0;background:#fff;border:1px solid var(--bd);border-radius:var(--rs);min-width:110px;z-index:200;display:none;box-shadow:0 2px 8px rgba(0,0,0,0.1);}
.nav-dd.open{display:block;}
.nav-dd button{display:block;width:100%;text-align:left;padding:8px 12px;font-size:12px;background:none;border:none;color:var(--t);border-bottom:1px solid var(--bd);}
.nav-dd button:last-child{border-bottom:none;color:#c00;}
/* BUTTONS */
.btn-pri{background:var(--g);color:#fff;border:none;padding:9px;border-radius:var(--rs);font-size:12px;font-weight:600;width:100%;}
.btn-sm{background:#fff;border:1px solid var(--bd);padding:4px 9px;border-radius:var(--rs);font-size:11px;color:var(--t);}
.btn-appr{background:var(--gl);color:var(--g);border:1px solid var(--g);padding:4px 8px;border-radius:var(--rs);font-size:11px;font-weight:600;}
.btn-dng{background:#fde;color:#c00;border:none;padding:4px 8px;border-radius:var(--rs);font-size:11px;}
.btn-ena{background:#e8f5ee;color:var(--g);border:1px solid var(--g);padding:4px 8px;border-radius:var(--rs);font-size:11px;}
.btn-add{background:var(--gl);color:var(--g);border:none;padding:5px 10px;border-radius:var(--rs);font-size:11px;font-weight:600;}
/* BOTTOM NAV */
.bnav{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--bd);display:flex;z-index:100;padding-bottom:env(safe-area-inset-bottom,0);}
.bni{flex:1;display:flex;flex-direction:column;align-items:center;padding:5px 2px;cursor:pointer;color:var(--t3);font-size:9px;gap:2px;border:none;background:none;font-family:inherit;}
.bni.on{color:var(--g);}
/* STATS */
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:8px;}
.sgrid4{grid-template-columns:repeat(4,1fr);}
.sbox{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:7px 5px;text-align:center;}
.snum{font-size:16px;font-weight:700;color:var(--g);}
.slbl{font-size:9px;color:var(--t3);margin-top:1px;}
/* CARDS */
.card{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:10px;margin-bottom:7px;}
.ctitle{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--t3);margin-bottom:7px;}
.slbl2{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;color:var(--t3);margin-bottom:6px;}
/* CHART */
.chart-wrap{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:10px;margin-bottom:8px;}
.chart-title{font-size:11px;font-weight:600;color:var(--t2);margin-bottom:8px;}
.chart-canvas{width:100%!important;height:120px!important;}
/* BUSINESS CARD (manager) */
.bcard{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:9px;margin-bottom:5px;}
.bct{display:flex;align-items:flex-start;gap:7px;margin-bottom:7px;}
.bdp{width:36px;height:36px;border-radius:50%;background:var(--gl);flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.bdp img{width:36px;height:36px;border-radius:50%;object-fit:cover;}
.bnm{font-size:12px;font-weight:600;line-height:1.3;}
.bmeta{font-size:10px;color:var(--t3);margin-top:1px;}
.bbadges{display:flex;gap:3px;flex-wrap:wrap;margin-top:3px;}
.bact{display:flex;gap:3px;flex-wrap:wrap;}
/* MODAL */
.mo{position:fixed;inset:0;background:rgba(0,0,0,0.42);z-index:200;overflow-y:auto;}
.mbox{background:#fff;max-width:460px;margin:28px auto 20px;border-radius:var(--r);padding:14px;position:relative;}
.mtitle{font-size:14px;font-weight:600;margin-bottom:10px;padding-right:22px;}
.mclose{position:absolute;top:8px;right:10px;background:none;border:none;font-size:18px;color:var(--t3);}
.mftr{display:flex;gap:6px;margin-top:10px;}
/* PAGINATION */
.pgrow{display:flex;align-items:center;justify-content:center;gap:7px;padding:6px 0 2px;}
.pgb{background:#fff;border:1px solid var(--bd);padding:4px 12px;border-radius:var(--rs);font-size:11px;color:var(--t2);}
.pgb:disabled{opacity:0.35;}
.pgi{font-size:10px;color:var(--t3);}
/* FILTER BAR */
.fbar{display:flex;gap:5px;margin-bottom:7px;flex-wrap:wrap;}
.fbar select,.fbar input{width:auto;flex:1;min-width:90px;font-size:11px;padding:5px 7px;}
/* AD CARD */
.adcard{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:9px;margin-bottom:5px;display:flex;gap:7px;}
.adthumb{width:52px;height:36px;border-radius:var(--rs);object-fit:cover;background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.adthumb img{width:52px;height:36px;border-radius:var(--rs);object-fit:cover;}
.adinfo{flex:1;min-width:0;}
.adtype{font-size:9px;font-weight:600;text-transform:uppercase;color:var(--t3);}
.adnm{font-size:12px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.addts{font-size:10px;color:var(--t3);margin-top:2px;}
/* AREA ROW */
.arow{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:8px 9px;margin-bottom:4px;display:flex;align-items:center;justify-content:space-between;}
.anm{font-size:12px;font-weight:500;}
.ast{font-size:10px;color:var(--t3);}
.aact{display:flex;gap:4px;}
/* CAT ROW */
.crow{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:7px 9px;margin-bottom:4px;display:flex;align-items:center;gap:6px;}
.cnm{font-size:12px;font-weight:500;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.ccnt{font-size:10px;color:var(--t3);white-space:nowrap;}
.cact{display:flex;gap:3px;flex-shrink:0;}
.btn-mrg{background:#fff3e0;color:#e65100;border:none;padding:3px 8px;border-radius:var(--rs);font-size:10px;font-weight:600;}
.btn-edt{background:var(--gl);color:var(--g);border:none;padding:3px 8px;border-radius:var(--rs);font-size:10px;font-weight:600;}
/* MERGE/WARN */
.warn-box{background:#fff3cd;border:1px solid #ffc107;border-radius:var(--rs);padding:8px 10px;font-size:11px;color:#7a5200;margin-top:6px;line-height:1.5;}
/* BUSINESS SEARCH */
.bs-res{border:1px solid var(--bd);max-height:110px;overflow-y:auto;border-radius:var(--rs);margin-top:2px;background:#fff;display:none;}
.bs-item{padding:7px 9px;font-size:12px;cursor:pointer;border-bottom:1px solid var(--bd);}
.bs-item:last-child{border-bottom:none;}
.img-prev{width:56px;height:38px;border-radius:var(--rs);object-fit:cover;display:none;margin-top:5px;}
/* UPLOAD STEPS */
.steps{display:flex;gap:0;margin-bottom:14px;border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;}
.step{flex:1;text-align:center;padding:8px 4px;font-size:10px;background:#fff;color:var(--t3);}
.step.done{background:var(--gl);color:var(--g);}
.step.active{background:var(--g);color:#fff;font-weight:600;}
.step-num{font-size:14px;font-weight:700;display:block;margin-bottom:1px;}
/* JSON */
.json-area{font-family:'Courier New',monospace;font-size:11px;min-height:180px;resize:vertical;}
.json-area.err{border-color:#c00;}
.json-area.ok{border-color:var(--g);}
/* PREVIEW TABLE */
.preview-wrap{overflow-x:auto;margin-top:8px;}
.ptable{width:100%;border-collapse:collapse;font-size:11px;}
.ptable th{background:var(--gl);color:var(--g);font-weight:600;padding:5px 7px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--bd);}
.ptable td{padding:5px 7px;border-bottom:1px solid #f0f0f0;vertical-align:top;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ptable tr.err-row td{background:#fff5f5;}
/* PROGRESS */
.prog-wrap{background:#f0f0f0;border-radius:3px;height:6px;overflow:hidden;margin:8px 0;}
.prog-bar{height:100%;background:var(--g);transition:width 0.3s;border-radius:3px;}
.prog-log{font-size:10px;color:var(--t3);max-height:140px;overflow-y:auto;background:#f8f8f8;border-radius:var(--rs);padding:7px 9px;margin-top:6px;font-family:'Courier New',monospace;}
.prog-log .ok{color:#155724;}
.prog-log .er{color:#c00;}
.prog-log .sk{color:#856404;}
/* LISTING ROW (partner) */
.lrow{background:#fff;border:1px solid var(--bd);border-radius:var(--r);padding:7px 9px;margin-bottom:5px;display:flex;align-items:center;gap:7px;}
.lthumb{width:40px;height:40px;border-radius:var(--rs);object-fit:cover;background:var(--gl);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
.lthumb img{width:40px;height:40px;border-radius:var(--rs);object-fit:cover;}
.linfo{flex:1;min-width:0;}
.lname{font-size:12px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
.lmeta{font-size:10px;color:var(--t3);margin-top:1px;}
.lact{display:flex;gap:3px;}
.bedit{background:var(--gl);color:var(--g);border:none;padding:3px 8px;border-radius:var(--rs);font-size:11px;font-weight:600;}
.bdel{background:#fde;color:#c00;border:none;padding:3px 7px;border-radius:var(--rs);font-size:11px;}
/* AUTOCOMPLETE CATEGORY */
.cac-wrap{position:relative;}
.cac-drop{position:absolute;top:calc(100% + 2px);left:0;right:0;background:#fff;border:1px solid var(--g);border-radius:var(--rs);z-index:300;max-height:180px;overflow-y:auto;display:none;box-shadow:0 4px 10px rgba(0,0,0,0.1);}
.cac-drop.open{display:block;}
.cac-item{padding:7px 10px;font-size:12px;cursor:pointer;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-between;}
.cac-item:last-child{border-bottom:none;}
.cac-item:active,.cac-item:hover{background:var(--gl);}
.cac-item-new{color:var(--g);font-weight:600;}
.cac-item-new::after{content:'+ Create';font-size:10px;background:var(--gl);color:var(--g);padding:1px 5px;border-radius:2px;margin-left:6px;}
.cac-pill{display:inline-flex;align-items:center;gap:4px;background:var(--gl);color:var(--g);border:1px solid #b5d9c5;border-radius:var(--rs);padding:2px 7px 2px 8px;font-size:11px;font-weight:600;margin-top:4px;}
.cac-pill button{background:none;border:none;color:var(--g);font-size:13px;line-height:1;padding:0;cursor:pointer;}
/* ALERT BOXES */
.alert{padding:9px 11px;border-radius:var(--rs);font-size:11px;line-height:1.6;margin-bottom:8px;}
.alert-info{background:#e8f4fd;color:#0c5460;border:1px solid #bee5eb;}
.alert-warn{background:#fff3cd;color:#7a5200;border:1px solid #ffc107;}
.alert-suc{background:#d4edda;color:#155724;border:1px solid #c3e6cb;}
/* PHOTO GRID */
.phgrid{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;}
.phgrid .phitem{position:relative;width:72px;height:54px;}
.phgrid .phitem img{width:72px;height:54px;border-radius:var(--rs);object-fit:cover;}
.phgrid .phdel{position:absolute;top:-3px;right:-3px;background:#c00;color:#fff;border:none;border-radius:50%;width:14px;height:14px;font-size:9px;display:flex;align-items:center;justify-content:center;line-height:1;}
/* VARIANTS */
.var-row{display:flex;gap:5px;align-items:center;margin-bottom:5px;}
.var-row input{flex:1;font-size:11px;padding:5px 7px;}
.var-del{background:none;border:none;color:#c00;font-size:15px;padding:0 3px;flex-shrink:0;}
/* DP PREVIEW */
.dp-prev{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--g);display:none;margin-top:5px;}
/* EMPTY */
.empty{text-align:center;padding:24px;color:var(--t3);font-size:12px;}
/* PARTNER NAV STYLES FOR PUBLIC PAGES */
.bni-plus{flex:1;display:flex;flex-direction:column;align-items:center;padding:4px 2px;cursor:pointer;color:var(--t3);font-size:9px;gap:2px;border:none;background:none;font-family:inherit;}
.plus-circle{width:38px;height:38px;border-radius:50%;background:var(--g);display:flex;align-items:center;justify-content:center;margin-top:-10px;box-shadow:0 2px 8px rgba(26,92,58,0.4);}
.img-disclaimer{font-size:8.5px;color:var(--t3);margin-top:5px;text-align:center;font-style:italic;opacity:0.75;}

/* =============================================
   DESKTOP RESPONSIVE — added carefully so mobile
   behaviour is unchanged; only applies ≥768px
   ============================================= */
@media(min-width:768px){
  :root{--page-pad:16px;}
  html{font-size:14px;}

  /* Centre & cap page content width */
  .page-wrap{max-width:var(--max-w);margin:0 auto;padding:0 20px;}

  /* Navbar inner content centred */
  .nav{padding:8px 20px;}

  /* Bottom nav hidden on desktop — replaced by sidebar/top-nav usage */
  .bnav{display:none;}
  body{padding-bottom:0!important;}

  /* Wider modals */
  .mbox{max-width:560px;padding:20px;}

  /* Stats grid gets more columns */
  .sgrid{grid-template-columns:repeat(4,1fr);gap:8px;}
  .sgrid4{grid-template-columns:repeat(6,1fr);}

  /* Cards slightly more padding */
  .card{padding:14px;margin-bottom:10px;}

  /* Filter bar doesn't wrap */
  .fbar{flex-wrap:nowrap;}
  .fbar select,.fbar input{min-width:120px;}

  /* Listing rows larger thumb */
  .lthumb{width:52px;height:52px;}
  .lthumb img{width:52px;height:52px;}

  /* Pagination more breathing room */
  .pgrow{padding:12px 0 6px;gap:10px;}
  .pgb{padding:6px 18px;font-size:12px;}
}

@media(min-width:1024px){
  :root{--max-w:1200px;}
  html{font-size:14px;}
  .sgrid{grid-template-columns:repeat(5,1fr);}
}