/* ==========================================================================
   CannaGrow 0.9.0 – Feste Standortkapazität & 3er-Bereiche
   ========================================================================== */

.grow-area-switcher,
.plant-area-nav,
.shop-area-selector{
  display:flex;
  gap:7px;
  overflow-x:auto;
  scrollbar-width:thin;
}

.grow-area-switcher{
  margin-top:10px;
  padding:2px 0 4px;
}

.grow-area-chip{
  appearance:none;
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  min-width:160px;
  min-height:56px;
  padding:8px 10px;
  color:var(--text);
  border:1px solid rgba(255,255,255,.055);
  border-radius:11px;
  background:rgba(255,255,255,.02);
  cursor:pointer;
  transition:.18s ease;
}

.grow-area-chip:hover,
.plant-area-nav-btn:hover{
  border-color:rgba(255,255,255,.12);
  background:rgba(255,255,255,.035);
}

.grow-area-chip.active,
.plant-area-nav-btn.active{
  border-color:rgba(87,210,124,.24);
  background:rgba(72,188,107,.08);
}

.grow-area-chip > span{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:9px;
  background:rgba(255,255,255,.04);
  font-size:12px;
  font-weight:900;
}

.grow-area-chip b,
.grow-area-chip small{
  display:block;
  text-align:left;
}

.grow-area-chip b{
  font-size:13px;
}

.grow-area-chip small{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}

.plant-area-nav{
  margin:9px 0 12px;
  padding:8px;
  border-radius:14px;
}

.plant-area-nav-btn{
  appearance:none;
  flex:0 0 auto;
  min-width:116px;
  min-height:49px;
  padding:7px 10px;
  color:var(--text);
  border:1px solid rgba(255,255,255,.055);
  border-radius:10px;
  background:rgba(255,255,255,.018);
  cursor:pointer;
}

.plant-area-nav-btn span,
.plant-area-nav-btn small{
  display:block;
  text-align:left;
}

.plant-area-nav-btn span{
  font-size:13px;
  font-weight:800;
}

.plant-area-nav-btn small{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}

.shop-area-selector{
  justify-content:flex-end;
  max-width:520px;
}

.property-shop-card .primary-btn:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* Der eigentliche Growroom zeigt immer nur maximal drei Pflanzen.
   Dadurch bleibt selbst die 30er-Halle optisch so groß wie bisher. */
.plant-grid.pixi-overlay{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

@media(max-width:600px){
  .grow-area-chip{
    min-width:172px;
    min-height:61px;
  }

  .grow-area-chip b,
  .plant-area-nav-btn span{
    font-size:13px!important;
  }

  .grow-area-chip small,
  .plant-area-nav-btn small{
    font-size:11px!important;
  }

  .shop-area-selector{
    width:100%;
    justify-content:flex-start;
  }
}


/* ==========================================================================
   CannaGrow 0.9.2 – Einzelne Platzfreischaltung & Pflanzen-Gesamtübersicht
   ========================================================================== */

.locked-slot{
  cursor:pointer!important;
  border-style:dashed!important;
  border-color:rgba(255,255,255,.09)!important;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),rgba(255,255,255,.008))!important;
}

.locked-slot:hover{
  border-color:rgba(91,209,127,.22)!important;
  background:rgba(72,188,107,.035)!important;
}

.locked-slot-content{
  position:absolute;
  inset:0;
  z-index:5;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  padding:14px;
  text-align:center;
  pointer-events:none;
}

.locked-slot-icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:3px;
  border-radius:12px;
  background:rgba(255,255,255,.035);
  font-size:19px;
}

.locked-slot-content b{
  font-size:14px;
}

.locked-slot-content small{
  color:var(--muted);
  font-size:12px;
}

.locked-slot-content strong{
  margin-top:4px;
  font-size:15px;
  color:#8fd4a2;
}

.slot-expansion-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  margin-top:9px;
  padding:15px;
  border-radius:16px;
}

.slot-expansion-copy h2{
  margin:3px 0 5px;
}

.slot-expansion-copy p{
  margin:0;
  max-width:780px;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.slot-price-preview{
  display:flex;
  gap:6px;
  overflow-x:auto;
  margin-top:11px;
  padding-bottom:2px;
}

.slot-price-preview span{
  flex:0 0 auto;
  min-width:105px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.045);
  border-radius:10px;
  background:rgba(255,255,255,.018);
  color:var(--muted);
  font-size:11px;
}

