/* ============ TOKENS ============ */
:root{
  --bg:#080910;
  --bg-elevated:#0D0F18;
  --border:rgba(255,255,255,.08);
  --border-strong:rgba(255,255,255,.16);
  --text:#F2F5F9;
  --text-dim:#8D97AC;
  --text-faint:#5B6478;

  --blue:#3B82F6;
  --blue-deep:#2354C7;
  --cyan:#22D3EE;
  --danger:#F2555A;
  --success:#34D399;

  --grad-brand: linear-gradient(135deg, var(--blue), var(--cyan));

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:22px;

  --font-display:'Space Grotesk', system-ui, sans-serif;
  --font-body:'Inter', system-ui, sans-serif;
  --font-mono:'IBM Plex Mono', ui-monospace, monospace;

  --ease: cubic-bezier(.16,.8,.24,1);
  --nav-h: 64px;
  --safe-b: env(safe-area-inset-bottom, 0px);
  /* Reserved strip at the very bottom of the screen. The hosting platform
     renders a small floating badge here that this app doesn't control —
     lifting the nav bar above it keeps every nav button clear of it. */
  --badge-clearance: 64px;
}

*{box-sizing:border-box; margin:0; padding:0;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

html,body{height:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.45;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
}
button{font-family:inherit; color:inherit;}
:focus-visible{outline:2px solid var(--cyan); outline-offset:2px; border-radius:6px;}

/* ============ BOOT LOADER ============ */
.boot-loader{
  min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1rem;
  color:var(--text-dim); font-family:var(--font-mono); font-size:.82rem; letter-spacing:.06em;
}
.boot-hex{
  width:44px; height:44px;
  background:var(--grad-brand);
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  animation:boot-pulse 1.2s ease-in-out infinite;
}
@keyframes boot-pulse{0%,100%{opacity:.4; transform:scale(.9);} 50%{opacity:1; transform:scale(1);}}

/* ============ APP SHELL ============ */
.app{
  min-height:100vh;
  display:flex; flex-direction:column;
  max-width:560px;
  margin:0 auto;
  position:relative;
}
.app-topbar{
  position:sticky; top:0; z-index:20;
  display:flex; align-items:center; justify-content:space-between;
  padding:1rem 1.1rem .85rem;
  background:linear-gradient(180deg, rgba(8,9,16,.92), rgba(8,9,16,.55));
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.app-brand{display:flex; align-items:center; gap:.5rem; font-family:var(--font-display); font-weight:700; font-size:1.02rem;}
.app-brand-mark{width:22px; height:22px; flex-shrink:0;}
.app-brand-accent{background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent;}
.app-topbar-stat{
  display:flex; align-items:center; gap:.4rem;
  font-family:var(--font-mono); font-size:.78rem; color:var(--text-dim);
  background:rgba(255,255,255,.04); border:1px solid var(--border); border-radius:999px; padding:.35rem .7rem;
}
.app-topbar-stat b{color:var(--cyan); font-weight:600;}

.app-main{flex:1; padding:1.1rem 1.1rem calc(var(--nav-h) + var(--safe-b) + var(--badge-clearance) + 1.5rem); }

/* RichAds stays inside its reserved Power-page slot and never floats over navigation. */
#richads-embedded-banner{position:relative; z-index:1; width:100%; max-width:100%; min-height:90px; box-sizing:border-box; border:1px solid rgba(255,255,255,.08); background:linear-gradient(180deg,rgba(18,21,32,.96),rgba(9,11,18,.98)); color:var(--text-dim); border-radius:14px; overflow:hidden;}
#richads-embedded-banner iframe,#richads-embedded-banner ins,#richads-embedded-banner > *{max-width:100%; box-sizing:border-box;}

.power-session-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.8rem;}
.power-session-subtitle{margin-top:.25rem;color:var(--text-dim);font-size:.76rem;line-height:1.45;max-width:34rem;}
.power-session-live{display:flex;align-items:center;gap:.4rem;padding:.35rem .55rem;border:1px solid rgba(34,211,238,.18);border-radius:999px;color:var(--cyan);font:600 .62rem var(--font-mono);letter-spacing:.08em;white-space:nowrap;}
.power-session-live-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:status-pulse 1.8s ease-in-out infinite;}
.plant-status-active,.plant-status-off,.plant-status-ready{display:block;font:600 .64rem var(--font-mono);letter-spacing:.04em;margin-bottom:.2rem;}
.plant-status-active{color:var(--cyan);}
.plant-status-off{color:#ff8f8f;}
.plant-status-ready{color:var(--text-dim);}
.plant-online-note{display:block;color:var(--text-faint);font:500 .64rem var(--font-mono);line-height:1.35;margin-top:.15rem;}
.plant-countdown,.plant-end-time{display:none;}

@media (max-width:520px){.power-session-header{align-items:flex-start;}.power-session-live{font-size:.56rem;padding:.3rem .45rem;}.power-session-subtitle{font-size:.7rem;}.plant-countdown{font-size:1.15rem;}}

/* page transition */
.page{animation:page-in .32s var(--ease);}
@keyframes page-in{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}

/* ============ BOTTOM NAV ============ */
.bottom-nav{
  position:fixed; left:0; right:0; bottom:var(--badge-clearance); z-index:30;
  max-width:560px; margin:0 auto;
  display:flex;
  height:calc(var(--nav-h) + var(--safe-b));
  padding-bottom:var(--safe-b);
  background:rgba(11,12,20,.88);
  backdrop-filter:blur(16px) saturate(140%);
  border-top:1px solid var(--border);
  border-radius:16px 16px 0 0;
  box-shadow:0 8px 30px -8px rgba(0,0,0,.5);
}
.nav-item{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem;
  background:none; border:none; cursor:pointer; color:var(--text-faint);
  font-size:.68rem; font-weight:600; letter-spacing:.01em;
  transition:color .2s var(--ease);
  position:relative;
}
.nav-item svg{width:21px; height:21px; transition:transform .25s var(--ease);}
.nav-item.is-active{color:var(--cyan);}
.nav-item.is-active svg{transform:translateY(-2px);}
.nav-item.is-active::before{
  content:''; position:absolute; top:2px; width:4px; height:4px; border-radius:50%;
  background:var(--cyan); box-shadow:0 0 8px var(--cyan);
}

/* ============ GLASS CARD ============ */
.glass{
  background:rgba(255,255,255,.035);
  border:1px solid var(--border);
  backdrop-filter:blur(14px);
  border-radius:var(--radius-md);
}
.section-title{font-family:var(--font-display); font-weight:600; font-size:1.05rem; margin-bottom:.9rem;}
.section-block{margin-bottom:1.6rem;}
.eyebrow{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.12em; color:var(--cyan); text-transform:uppercase; margin-bottom:.35rem; display:block;}

/* ============ PRODUCTION PANEL ============ */
.forge-panel{
  padding:1.4rem 1.2rem 1.5rem;
  position:relative; overflow:hidden;
}
.forge-panel::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse at 50% 20%, rgba(59,130,246,.16), transparent 60%);
}
.forge-row{position:relative; z-index:1; display:flex; align-items:center; justify-content:center; gap:.9rem; margin-bottom:1.3rem;}
.forge-slot{
  width:74px; height:74px; border-radius:16px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.2rem;
  background:rgba(255,255,255,.03); border:1.5px dashed var(--border-strong);
  font-family:var(--font-mono); font-size:.6rem; color:var(--text-faint); text-align:center;
  cursor:pointer; transition:border-color .25s, background .25s, transform .15s;
}
.forge-slot:active{transform:scale(.96);}
.forge-slot.is-filled{border-style:solid; border-color:var(--cyan); background:rgba(34,211,238,.08); color:var(--text);}
.forge-slot.is-locked{cursor:default; opacity:.7;}
.forge-slot-icon{width:26px; height:26px;}

