/* ============================================================
   KISSAN PRO — Member area (dApp)
   Built on the light / organic design tokens from style.css
   ============================================================ */

/* ---- layout scaffolding ---- */
.app-section{padding:clamp(2.2rem,5vw,3.6rem) 0 5rem;min-height:60vh}
.app-narrow{width:min(720px,92%)}
.footer--slim{padding:2rem 0 1.6rem}
.nav a.active{color:var(--ink)}
.nav a.active::after{width:100%}

/* ---- page hero ---- */
.app-hero{text-align:center;max-width:680px;margin:0 auto 2.6rem}
.app-hero h1{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,4.6vw,2.9rem);
  margin:.9rem 0 .7rem;letter-spacing:-.02em}
.app-hero p{color:var(--muted);max-width:600px;margin:0 auto;font-size:1.02rem}
.pill{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-weight:600;
  font-size:.74rem;letter-spacing:2px;text-transform:uppercase;padding:.4rem .95rem;border-radius:999px;
  background:rgba(47,158,79,.12);color:var(--green-deep);border:1px solid rgba(47,158,79,.24)}
.muted{color:var(--muted)}
.small{font-size:.85rem}

/* ---- cards ---- */
.clay-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);padding:1.6rem}
.clay-card + .clay-card{margin-top:1.1rem}
/* inside grids the grid `gap` already spaces cards — drop the stacking margin */
.stat-grid > .clay-card + .clay-card,
.hist-grid > .clay-card + .clay-card{margin-top:0}

/* ---- section heading ---- */
.dash-h{font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;
  margin:2.6rem 0 1rem;padding-left:.9rem;position:relative}
.dash-h::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;border-radius:3px;
  background:var(--grad-gold)}

/* ---- buttons the base theme doesn't define ---- */
.btn-outline{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-body);
  font-weight:600;font-size:1rem;cursor:pointer;padding:.82rem 1.5rem;border-radius:999px;white-space:nowrap;
  background:var(--card);color:var(--green-deep);border:1px solid var(--line);box-shadow:var(--shadow-sm);
  transition:transform .25s var(--ease-cine),border-color .25s,color .25s}
.btn-outline:hover{transform:translateY(-3px);border-color:rgba(47,158,79,.45);color:var(--green)}
.btn-outline.btn-sm{padding:.52rem 1.1rem;font-size:.88rem}
.btn-block{width:100%;justify-content:center;padding:.95rem 1.4rem;font-size:1.04rem}
#connectBtn{white-space:nowrap}
/* once a wallet is connected the header button becomes an address chip … */
#connectBtn.wallet-connected{background:rgba(47,158,79,.14);color:var(--green-deep);
  box-shadow:none;border:1px solid rgba(47,158,79,.3);font-family:var(--font-mono)}
/* … and the in-card "Connect Wallet" prompts are no longer needed */
body.wallet-connected .reg-connect,
body.wallet-connected .dash-connect{display:none}
.dash-connect{text-align:center;margin:.5rem 0 1.8rem}

/* ---- status banners ---- */
.dapp-status{font-size:.95rem;color:var(--muted);text-align:center;margin:1.4rem auto;max-width:640px;
  line-height:1.55}
.dapp-status:not(:empty){padding:.9rem 1.2rem;border-radius:var(--r-md);border:1px solid var(--line);
  background:var(--card);box-shadow:var(--shadow-sm)}
.dapp-status.ok:not(:empty){color:var(--green-deep);border-color:rgba(47,158,79,.3);background:rgba(47,158,79,.08)}
.dapp-status.err:not(:empty){color:#b23b2e;border-color:rgba(200,70,50,.3);background:rgba(200,70,50,.07)}

/* ---- account strip ---- */
.acct-strip{display:flex;flex-wrap:wrap;gap:1.4rem 2.2rem;align-items:center}
.acct-item{display:flex;flex-direction:column;gap:.25rem;min-width:120px}
.acct-item span{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.acct-item b{font-family:var(--font-mono);font-size:1.12rem;font-weight:700;color:var(--ink);word-break:break-word}

/* ---- stat grid ---- */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.stat{padding:1.2rem 1.3rem}
.stat span{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-bottom:.5rem}
.stat b{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--ink);line-height:1.1;word-break:break-word}
/* fixed-width digits so live-streaming values don't jitter/vibrate as they tick */
.stat b,.acct-item b,.lvl-metric b,.up-cond-val,.wd-row b,.rank-claim-info b{
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.stat-sub{display:block;margin-top:.4rem;font-size:.78rem;color:var(--muted);font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat.highlight{background:linear-gradient(135deg,rgba(47,158,79,.1),rgba(198,143,44,.12));border-color:rgba(198,143,44,.32)}
.stat.highlight b{color:var(--gold-deep)}

/* ---- dashboard actions ---- */
.dash-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1.6rem 0}

/* ---- inputs ---- */
.reg-form input,.modal-field input,.ref-card input,.wd-amount input,.tm-lookup input,#reflink{
  width:100%;font-family:var(--font-mono);font-size:1rem;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:var(--r-sm);padding:.8rem .95rem;transition:border-color .2s,box-shadow .2s}
.reg-form input:focus,.modal-field input:focus,.ref-card input:focus,.wd-amount input:focus,.tm-lookup input:focus{
  outline:none;border-color:rgba(47,158,79,.55);box-shadow:0 0 0 3px rgba(47,158,79,.14)}
.reg-form label,.modal-field{display:flex;flex-direction:column;gap:.45rem;margin-bottom:1.1rem}
.reg-form label>span,.modal-field>span{font-size:.86rem;font-weight:600;color:var(--ink-2)}
.reg-form small{color:var(--muted);font-size:.8rem}

/* ---- level / booster / upline cards ---- */
.lvl-card{padding:1.5rem}
.lvl-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  padding-bottom:1.1rem;margin-bottom:1.1rem;border-bottom:1px solid var(--line)}
.lvl-metric span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.lvl-metric b{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;color:var(--gold-deep)}
.lvl-metric-right{text-align:right}
.lvl-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.7rem}
.lvl-tiers>*{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);padding:.7rem .8rem;
  display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.6rem}