.slot-price-preview span.next{
  border-color:rgba(81,207,119,.19);
  background:rgba(72,188,107,.05);
  color:var(--text);
}

.slot-price-preview b{
  display:block;
  margin-top:2px;
  color:var(--text);
  font-size:13px;
}

.slot-unlock-btn{
  min-width:230px;
}

.slot-capacity-complete{
  margin-top:10px;
  color:#88cc9b;
  font-size:12px;
  font-weight:750;
}

.locked-tech-card{
  opacity:.72;
}

.locked-tech-message{
  display:flex;
  min-height:135px;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  padding-top:8px;
}

.locked-tech-message p{
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}

.plant-overview-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:9px 0 12px;
  padding:11px 13px;
  border-radius:13px;
}

.plant-overview-summary span{
  color:var(--muted);
  font-size:12px;
}

.plant-overview-summary strong{
  font-size:13px;
}

.plant-overview-location{
  margin-bottom:2px;
  color:#82c895;
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}

/* Pflanzen-Reiter: komplette Übersicht, aber kompakt genug für 30 Karten. */
#plantsView .plant-list{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

#plantsView .plant-card{
  min-width:0;
}

@media(max-width:1050px){
  #plantsView .plant-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .slot-expansion-card{
    grid-template-columns:1fr;
  }

  .slot-unlock-btn{
    width:100%;
    min-width:0;
  }

  .plant-overview-summary{
    align-items:flex-start;
    flex-direction:column;
  }

  #plantsView .plant-list{
    grid-template-columns:1fr;
  }

  .locked-slot-content b{
    font-size:13px;
  }

  .locked-slot-content small{
    font-size:11px;
  }
}


/* ==========================================================================
   CannaGrow 0.9.3 – Freie Mengeneingabe im Versorgungs-Shop
   ========================================================================== */

.supply-quantity-card{
  display:flex;
  flex-direction:column;
}

.supply-owned-row{
  align-items:flex-start;
}

.supply-unit-price{
  text-align:right;
}

.supply-unit-price strong{
  max-width:180px;
  font-size:12px!important;
  line-height:1.35;
}

.shop-quantity-control{
  display:grid;
  grid-template-columns:minmax(100px,130px) minmax(100px,1fr) auto;
  gap:9px;
  align-items:end;
  margin-top:12px;
  padding-top:11px;
  border-top:1px solid rgba(255,255,255,.05);
}

.shop-quantity-control label{
  display:flex;
  flex-direction:column;
  gap:5px;
}

.shop-quantity-control label > span,
.shop-quantity-total small{
  color:var(--muted);
  font-size:12px;
}

.shop-quantity-control input{
  width:100%;
  min-height:44px;
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  outline:none;
  background:rgba(255,255,255,.025);
  color:var(--text);
  font:inherit;
  font-size:15px;
  font-weight:750;
}

.shop-quantity-control input:focus{
  border-color:rgba(85,211,123,.28);
  box-shadow:0 0 0 3px rgba(76,198,112,.06);
}

.shop-quantity-total{
  min-height:44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.shop-quantity-total strong{
  display:block;
  font-size:15px!important;
}

.shop-quantity-total span{
  display:block;
  margin-top:1px;
  color:#8dd2a0;
  font-size:11px;
}

.shop-quantity-buy{
  min-width:125px;
  min-height:44px;
}

.shop-quantity-buy:disabled{
  opacity:.55;
  cursor:not-allowed;
}

@media(max-width:760px){
  .shop-quantity-control{
    grid-template-columns:1fr 1fr;
  }

  .shop-quantity-buy{
    grid-column:1/-1;
    width:100%;
  }
}

@media(max-width:420px){
  .shop-quantity-control{
    grid-template-columns:1fr;
  }

  .shop-quantity-buy{
    grid-column:auto;
  }

  .supply-unit-price{
    text-align:left;
  }
}


/* ==========================================================================
   CannaGrow 0.9.4 – Störungshilfe
   ========================================================================== */

.event-help-card{
  margin:12px 0 14px;
  padding:14px;
  border:1px solid rgba(231,172,70,.18);
  border-radius:16px;
  background:
    linear-gradient(180deg,rgba(229,164,56,.055),rgba(255,255,255,.018));
}

.event-help-card.tech{
  border-color:rgba(88,170,229,.19);
  background:
    linear-gradient(180deg,rgba(72,145,211,.055),rgba(255,255,255,.018));
}

.event-help-card.sensor{
  border-color:rgba(147,112,225,.2);
  background:
    linear-gradient(180deg,rgba(126,91,210,.06),rgba(255,255,255,.018));
}

.event-help-head{
  display:flex;
  align-items:center;
  gap:10px;
}

.event-help-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:rgba(255,255,255,.045);
  font-size:20px;
}

