/* =========================================================
   STMPro App Cart (Unique + Slim)
   Clean only: no gradients, no shadows, no blur, no blue tint
   ========================================================= */

.stmappcart, .stmappcart *{ box-sizing:border-box; }
.stmappcart{ background:#fff; color:#111; }
.stmappcart__wrap{ max-width:1220px; margin:0 auto; padding:16px 14px 110px; }

/* Top bar (app feel) */
.stmappcart__top{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 12px;
  border:1px solid #e9e9e9;
  border-radius:16px;
  background:#fff;
  margin:10px 0 14px;
}
.stmappcart__topLeft{ display:flex; align-items:center; gap:10px; min-width:0; }
.stmappcart__back{
  width:38px; height:38px;
  border-radius:12px;
  border:1px solid #e9e9e9;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; color:#111; font-weight:900;
}
.stmappcart__title{ margin:0; font-size:18px; font-weight:950; letter-spacing:-.01em; }
.stmappcart__sub{ font-size:12px; color:#777; margin-top:2px; }
.stmappcart__ghost{ text-decoration:none; color:#111; font-weight:900; padding:10px 12px; border:1px solid #e9e9e9; border-radius:14px; }

.stmappcart__btn{
  height:44px;
  padding:0 16px;
  border-radius:14px;
  border:1px solid #e6e6e6;
  background:#fff;
  color:#111;
  display:inline-flex; align-items:center; justify-content:center;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
}
.stmappcart__btn--primary{
  background:#ff6a00;
  border-color:#ff6a00;
  color:#fff;
}

/* Layout */
.stmappcart__grid{
  display:grid;
  grid-template-columns: 1fr 360px;
  gap:14px;
  align-items:start;
}
@media (max-width:980px){ .stmappcart__grid{ grid-template-columns:1fr; } }

.stmappcart__list{ min-width:0; }

/* ===============================
   ITEM ROW (app slim)
   =============================== */
.stmappitem{
  display:grid;
  grid-template-columns: 64px 1fr auto;
  gap:10px;
  padding:12px;
  border:1px solid #ededed;
  border-radius:16px;
  background:#fff;
  margin-bottom:10px;
}
.stmappitem__thumb img{
  width:100%;
  height:auto;
  display:block;
  border-radius:12px;
  border:1px solid #f0f0f0;
}
.stmappitem__info{ min-width:0; }
.stmappitem__name{
  font-weight:950;
  line-height:1.2;
  font-size:14px;
}
.stmappitem__name a{ color:#111; text-decoration:none; }
.stmappitem__name a:hover{ text-decoration:underline; }

.stmappitem__meta{
  display:flex; align-items:center; gap:6px;
  margin-top:4px;
  font-size:12px;
  color:#666;
  flex-wrap:wrap;
}
.stmappitem__price{ font-weight:950; color:#111; }
.stmappitem__dot{ color:#bbb; }
.stmappitem__total{ color:#666; }

.stmappitem__variants{ margin-top:4px; font-size:12px; color:#777; }

/* Right side controls */
.stmappitem__side{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
.stmappitem__trash{
  width:34px; height:34px;
  border-radius:12px;
  border:1px solid #e9e9e9;
  display:flex; align-items:center; justify-content:center;
  text-decoration:none; color:#111;
  font-size:16px;
}
.stmappqty{
  display:flex; align-items:center; gap:6px;
  border:1px solid #e9e9e9;
  border-radius:999px;
  padding:6px;
  background:#fff;
}
.stmappqty__btn{
  width:32px; height:32px;
  border-radius:999px;
  border:1px solid #ededed;
  background:#fff;
  cursor:pointer;
  font-weight:950;
}
.stmappqty__input{
  width:44px;
  height:32px;
  border-radius:999px;
  border:1px solid #ededed;
  text-align:center;
  font-weight:950;
  padding:0;
}

/* actions */
.stmappcart__actions{
  display:flex; gap:10px; flex-wrap:wrap;
  margin-top:8px;
}

/* ===============================
   SUMMARY
   =============================== */
.stmappsum__card{
  border:1px solid #ededed;
  border-radius:16px;
  padding:14px;
  background:#fff;
  position:sticky;
  top:16px;
}
@media (max-width:980px){ .stmappsum__card{ position:relative; top:auto; margin-bottom:96px; } }

.stmappsum__head h2{ margin:0; font-size:16px; font-weight:950; }
.stmappsum__mini{ margin-top:3px; font-size:12px; color:#777; }

.stmappcoupon{ margin:12px 0 10px; }
.stmappcoupon label{ display:block; font-size:12px; color:#666; font-weight:900; margin-bottom:8px; }
.stmappcoupon__row{ display:flex; gap:10px; }
.stmappcoupon__input{
  flex:1;
  height:44px;
  border-radius:14px;
  border:1px solid #e9e9e9;
  padding:0 12px;
  background:#fff;
}

.stmappsum__rows{ margin-top:10px; border-top:1px solid #f1f1f1; }
.stmappsum__row{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 0;
  border-bottom:1px solid #f5f5f5;
}
.stmappsum__row span{ color:#666; font-weight:900; }
.stmappsum__row strong{ font-weight:950; color:#111; }
.stmappsum__row--total strong{ font-size:18px; }

.stmappsum__checkout{ width:100%; height:48px; border-radius:16px; margin-top:12px; }
.stmappsum__note{ text-align:center; margin-top:10px; font-size:12px; color:#777; }

/* Bottom bar (mobile app) */
.stmappbar{
  display:none;
  position:fixed;
  left:10px;
  right:10px;
  bottom:10px;
  padding:10px;
  border-radius:16px;
  background:#fff;
  border:1px solid #ededed;
  z-index:10050;
  gap:12px;
}
.stmappbar__total span{
  display:block;
  font-size:10px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#777;
  font-weight:900;
}
.stmappbar__total strong{
  display:block;
  font-size:16px;
  font-weight:950;
  color:#111;
}
@media (max-width:980px){
  .stmappbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
  }
  .stmappbar .stmappcart__btn{ min-width:140px; height:46px; border-radius:14px; }
}

/* ===============================
   Desktop polish (unique)
   =============================== */
@media (min-width: 981px){
  .stmappitem{ grid-template-columns: 72px 1fr auto; padding:14px; }
  .stmappitem__name{ font-size:15px; }
  .stmappsum__card{ border-radius:18px; }
}

/* ===============================
   Small mobile tweaks
   =============================== */
@media (max-width: 420px){
  .stmappcart__wrap{ padding:14px 12px 110px; }
  .stmappitem{ grid-template-columns: 60px 1fr auto; padding:10px; }
  .stmappitem__trash{ width:32px; height:32px; border-radius:11px; }
}
