body.dash { display: block; overflow: auto; background: #f0f2f5; }

.dash-top {
  display: flex; align-items: center; gap: 10px; padding: 10px 16px;
  background: #fff; border-bottom: 1px solid #e3e5e8; position: sticky; top: 0; z-index: 500;
}
.dash-top .brand { font-size: 18px; text-decoration: none; color: #222; }
.spacer { flex: 1; }
.who { color: #444; font-size: 14px; }

.dash-main { max-width: 760px; margin: 0 auto; padding: 16px; }

.card { background: #fff; border: 1px solid #e3e5e8; border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.auth-card { max-width: 420px; margin: 40px auto; }

.tabs { display: flex; gap: 6px; margin-bottom: 14px; }
.tab { flex: 1; padding: 10px; border: 1px solid #ccd0d5; background: #f5f6f7; border-radius: 8px; cursor: pointer; font-size: 15px; }
.tab.active { background: #1877f2; color: #fff; border-color: #1877f2; }

.form { display: flex; flex-direction: column; gap: 10px; }
.form label { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: #333; }
.form input, .form textarea, .form select {
  padding: 9px 10px; border: 1px solid #ccd0d5; border-radius: 7px; font-size: 15px; outline: none; font-family: inherit;
}
.form input:focus, .form textarea:focus, .form select:focus { border-color: #1877f2; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

.btn { border: none; background: #1877f2; color: #fff; font-weight: 600; padding: 10px 16px; border-radius: 8px; cursor: pointer; font-size: 15px; }
.btn:active { transform: scale(.98); }
.btn.full { width: 100%; }
.btn.ghost { background: #eceef1; color: #333; }
.btn.danger { background: #e5533d; }
.btn.sm { padding: 6px 10px; font-size: 13px; }

.err { color: #d33; font-size: 13px; min-height: 16px; }
.row-between { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.row-end { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }

.shop-cards { display: flex; flex-direction: column; gap: 10px; }
.shop-card {
  background: #fff; border: 1px solid #e3e5e8; border-radius: 10px; padding: 12px 14px;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.shop-card .sc-main { flex: 1; min-width: 160px; }
.shop-card .sc-name { font-weight: 600; font-size: 16px; }
.shop-card .sc-sub { color: #666; font-size: 13px; margin-top: 2px; }
.badge { display: inline-block; border-radius: 10px; padding: 1px 8px; font-size: 12px; }
.badge.on { background: #e3f6e8; color: #1a7f37; }
.badge.off { background: #fdeaea; color: #c0392b; }
.sc-actions { display: flex; gap: 6px; flex-wrap: wrap; }

.pick-tools { display: flex; gap: 6px; flex-wrap: wrap; }
.pick-tools input { flex: 1; min-width: 140px; padding: 8px 10px; border: 1px solid #ccd0d5; border-radius: 7px; }
.pickmap { height: 300px; border: 1px solid #ccd0d5; border-radius: 8px; margin-top: 4px; }
.latlng { font-size: 13px; color: #555; }

.up-row { display: flex; align-items: center; gap: 12px; }
.prev { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid #ddd; }

.prod-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.prod-row {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px;
  border: 1px solid #eee; border-radius: 8px;
}
.prod-row img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; }
.prod-row .pr-main { flex: 1; }
.prod-row .pr-name { font-weight: 500; }
.prod-row .pr-sub { color: #777; font-size: 12px; }
.prod-row .pr-price { color: #e5533d; font-weight: 700; white-space: nowrap; }

.empty { padding: 18px; color: #888; text-align: center; }
.hidden { display: none !important; }
.forgot-link { color: #1877f2; text-decoration: none; font-size: 14px; text-align: center; display: block; margin-top: 4px; }
.forgot-link:hover { text-decoration: underline; }

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