.event-help-head span{
  display:block;
  color:#e8bd72;
  font-size:11px;
  font-weight:850;
  letter-spacing:.07em;
}

.event-help-head h3{
  margin:2px 0 0;
  font-size:17px;
}

.event-help-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:12px;
}

.event-help-grid > div{
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.045);
  border-radius:11px;
  background:rgba(255,255,255,.018);
}

.event-help-grid span{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}

.event-help-grid p{
  margin:4px 0 0;
  color:var(--text);
  font-size:12px;
  line-height:1.5;
}

.event-help-stock{
  margin-top:8px;
  padding:9px 11px;
  border-radius:10px;
  background:rgba(0,0,0,.12);
}

.event-help-stock span,
.event-help-stock small{
  display:block;
}

.event-help-stock span{
  font-size:12px;
  font-weight:800;
}

.event-help-stock small{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.45;
}

.event-help-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}

.event-help-actions button{
  flex:1 1 220px;
}

.action-btn.recommended-action{
  border-color:rgba(93,218,132,.23);
  box-shadow:0 0 0 1px rgba(93,218,132,.04) inset;
}

@media(max-width:600px){
  .event-help-grid{
    grid-template-columns:1fr;
  }

  .event-help-head h3{
    font-size:16px;
  }

  .event-help-grid p,
  .event-help-stock span{
    font-size:12px!important;
  }

  .event-help-grid span,
  .event-help-stock small{
    font-size:11px!important;
  }

  .event-help-actions{
    flex-direction:column;
  }

  .event-help-actions button{
    width:100%;
    flex:auto;
  }
}


/* ==========================================================================
   CannaGrow 0.12.2 – Manuelle Ernte Nahfokus
   ========================================================================== */

.harvest-stage{
  position:relative;
  overflow:hidden;
  height:468px;
  display:grid;
  place-items:center;
  padding:12px;
  border-radius:26px;
  border:1px solid rgba(92,240,142,.10);
  background:
    radial-gradient(circle at 50% 18%,rgba(112,244,160,.09),transparent 34%),
    radial-gradient(circle at 50% 100%,rgba(23,57,34,.65),transparent 42%),
    linear-gradient(180deg,rgba(5,17,12,.94),rgba(2,9,7,.98));
}

.harvest-stage::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at center,transparent 48%,rgba(0,0,0,.26) 100%);
  pointer-events:none;
}

.harvest-camera{
  position:relative;
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  overflow:hidden;
}

.harvest-plant{
  position:relative;
  width:min(88%,350px);
  height:100%;
  min-height:404px;
  --harvest-pan-x:0px;
  --harvest-pan-y:0px;
  --harvest-zoom:1;
  transform:translate(var(--harvest-pan-x),var(--harvest-pan-y)) scale(var(--harvest-zoom));
  transform-origin:center center;
  transition:transform .46s cubic-bezier(.22,.61,.36,1), opacity .2s ease;
  will-change:transform;
}

.harvest-stem{
  left:50%!important;
  bottom:0!important;
  width:auto!important;
  height:98%!important;
  transform:translateX(-50%)!important;
  z-index:1;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.22));
}

.harvest-leaf{
  width:100px!important;
  height:100px!important;
  opacity:var(--leaf-opacity,.88)!important;
  z-index:2;
  transform:translate(-50%,-50%) rotate(var(--leaf-rotation,0deg)) scale(var(--leaf-scale,1))!important;
  transform-origin:center;
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.18));
}

.harvest-bud{
  width:62px!important;
  height:62px!important;
  z-index:5!important;
  padding:0!important;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:none!important;
  background:transparent!important;
  outline:none;
  touch-action:manipulation;
  transform:translate(-50%,-50%) scale(var(--bud-scale,1)) rotate(var(--bud-tilt,0deg));
  transition:transform .22s ease, filter .22s ease, opacity .18s ease;
}