.forge-core-wrap{width:60px; height:60px; flex-shrink:0; position:relative;}
.forge-core-svg{width:100%; height:100%;}
.forge-core-hex{transition:filter .3s;}
.forge-panel.is-producing .forge-core-hex{animation:core-active 1.6s ease-in-out infinite;}
.forge-panel.is-producing .forge-core-ring{animation:spin 3.2s linear infinite;}
@keyframes core-active{0%,100%{filter:drop-shadow(0 0 4px rgba(34,211,238,.4));} 50%{filter:drop-shadow(0 0 16px rgba(59,130,246,.85));}}
@keyframes spin{to{transform:rotate(360deg);}}

.forge-status{position:relative; z-index:1; text-align:center; margin-bottom:1.2rem;}
.forge-status-title{font-family:var(--font-display); font-weight:600; font-size:1.15rem; margin-bottom:.2rem;}
.forge-status-sub{color:var(--text-dim); font-size:.85rem; font-family:var(--font-mono);}
.forge-status-time{font-family:var(--font-mono); font-size:1.6rem; font-weight:600; color:var(--cyan); margin-top:.4rem; letter-spacing:.04em;}

.progress-track{
  position:relative; z-index:1; height:8px; border-radius:999px; background:rgba(255,255,255,.06);
  overflow:hidden; margin-bottom:1.2rem; border:1px solid var(--border);
}
.progress-fill{
  height:100%; border-radius:999px; background:var(--grad-brand);
  box-shadow:0 0 10px rgba(34,211,238,.6);
  transition:width .95s linear;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  width:100%; padding:.9rem 1.2rem; border-radius:999px; border:none; cursor:pointer;
  font-family:var(--font-body); font-weight:600; font-size:.95rem;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), opacity .2s;
  position:relative; z-index:1;
}
.btn-primary{background:var(--grad-brand); color:#06070C; box-shadow:0 0 0 1px rgba(59,130,246,.35), 0 8px 22px -6px rgba(59,130,246,.6);}
.btn-primary:active{transform:scale(.98);}
.btn-primary:disabled{opacity:.4; box-shadow:none; cursor:not-allowed;}
.btn-outline{background:rgba(255,255,255,.04); border:1px solid var(--border-strong); color:var(--text);}
.btn-outline:disabled{opacity:.35; cursor:not-allowed;}
.btn-sm{padding:.55rem .9rem; font-size:.82rem; width:auto;}

/* ============ STATS GRID ============ */
.stats-grid{display:grid; grid-template-columns:1fr 1fr; gap:.7rem;}
.stat-item{
  padding:.85rem .9rem; display:flex; flex-direction:column; gap:.3rem;
}
.stat-label{font-family:var(--font-mono); font-size:.66rem; letter-spacing:.06em; color:var(--text-faint); text-transform:uppercase; display:flex; align-items:center; gap:.35rem;}
.stat-label svg{width:13px; height:13px;}
.stat-value{font-family:var(--font-display); font-weight:600; font-size:1.15rem;}
.stat-value small{font-family:var(--font-mono); font-weight:400; font-size:.7rem; color:var(--text-faint); margin-left:.2rem;}

/* ============ MATERIAL PICKER SHEET ============ */
.sheet-backdrop{
  position:fixed; inset:0; z-index:50; background:rgba(4,5,10,.6); backdrop-filter:blur(2px);
  display:flex; align-items:flex-end; justify-content:center;
  animation:fade-in .2s var(--ease);
}
@keyframes fade-in{from{opacity:0;} to{opacity:1;}}
.sheet{
  width:100%; max-width:560px; background:var(--bg-elevated); border:1px solid var(--border);
  border-radius:22px 22px 0 0; padding:1.4rem 1.2rem calc(1.4rem + var(--safe-b));
  animation:sheet-up .28s var(--ease);
}
@keyframes sheet-up{from{transform:translateY(24px); opacity:0;} to{transform:translateY(0); opacity:1;}}
.sheet-handle{width:36px; height:4px; border-radius:999px; background:var(--border-strong); margin:0 auto 1.1rem;}
.sheet-title{font-family:var(--font-display); font-weight:600; font-size:1.05rem; margin-bottom:1rem;}
.sheet-option{
  display:flex; align-items:center; justify-content:space-between; width:100%;
  padding:.9rem .95rem; border-radius:14px; border:1px solid var(--border); background:rgba(255,255,255,.03);
  margin-bottom:.6rem; cursor:pointer; transition:border-color .2s, background .2s;
}
.sheet-option:disabled{opacity:.4; cursor:not-allowed;}
.sheet-option:not(:disabled):active{transform:scale(.98);}
.sheet-option-left{display:flex; align-items:center; gap:.7rem; text-align:left;}
.sheet-option-icon{width:34px; height:34px; border-radius:9px; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.sheet-option-name{font-weight:600; font-size:.92rem;}
.sheet-option-meta{font-family:var(--font-mono); font-size:.72rem; color:var(--text-faint);}
.sheet-option-owned{font-family:var(--font-mono); font-size:.82rem; color:var(--text-dim);}
.sheet-cancel{width:100%; text-align:center; padding:.8rem; color:var(--text-dim); font-size:.88rem; background:none; border:none; cursor:pointer;}

.grade-icon{width:19px; height:19px;}
.grade-scrap{background:rgba(139,148,166,.16); color:#9BA6BA;}
.grade-standard{background:rgba(59,130,246,.16); color:var(--blue);}
.grade-premium{background:rgba(34,211,238,.16); color:var(--cyan);}

/* ============ SHOP ============ */
.shop-card{padding:1.1rem 1.1rem; display:flex; align-items:center; gap:.9rem; margin-bottom:.8rem;}
.shop-icon{width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.shop-info{flex:1; min-width:0;}
.shop-name{font-family:var(--font-display); font-weight:600; font-size:1rem; margin-bottom:.15rem;}
.shop-meta{font-family:var(--font-mono); font-size:.76rem; color:var(--text-dim);}
.shop-owned{font-size:.76rem; color:var(--text-faint); margin-top:.15rem;}

/* ============ TABS (Power page) ============ */
.tab-switch{display:flex; gap:.4rem; padding:.3rem; border-radius:999px; background:rgba(255,255,255,.03); border:1px solid var(--border); margin-bottom:1.3rem;}
.tab-btn{flex:1; padding:.6rem; border-radius:999px; border:none; background:none; color:var(--text-dim); font-weight:600; font-size:.85rem; cursor:pointer; transition:background .2s, color .2s;}
.tab-btn.is-active{background:var(--grad-brand); color:#06070C;}
.placeholder-panel{padding:2.6rem 1.4rem; text-align:center;}
.placeholder-icon{width:44px; height:44px; margin:0 auto 1rem; color:var(--text-faint);}
.placeholder-text{color:var(--text-dim); font-size:.94rem;}
.placeholder-tag{display:inline-block; margin-top:.9rem; font-family:var(--font-mono); font-size:.68rem; letter-spacing:.08em; color:var(--text-faint); border:1px solid var(--border); border-radius:999px; padding:.3rem .7rem;}

/* ============ MARKET ============ */
.byte-hero{padding:1.5rem 1.3rem; text-align:center; position:relative; overflow:hidden;}
.byte-hero::before{content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, rgba(34,211,238,.14), transparent 65%); pointer-events:none;}
.byte-hero-label{position:relative; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.1em; color:var(--text-dim); text-transform:uppercase;}
.byte-hero-value{position:relative; font-family:var(--font-display); font-weight:700; font-size:2.3rem; margin:.3rem 0; background:var(--grad-brand); -webkit-background-clip:text; background-clip:text; color:transparent;}
.byte-hero-sub{position:relative; color:var(--text-faint); font-size:.78rem; font-family:var(--font-mono);}

.sell-row{display:flex; align-items:center; justify-content:space-between; padding:.95rem 1.1rem; border-bottom:1px solid var(--border);}
.sell-row:last-child{border-bottom:none;}
.sell-left{display:flex; align-items:center; gap:.7rem;}
.sell-name{font-weight:600; font-size:.92rem;}
.sell-meta{font-family:var(--font-mono); font-size:.74rem; color:var(--text-faint);}

.sol-price-row{display:flex; align-items:baseline; justify-content:space-between; padding:1.1rem 1.1rem 0;}
.sol-price-value{font-family:var(--font-display); font-weight:600; font-size:1.4rem;}
.sol-price-badge{font-family:var(--font-mono); font-size:.72rem; padding:.2rem .5rem; border-radius:6px;}
.sol-price-badge.up{color:var(--success); background:rgba(52,211,153,.12);}
.sol-price-badge.down{color:var(--danger); background:rgba(242,85,90,.12);}
.chart-wrap{padding:.8rem 1rem 1.1rem;}
.chart-svg{width:100%; height:88px; display:block;}
.chart-state{padding:1.6rem 1rem; text-align:center; color:var(--text-dim); font-size:.85rem;}
.chart-retry{margin-top:.7rem;}

.byte-info-row{display:flex; align-items:center; justify-content:space-between; padding:.7rem 0;}
.byte-info-row + .byte-info-row{border-top:1px solid var(--border);}
.byte-info-label{font-size:.86rem; color:var(--text-dim);}
.byte-info-value{font-family:var(--font-mono); font-size:.86rem; color:var(--cyan);}

/* ============ PROFILE ============ */
.profile-header{display:flex; align-items:center; gap:.9rem; padding:1.2rem; margin-bottom:1.4rem;}
.profile-avatar{
  width:52px; height:52px; border-radius:14px; flex-shrink:0;
  background:var(--grad-brand); clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.profile-name{font-family:var(--font-display); font-weight:600; font-size:1.05rem;}
.profile-sub{font-family:var(--font-mono); font-size:.74rem; color:var(--text-faint);}

.stat-list{}
.stat-list-row{display:flex; align-items:center; justify-content:space-between; padding:.85rem 1.1rem; border-bottom:1px solid var(--border);}
.stat-list-row:last-child{border-bottom:none;}
.stat-list-label{display:flex; align-items:center; gap:.6rem; font-size:.88rem; color:var(--text-dim);}
.stat-list-label svg{width:15px; height:15px; color:var(--text-faint);}
.stat-list-value{font-family:var(--font-mono); font-weight:600; font-size:.9rem;}

/* ============ TOAST ============ */
.toast{
  position:fixed; left:50%; transform:translateX(-50%); bottom:calc(var(--nav-h) + var(--safe-b) + var(--badge-clearance) + 14px);
  z-index:60; background:var(--bg-elevated); border:1px solid var(--border-strong);
  padding:.65rem 1.1rem; border-radius:999px; font-size:.82rem; font-weight:500;
  box-shadow:0 8px 24px -6px rgba(0,0,0,.5);
  animation:toast-in .25s var(--ease);
  display:flex; align-items:center; gap:.5rem; white-space:nowrap;
}
@keyframes toast-in{from{opacity:0; transform:translate(-50%, 8px);} to{opacity:1; transform:translate(-50%, 0);}}
.toast-dot{width:6px; height:6px; border-radius:50%; background:var(--cyan); flex-shrink:0;}

/* ============ STATUS STRIP (fills the reserved bottom clearance) ============ */
.status-strip{
  position:fixed; left:0; right:0; bottom:0; z-index:20;
  height:calc(var(--badge-clearance) + var(--safe-b));
  padding:0 1.2rem calc(var(--safe-b));
  max-width:560px; margin:0 auto;
  display:flex; align-items:center; gap:.55rem;
  background:linear-gradient(180deg, rgba(13,15,24,.85), rgba(8,9,15,1));
}
.richads-section{position:relative; z-index:1;}
.richads-slot{ position:relative; z-index:1; isolation:isolate; overflow:hidden; width:100%; min-height:90px; display:flex; align-items:center; justify-content:center; background:rgba(10,12,20,.96); }width:100%; min-height:90px; max-height:120px; box-sizing:border-box; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; isolation:isolate; background:linear-gradient(180deg, rgba(18,21,32,.96), rgba(9,11,18,.98)); border:1px solid rgba(255,255,255,.08); border-radius:14px;}
.richads-slot iframe{position:static !important; inset:auto !important; display:block !important; width:100% !important; max-width:100% !important; min-width:0 !important; height:90px !important; max-height:90px !important; margin:0 !important; transform:none !important; z-index:1 !important;}
.richads-slot [style*="position: fixed"],.richads-slot [style*="position:fixed"]{position:static !important; inset:auto !important;}
.richads-placeholder{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);pointer-events:none;}

.status-strip-dot{
  width:6px; height:6px; border-radius:50%; background:var(--cyan);
  box-shadow:0 0 8px var(--cyan); flex-shrink:0;
  animation:status-pulse 2.2s ease-in-out infinite;
}
@keyframes status-pulse{0%,100%{opacity:1;} 50%{opacity:.3;}}
.status-strip-text{
  font-family:var(--font-mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-faint); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ============ WITHDRAWAL ============ */
.withdraw-input{
  display:block; width:100%; padding:.75rem .9rem; margin-bottom:.6rem;
  background:rgba(255,255,255,.04); border:1px solid var(--border-strong);
  border-radius:var(--radius-sm); color:var(--text); font-size:.9rem; font-family:var(--font-body);
  transition:border-color .2s;
}
.withdraw-input:focus{outline:none; border-color:var(--cyan);}
.withdraw-input::placeholder{color:var(--text-faint);}
.withdraw-msg{font-size:.82rem; margin-top:.55rem; padding:.55rem .8rem; border-radius:8px; line-height:1.4;}
.withdraw-msg-err{color:var(--danger); background:rgba(242,85,90,.1);}
.withdraw-msg-ok{color:var(--success); background:rgba(52,211,153,.1);}

/* ============ ADSGRAM \u2014 SPONSORED SLOT ============ */
.adsgram-slot{
  position:relative; overflow:hidden; padding:.9rem .95rem;
}
.adsgram-slot::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse at 100% 0%, rgba(34,211,238,.10), transparent 60%);
}
.adsgram-slot-tag{
  position:relative; z-index:1; display:inline-block;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--text-faint); background:rgba(255,255,255,.04); border:1px solid var(--border);
  padding:.15rem .5rem; border-radius:999px; margin-bottom:.65rem;
}
.adsgram-slot-body{position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:.8rem;}
.adsgram-slot-title{font-weight:600; font-size:.88rem;}
.adsgram-slot-desc{font-size:.76rem; color:var(--text-dim); margin-top:.15rem;}

/* ============ POWER PLANTS ============ */
.plant-grid{display:grid; grid-template-columns:1fr 1fr; gap:.75rem;}
.plant-card{padding:1.1rem .9rem; text-align:center; display:flex; flex-direction:column; align-items:center; gap:.5rem;}
.plant-icon{font-size:1.9rem; line-height:1;}
.plant-name{font-family:var(--font-display); font-weight:600; font-size:.82rem; line-height:1.25;}
.plant-weight{font-family:var(--font-mono); font-size:.7rem; color:var(--text-faint);}
.plant-status{font-family:var(--font-mono); font-size:.78rem; color:var(--success); font-weight:600;}
.plant-owned{border-color:rgba(52,211,153,.3); background:rgba(52,211,153,.05);}
.plant-locked{opacity:.55;}
.plant-card .btn-sm{width:100%;}

/* ============ OFFERWALL ============ */
.offer-list{display:flex; flex-direction:column; gap:.7rem;}
.offer-card{display:flex; align-items:center; gap:.8rem; padding:.85rem;}
.offer-card-img{width:44px; height:44px; border-radius:10px; object-fit:cover; flex-shrink:0; background:rgba(255,255,255,.05);}
.offer-card-img-fallback{display:flex; align-items:center; justify-content:center; color:var(--cyan);}
.offer-card-body{flex:1; min-width:0;}
.offer-card-name{font-weight:600; font-size:.88rem; margin-bottom:.15rem;}
.offer-card-desc{font-size:.74rem; color:var(--text-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.offer-card-right{display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; flex-shrink:0;}
.offer-card-payout{font-family:var(--font-mono); font-size:.76rem; color:var(--cyan); font-weight:600; white-space:nowrap;}

@media (min-width:560px){
  .app{border-left:1px solid var(--border); border-right:1px solid var(--border);}
}