.lvl-tier-name{font-weight:600;font-size:.85rem;color:var(--ink)}
.lvl-tier-pct{font-family:var(--font-mono);font-weight:700;color:var(--green-deep);margin-left:auto}
.lvl-tier-count{flex-basis:100%;font-size:.78rem;color:var(--muted)}
.lvl-bar{flex-basis:100%;height:6px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:.5rem}
.lvl-bar>*{display:block;height:100%;background:var(--grad-gold)}
.bst-summary{margin:1.1rem 0}

/* ---- upline detail ---- */
.up-badge{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.85rem;
  padding:.5rem 1rem;border-radius:999px;margin-bottom:1rem}
.up-badge.ok{background:rgba(47,158,79,.14);color:var(--green-deep)}
.up-badge.pending{background:rgba(198,143,44,.14);color:var(--gold-deep)}
.up-conds{display:grid;gap:.5rem;margin-bottom:1rem}
.up-cond-name{color:var(--muted)}
.up-cond-val{font-family:var(--font-mono);font-weight:700;color:var(--ink)}
.up-conds>*{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .8rem;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm)}
.up-positions{border-top:1px solid var(--line);padding-top:1rem}
.up-pos-title{display:block;font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:.6rem}
.up-pos-row{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;border-bottom:1px dashed var(--line)}
.up-pos-row b{font-family:var(--font-mono);color:var(--green-deep)}

/* ---- referral ---- */
.ref-card{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.ref-card input{flex:1;min-width:220px}

/* ---- modal ---- */
.modal-overlay{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:1.2rem;
  background:rgba(20,40,28,.42);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.modal-overlay.open{display:grid}
.modal-card{position:relative;width:min(440px,100%);background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow);padding:2rem 1.8rem}
.modal-card h3{font-family:var(--font-display);font-weight:600;font-size:1.4rem;margin-bottom:.5rem}
.modal-close{position:absolute;top:.9rem;right:1rem;width:34px;height:34px;border:none;cursor:pointer;
  background:var(--paper);border-radius:10px;font-size:1.4rem;line-height:1;color:var(--muted)}
.modal-close:hover{color:var(--ink)}
.modal-field{margin-top:1rem}

/* ---- register ---- */
.reg-card{margin-top:1rem}
.reg-steps{list-style:none;display:flex;gap:.6rem 1.4rem;flex-wrap:wrap;justify-content:center;margin-bottom:1.6rem;padding:0}
.reg-steps li{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.9rem;font-weight:500}
.reg-steps b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-size:.82rem;
  background:linear-gradient(135deg,var(--gold-soft),var(--gold));color:#3a2708}
.reg-connect{text-align:center;padding:1.2rem 0}
.reg-connect-btn{min-width:220px;margin-bottom:1rem}

/* already-registered modal */
.reg-done .modal-card{text-align:center;max-width:400px}
.reg-done-icon{width:56px;height:56px;margin:0 auto 1rem;display:grid;place-items:center;border-radius:50%;
  background:rgba(47,158,79,.15);color:var(--green-deep);font-size:1.7rem;font-weight:700;border:1px solid rgba(47,158,79,.3)}
.reg-progress{height:8px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:1.4rem}
.reg-progress>span{display:block;height:100%;width:0;border-radius:6px;background:var(--grad-gold);transition:width 5s linear}
.app-foot-note{text-align:center;color:var(--muted);margin-top:1.6rem}
.app-foot-note a{color:var(--green-deep);font-weight:600}
.app-foot-note a:hover{color:var(--green)}

/* ---- withdraw ---- */
.wd-card{padding:1.4rem 1.6rem}
.wd-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line-2)}
.wd-row:last-child{border-bottom:none}
.wd-row span{color:var(--muted)}
.wd-row b{font-family:var(--font-mono);font-weight:700;color:var(--ink)}
.wd-sep{margin-top:.4rem;border-top:1px solid var(--line);padding-top:.9rem}
.wd-sep b,.wd-net b{color:var(--gold-deep);font-size:1.15rem}
.wd-amount{margin-top:1.1rem}
.wd-amount>label{display:block;font-weight:600;color:var(--ink-2);margin-bottom:.6rem}
.wd-amount-row{display:flex;gap:.6rem;margin-bottom:1rem}
.wd-amount-row input{flex:1}
.wd-net{border-top:1px solid var(--line);margin-top:.4rem;padding-top:.9rem}
.wd-btn{margin-top:1.2rem}
.wd-cooldown{margin-top:1rem;padding:.85rem 1.1rem;border-radius:var(--r-md);text-align:center;font-size:.92rem;
  background:rgba(198,143,44,.12);border:1px solid rgba(198,143,44,.32);color:var(--gold-deep)}