.harvest-bud::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:var(--bud-stem-length,18px);
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(213,238,151,.58),rgba(130,170,87,.88));
  transform-origin:0 50%;
  transform:translateY(-50%) rotate(var(--bud-stem-angle,0deg));
  box-shadow:0 0 0 1px rgba(0,0,0,.03);
  z-index:1;
  opacity:.85;
}

.harvest-bud-hit{
  position:absolute;
  inset:8px;
  border:1px dashed rgba(90,224,130,.48);
  border-radius:50%;
  background:rgba(75,203,111,.04);
  box-shadow:0 0 0 4px rgba(75,203,111,.02);
  transition:.16s ease;
  z-index:2;
}

.harvest-bud img{
  position:relative;
  z-index:3;
  width:58px!important;
  height:58px!important;
  object-fit:contain;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.18));
}

.harvest-scissors{
  position:absolute;
  z-index:4;
  right:-1px;
  bottom:1px;
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#153d25;
  border:1px solid rgba(105,230,141,.28);
  color:#9be4af;
  font-size:12px;
  opacity:0;
  transform:scale(.8);
  transition:.15s ease;
  pointer-events:none;
}

.harvest-bud.is-target{
  z-index:7!important;
  filter:drop-shadow(0 0 18px rgba(101,240,148,.32));
}

.harvest-bud.is-target .harvest-bud-hit{
  border-color:rgba(105,235,145,.88);
  background:rgba(75,203,111,.10);
  box-shadow:0 0 0 6px rgba(75,203,111,.05);
  animation:harvestPulse 1.15s ease-in-out infinite;
}

@keyframes harvestPulse{
  0%,100%{transform:scale(1);opacity:1;}
  50%{transform:scale(1.07);opacity:.82;}
}

.harvest-bud:hover .harvest-bud-hit,
.harvest-bud:focus-visible .harvest-bud-hit{
  border-color:rgba(105,235,145,.8);
  background:rgba(75,203,111,.075);
  box-shadow:0 0 0 6px rgba(75,203,111,.04);
}

.harvest-bud:hover .harvest-scissors,
.harvest-bud:focus-visible .harvest-scissors,
.harvest-bud.is-target .harvest-scissors{
  opacity:1;
  transform:scale(1);
}

.harvest-bud.cutting{
  animation:budCutFixed .26s ease forwards!important;
  pointer-events:none;
}

@keyframes budCutFixed{
  0%{opacity:1;}
  45%{
    transform:translate(-50%,-50%) scale(calc(var(--bud-scale,1) * 1.08)) rotate(calc(var(--bud-tilt,0deg) - 5deg));
  }
  100%{
    opacity:0;
    transform:translate(-50%,28px) scale(calc(var(--bud-scale,1) * .45)) rotate(calc(var(--bud-tilt,0deg) + 18deg));
  }
}

.harvest-cut-mark{
  position:absolute;
  z-index:4;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  transform:translate(-50%,-50%);
  border:1px solid rgba(100,225,137,.22);
  border-radius:50%;
  background:rgba(17,55,32,.92);
  color:#93dca7;
  font-size:11px;
  font-weight:900;
  pointer-events:none;
}

.harvest-cut-mark::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:var(--cut-anchor-length,12px);
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,rgba(190,225,154,.48),rgba(133,168,89,.68));
  transform-origin:0 50%;
  transform:translateY(-50%) rotate(var(--cut-anchor-angle,0deg));
  opacity:.62;
}

.harvest-instruction{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:10px;
  padding:9px 11px;
  border:1px solid rgba(93,213,128,.10);
  border-radius:11px;
  background:rgba(76,194,110,.03);
}

.harvest-instruction > span{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:9px;
  background:rgba(76,194,110,.07);
  font-size:16px;
}

.harvest-instruction b,
.harvest-instruction small{
  display:block;
}

.harvest-instruction b{
  font-size:12px;
}

.harvest-instruction small{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}

.harvest-instruction.complete{
  border-color:rgba(91,222,130,.18);
  background:rgba(76,194,110,.06);
}

.harvest-counter.complete strong{
  color:#8fdda5;
}

.harvest-finish-btn:disabled{
  opacity:.48!important;
  cursor:not-allowed!important;
  filter:saturate(.45);
  background:rgba(255,255,255,.035)!important;
  border-color:rgba(255,255,255,.06)!important;
  color:var(--muted)!important;
}

.harvest-progress{
  height:9px!important;
}

@media(max-width:600px){
  .harvest-stage{
    height:min(114vw,436px)!important;
    min-height:364px;
    padding:6px;
  }

  .harvest-plant{
    width:min(94%,310px);
    min-height:350px;
  }

  .harvest-bud{
    width:58px!important;
    height:58px!important;
  }

  .harvest-bud img{
    width:52px!important;
    height:52px!important;
  }

  .harvest-leaf{
    width:88px!important;
    height:88px!important;
  }

  .harvest-scissors{
    opacity:1;
  }

  .harvest-instruction b{
    font-size:12px!important;
  }

  .harvest-instruction small{
    font-size:11px!important;
  }
}


/* ==========================================================================
   CannaGrow 0.9.6 – Guthabenverlauf
   ========================================================================== */

.balance-history-card{
  margin-top:14px;
  padding:17px;
  border-radius:19px;
}

.balance-history-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}

.balance-history-head h2{
  margin:3px 0 4px;
}

.balance-history-head p{
  max-width:680px;
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.balance-history-current{
  flex:0 0 auto;
  min-width:180px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:12px;
  background:rgba(255,255,255,.02);
  text-align:right;
}

.balance-history-current span{
  display:block;
  color:var(--muted);
  font-size:11px;
}

.balance-history-current strong{
  display:block;
  margin-top:2px;
  font-size:20px;
}

.balance-history-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr)) auto;
  gap:8px;
  align-items:center;
  margin-top:12px;
}

.balance-history-summary > div{
  padding:9px 11px;
  border:1px solid rgba(255,255,255,.045);
  border-radius:11px;
  background:rgba(255,255,255,.018);
}

.balance-history-summary span{
  display:block;
  color:var(--muted);
  font-size:11px;
}

.balance-history-summary strong{
  display:block;
  margin-top:2px;
  font-size:14px;
}

.balance-history-summary strong.income{
  color:#8fdda5;
}

.balance-history-summary strong.expense{
  color:#ef9b92;
}

.balance-history-summary > small{
  color:var(--muted);
  font-size:10px;
  text-align:right;
}

.balance-history-filters{
  display:flex;
  gap:6px;
  margin:12px 0 9px;
  overflow-x:auto;
}

.balance-history-filters button{
  min-height:38px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.055);
  border-radius:9px;
  background:rgba(255,255,255,.018);
  color:var(--muted);
  cursor:pointer;
  font:inherit;
  font-size:12px;
  font-weight:750;
}

.balance-history-filters button.active{
  border-color:rgba(88,211,124,.2);
  background:rgba(72,188,107,.07);
  color:var(--text);
}

.balance-history-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  max-height:560px;
  overflow:auto;
  padding-right:2px;
}

.balance-history-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.04);
  border-radius:11px;
  background:rgba(255,255,255,.015);
}

.balance-history-row.income{
  border-left:3px solid rgba(92,214,127,.42);
}

.balance-history-row.expense{
  border-left:3px solid rgba(228,104,91,.38);
}

.balance-history-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.035);
  color:#9ed5ad;
  font-size:14px;
  font-weight:900;
}

.balance-history-row.expense .balance-history-icon{
  color:#e3a29b;
}

.balance-history-copy{
  min-width:0;
}

.balance-history-copy strong,
.balance-history-copy span,
.balance-history-copy small{
  display:block;
}

.balance-history-copy strong{
  font-size:13px;
}

.balance-history-copy span{
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}