.wd-cooldown b{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.wd-meta{margin-top:1.4rem}
.wd-note{text-align:center;margin-top:1rem}
.wd-history{display:grid;gap:.6rem}
.wd-hist-row{display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:.75rem 1rem;box-shadow:var(--shadow-sm)}
.wh-usdt{font-family:var(--font-mono);font-weight:700;color:var(--ink)}
.wh-ksn{font-family:var(--font-mono);color:var(--green-deep)}
.wh-date{font-size:.82rem;color:var(--muted)}
.wh-arrow{color:var(--gold-deep)}

/* ---- team ---- */
.tm-lookup{margin-top:1.1rem}
.tm-lookup>label{display:block;font-weight:600;color:var(--ink-2);margin-bottom:.6rem}
.tm-lookup-row{display:flex;gap:.6rem;margin-bottom:.7rem}
.tm-lookup-row input{flex:1;max-width:180px}
.team-tree{display:grid;gap:.6rem}
.team-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}
.team-toggle{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;padding:.85rem 1rem;font:inherit;color:var(--ink)}
.team-toggle:hover{background:var(--paper)}
.team-addr,.tm-addr{font-family:var(--font-mono);font-weight:600;color:var(--ink)}
.team-meta{margin-left:auto;display:flex;gap:1rem;flex-wrap:wrap;color:var(--muted);font-size:.85rem;font-family:var(--font-mono)}
.team-badge{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;
  background:rgba(47,158,79,.14);color:var(--green-deep);text-transform:uppercase;letter-spacing:.5px}
.team-badge.pending{background:rgba(198,143,44,.16);color:var(--gold-deep)}
.team-children{padding:0 .8rem .8rem 1.4rem;display:grid;gap:.5rem}
.leg{font-family:var(--font-mono)}
.tm-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);margin-top:.8rem}
.tm-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:420px}
.tm-table th,.tm-table td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line-2)}
.tm-table th{font-size:.72rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted);background:var(--paper)}
.tm-table tr:last-child td{border-bottom:none}

/* ---- rank ---- */
.rank-claim{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(47,158,79,.1),rgba(198,143,44,.12));border-color:rgba(198,143,44,.32)}
.rank-claim-info{display:flex;flex-direction:column;gap:.2rem}
.rank-claim-info span{font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.rank-claim-info b{font-family:var(--font-mono);font-size:1.7rem;font-weight:700;color:var(--gold-deep)}
.rank-claim-info small{color:var(--muted)}
.rank-ladder{display:grid;gap:.7rem}
.rank-ladder>*,.rank-hist-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-sm);padding:.9rem 1.1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.rank-no{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;flex:none;
  font-family:var(--font-mono);font-weight:700;background:var(--paper);border:1px solid var(--line);color:var(--gold-deep)}
.rank-head{font-family:var(--font-display);font-weight:600;color:var(--ink)}
.rank-meta{color:var(--muted);font-size:.85rem;font-family:var(--font-mono)}
.rank-legs{margin-left:auto;color:var(--muted);font-size:.82rem;font-family:var(--font-mono);text-align:right}
.rank-badge{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.22rem .6rem;border-radius:999px}
.rank-badge.done{background:rgba(47,158,79,.16);color:var(--green-deep)}
.rank-history{display:grid;gap:.6rem}
.rh-date{color:var(--muted);font-size:.85rem}
.rh-amt{margin-left:auto;font-family:var(--font-mono);font-weight:700;color:var(--green-deep)}

/* ---- history ---- */
.hist-summary{margin-bottom:.4rem}
.hist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.hist-card{padding:1.3rem}
.hist-card-head{display:flex;justify-content:space-between;align-items:center;gap:.8rem;
  margin-bottom:.9rem;padding-bottom:.8rem;border-bottom:1px solid var(--line)}
.hist-card-head b{font-family:var(--font-mono);font-size:1.2rem;color:var(--ink)}
.hist-card .wd-row{padding:.4rem 0}

/* ---- responsive ---- */
@media(max-width:600px){
  .lvl-head{flex-direction:column}
  .lvl-metric-right{text-align:left}
  .acct-strip{gap:1rem 1.4rem}
  .rank-legs,.rh-amt{margin-left:0}
  .stat-grid,.hist-grid{gap:.7rem}
}