.balance-history-copy small{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

.balance-history-values{
  min-width:120px;
  text-align:right;
}

.balance-history-values strong,
.balance-history-values small{
  display:block;
}

.balance-history-values strong{
  font-size:14px;
}

.balance-history-row.income .balance-history-values strong{
  color:#91dda6;
}

.balance-history-row.expense .balance-history-values strong{
  color:#efa097;
}

.balance-history-values small{
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}

.balance-history-empty{
  padding:24px 14px;
  border:1px dashed rgba(255,255,255,.06);
  border-radius:11px;
  color:var(--muted);
  text-align:center;
  font-size:12px;
}

@media(max-width:700px){
  .balance-history-head{
    flex-direction:column;
  }

  .balance-history-current{
    width:100%;
    min-width:0;
    text-align:left;
  }

  .balance-history-summary{
    grid-template-columns:1fr 1fr;
  }

  .balance-history-summary > small{
    grid-column:1/-1;
    text-align:left;
  }

  .balance-history-row{
    grid-template-columns:auto minmax(0,1fr);
  }

  .balance-history-values{
    grid-column:2;
    min-width:0;
    text-align:left;
  }

  .balance-history-copy strong,
  .balance-history-values strong{
    font-size:13px!important;
  }

  .balance-history-copy span,
  .balance-history-values small{
    font-size:10px!important;
  }

  .balance-history-copy small{
    font-size:11px!important;
  }
}

@media(max-width:420px){
  .balance-history-summary{
    grid-template-columns:1fr;
  }

  .balance-history-summary > small{
    grid-column:auto;
  }
}


/* ==========================================================================
   CannaGrow 0.9.7 – Pflanzenprobleme, Ernte, Lagerstapel & freier Marktpreis
   ========================================================================== */

/* ---- Erntebereitschaft -------------------------------------------------- */

.plant-card-side{
  display:flex;
  min-width:145px;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
}

.card-status.ready{
  background:rgba(65,211,110,.11);
  color:#9be1af;
  border-color:rgba(81,218,122,.18);
}

.plant-harvest-now{
  min-height:36px!important;
  padding:7px 10px!important;
  font-size:11px!important;
}

.plant-problem-mini{
  max-width:180px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(221,146,68,.08);
  color:#e7b476;
  font-size:10px;
  font-weight:800;
  text-align:right;
}

.harvest-ready-action{
  width:100%;
  min-height:50px!important;
  font-size:14px!important;
}

.harvest-ready-action:disabled{
  opacity:.58;
}

.harvest-complete-stage .harvest-plant.completed .harvest-leaf{
  opacity:.48!important;
  filter:saturate(.72);
}

.harvest-complete-stage{
  border-color:rgba(82,218,121,.17)!important;
  background:
    radial-gradient(circle at 50% 48%,rgba(72,195,108,.05),transparent 48%),
    rgba(4,12,8,.34)!important;
}

/* Alte Check-Markierungen aus 0.9.5 bleiben absichtlich unsichtbar. */
.harvest-cut-mark{
  display:none!important;
}

/* ---- Pflanzenproblem-Hinweis ------------------------------------------ */

.plant-problem-help{
  margin:12px 0 14px;
  padding:14px;
  border:1px solid rgba(224,145,59,.18);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(209,126,47,.055),rgba(255,255,255,.015));
}

.plant-problem-help.mold{
  border-color:rgba(154,170,89,.18);
  background:linear-gradient(180deg,rgba(123,143,67,.05),rgba(255,255,255,.015));
}

.plant-problem-help-head{
  display:flex;
  gap:10px;
  align-items:center;
}

.plant-problem-help-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  font-size:20px;
}

.plant-problem-help-head span{
  display:block;
  color:#e6b36d;
  font-size:11px;
  font-weight:850;
  letter-spacing:.06em;
}

.plant-problem-help-head h3{
  margin:2px 0 0;
  font-size:17px;
}

.plant-problem-help-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:11px;
}

.plant-problem-help-grid > div{
  padding:10px 11px;
  border:1px solid rgba(255,255,255,.04);
  border-radius:11px;
  background:rgba(255,255,255,.016);
}

.plant-problem-help-grid span{
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}

.plant-problem-help-grid p{
  margin:3px 0 0;
  font-size:12px;
  line-height:1.5;
}

.plant-problem-help-actions{
  margin-top:10px;
}

.plant-problem-help-actions button{
  width:100%;
}

/* ---- Interaktive Problembehandlung ------------------------------------ */

.problem-modal{
  width:min(94vw,760px)!important;
}

.problem-modal-head{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding-right:38px;
}

.problem-modal-head h2{
  margin:3px 0 4px;
}

.problem-modal-head p{
  margin:0;
  max-width:550px;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
}

.problem-modal-counter{
  flex:0 0 auto;
  text-align:right;
}

.problem-modal-counter strong,
.problem-modal-counter span{
  display:block;
}

.problem-modal-counter strong{
  font-size:19px;
}

.problem-modal-counter span{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}

.problem-modal-counter.complete strong{
  color:#90dda6;
}

.problem-treatment-stage{
  position:relative;
  height:430px;
  display:grid;
  place-items:center;
  margin-top:12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.055);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 42%,rgba(76,194,110,.025),transparent 48%),
    rgba(3,10,6,.37);
}

.problem-treatment-plant{
  position:relative;
  width:min(78%,300px);
  height:100%;
  min-height:390px;
}

.problem-treatment-stem{
  position:absolute;
  left:50%;
  bottom:0;
  width:auto;
  height:96%;
  transform:translateX(-50%);
  object-fit:contain;
  z-index:1;
}

.problem-leaf-base{
  position:absolute;
  width:94px;
  height:94px;
  object-fit:contain;
  z-index:2;
  transform:
    translate(-50%,-50%)
    rotate(var(--problem-leaf-rotation,0deg))
    scale(var(--problem-leaf-scale,1));
  transform-origin:center;
  opacity:.80;
}

/* CSS-Insekt statt Emoji, damit die Treffer klar sind */
.pest-target{
  position:absolute;
  z-index:8;
  width:38px;
  height:38px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(239,180,79,.24);
  border-radius:50%;
  background:rgba(38,27,12,.74);
  cursor:pointer;
  touch-action:manipulation;
  box-shadow:0 0 0 4px rgba(227,159,60,.03);
}

.pest-body{
  position:absolute;
  left:50%;
  top:50%;
  width:12px;
  height:18px;
  transform:translate(-50%,-50%);
  border-radius:48% 48% 44% 44%;
  background:#c6953c;
  box-shadow:inset 0 -4px 0 rgba(63,40,14,.24);
}

.pest-body:before{
  content:"";
  position:absolute;
  left:50%;
  top:-5px;
  width:8px;
  height:8px;
  transform:translateX(-50%);
  border-radius:50%;
  background:#a9782c;
}

.pest-leg{
  position:absolute;
  left:50%;
  top:50%;
  width:14px;
  height:1px;
  background:#d0ad65;
  transform-origin:left center;
}

.pest-leg.l1{transform:translate(-2px,-5px) rotate(160deg)}
.pest-leg.l2{transform:translate(-2px,0) rotate(180deg)}
.pest-leg.l3{transform:translate(-2px,5px) rotate(200deg)}
.pest-leg.r1{transform:translate(2px,-5px) rotate(20deg)}
.pest-leg.r2{transform:translate(2px,0) rotate(0deg)}
.pest-leg.r3{transform:translate(2px,5px) rotate(-20deg)}

.pest-target:hover,
.pest-target:focus-visible{
  border-color:rgba(244,191,92,.66);
  box-shadow:0 0 0 6px rgba(227,159,60,.06);
}

.mold-leaf-target{
  position:absolute;
  z-index:7;
  width:108px;
  height:108px;
  padding:0;
  transform:
    translate(-50%,-50%)
    rotate(var(--problem-leaf-rotation,0deg))
    scale(var(--problem-leaf-scale,1));
  border:1px dashed rgba(213,177,101,.23);
  border-radius:50%;
  background:rgba(77,62,26,.05);
  cursor:pointer;
  touch-action:manipulation;
}

.mold-leaf-target img{
  width:100%;
  height:100%;
  object-fit:contain;
  filter:grayscale(.35) sepia(.62) saturate(.55) brightness(.64);
}

.mold-patches{
  position:absolute;
  inset:24% 26%;
  border-radius:50%;
  background:
    radial-gradient(circle at 25% 30%,rgba(208,214,185,.65) 0 8%,transparent 9%),
    radial-gradient(circle at 64% 45%,rgba(191,197,169,.55) 0 9%,transparent 10%),
    radial-gradient(circle at 46% 72%,rgba(223,218,184,.52) 0 7%,transparent 8%);
  pointer-events:none;
}

.problem-cut-icon{
  position:absolute;
  right:3px;
  bottom:5px;
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#25351d;
  border:1px solid rgba(199,207,114,.22);
  font-size:12px;
}

.pest-target.clearing,
.mold-leaf-target.clearing{
  animation:problemTargetClear .18s ease forwards;
  pointer-events:none;
}

@keyframes problemTargetClear{
  to{
    opacity:0;
    transform:translate(-50%,18px) scale(.45);
  }
}

.problem-complete-overlay{
  position:absolute;
  z-index:15;
  left:50%;
  top:50%;
  width:min(82%,360px);
  transform:translate(-50%,-50%);
  padding:15px;
  border:1px solid rgba(85,221,124,.19);
  border-radius:15px;
  background:rgba(7,28,15,.92);
  text-align:center;
  backdrop-filter:blur(7px);
}

.problem-complete-overlay span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  margin:0 auto 7px;
  border-radius:50%;
  background:rgba(78,210,116,.11);
  color:#91dea6;
  font-size:19px;
}

.problem-complete-overlay strong,
.problem-complete-overlay small{
  display:block;
}

.problem-complete-overlay strong{
  font-size:14px;
}

.problem-complete-overlay small{
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
}

.problem-progress-row{
  display:flex;
  gap:11px;
  align-items:center;
  margin-top:10px;
}

.problem-progress{
  height:8px;
  flex:1;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.045);
}

.problem-progress i{
  display:block;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#53c979,#8bdca2);
}

.problem-progress-row span{
  min-width:120px;
  color:var(--muted);
  font-size:11px;
  text-align:right;
}

.problem-modal-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:11px;
}

.problem-modal-footer small{
  max-width:470px;
  color:var(--muted);
  font-size:11px;
  line-height:1.4;
}

/* ---- Lagerstapel ------------------------------------------------------- */

.batch-stack-card{
  grid-template-columns:minmax(0,1fr) auto;
}

.batch-stack-title{
  display:flex;
  align-items:center;
  gap:8px;
}

.batch-stack-title h3{
  margin:0;
}

.batch-stack-count{
  display:inline-grid;
  place-items:center;
  min-width:31px;
  height:25px;
  padding:0 7px;
  border-radius:999px;
  background:rgba(88,209,124,.08);
  color:#95dda8;
  font-size:11px;
  font-weight:900;
}

.batch-stack-values{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:7px;
}

.batch-stack-values span{
  color:var(--muted);
  font-size:11px;
}

.batch-stack-values b{
  color:var(--text);
}

.batch-stack-card .batch-actions{
  flex-wrap:wrap;
  justify-content:flex-end;
}

/* ---- Freier Marktplatzpreis ------------------------------------------- */

.market-price-hint{
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.05);
  border-radius:10px;
  background:rgba(255,255,255,.018);
  font-size:11px!important;
  line-height:1.5!important;
}

.market-price-field input{
  font-size:18px!important;
}

/* ---- Mobile ------------------------------------------------------------ */

@media(max-width:700px){
  .plant-card-side{
    grid-column:2;
    width:100%;
    min-width:0;
    align-items:flex-start;
  }

  .plant-harvest-now{
    width:100%;
  }

  .plant-problem-help-grid{
    grid-template-columns:1fr;
  }

  .problem-modal-head{
    flex-direction:column;
  }

  .problem-modal-counter{
    text-align:left;
  }

  .problem-treatment-stage{
    height:min(112vw,420px);
    min-height:350px;
  }

  .problem-treatment-plant{
    width:min(88%,285px);
    min-height:340px;
  }

  .problem-leaf-base{
    width:82px;
    height:82px;
  }

  .mold-leaf-target{
    width:94px;
    height:94px;
  }

  .pest-target{
    width:42px;
    height:42px;
  }

  .problem-modal-footer{
    align-items:flex-start;
    flex-direction:column;
  }

  .problem-modal-footer button{
    width:100%;
  }

  .batch-stack-card{
    grid-template-columns:1fr;
  }

  .batch-stack-card .batch-actions{
    justify-content:flex-start;
  }

  .batch-stack-card .batch-actions button{
    flex:1 1 135px;
  }
}




/* 0.13.2 – Sortenbild auch in Detail- und Listenansicht */
.plant-photo{
  position:relative;
  width:100%;
  height:100%;
  display:flex;
  align-items:flex-end;
  justify-content:center;
}

.plant-photo img{
  display:block;
  width:auto;
  height:100%;
  max-width:100%;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.22));
}

.plant-photo.plant-mini{
  min-height:88px;
}

.plant-photo.plant-detail{
  min-height:220px;
}

.plant-photo.plant-detail.mid img{
  transform:scale(.86);
  transform-origin:bottom center;
}

.plant-photo.plant-detail.full img{
  transform:scale(1);
  transform-origin:bottom center;
}

.plant-photo.plant-mini.mid img{
  transform:scale(.78);
  transform-origin:bottom center;
}

.plant-photo.plant-mini.full img{
  transform:scale(.92);
  transform-origin:bottom center;
}
