
body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
.card { background: #fff; border-radius: 8px; padding: 16px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.btn-primary { background: #2563eb; color: #fff; padding: 8px 16px; border-radius: 6px; }
.btn-primary:hover { background: #1d4ed8; }
.btn-secondary { background: #e5e7eb; color: #374151; padding: 8px 16px; border-radius: 6px; }
.btn-danger { background: #ef4444; color: #fff; padding: 6px 12px; border-radius: 6px; }
.btn-sm { padding: 4px 10px; font-size: 12px; }
.table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.table th, .table td { border: 1px solid #e5e7eb; padding: 8px; text-align: left; word-break: keep-all; overflow-wrap: break-word; vertical-align: top; }
.table th { background: #f9fafb; }
.table-sm th, .table-sm td { padding: 6px; font-size: 13px; }
.input { border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 10px; width: 100%; box-sizing: border-box; }
.select { border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 10px; }
.modal-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); display: flex; align-items: center; justify-content: center; z-index: 50; }
.modal-container { background: #fff; border-radius: 8px; width: 90%; max-width: 700px; max-height: 90vh; overflow-y: auto; padding: 20px; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; }
.badge-blue { background: #dbeafe; color: #1e40af; }
.badge-green { background: #dcfce7; color: #166534; }
.badge-orange { background: #ffedd5; color: #9a3412; }
.badge-red { background: #fee2e2; color: #991b1b; }
.badge-gray { background: #f3f4f6; color: #4b5563; }
 
/* 楼层平面图铺位悬停效果 */
.shop rect { transition: opacity 0.15s ease; }
.shop:hover rect { opacity: 0.85; stroke: #fbbf24; stroke-width: 2; }
/* 移动端适配 */
@media (max-width: 768px) {
  html { font-size: 14px; }
  .card { padding: 12px; margin-bottom: 12px; }
  .card h2, .card h3 { font-size: 1rem; }
  .table th, .table td { padding: 6px; font-size: 12px; }
  .table { table-layout: auto; min-width: 640px; }
  .input, .select { font-size: 16px; padding: 8px 10px; }
  .btn-primary, .btn-secondary, .btn-danger { min-height: 40px; padding: 8px 14px; font-size: 14px; }
  .btn-sm { padding: 6px 10px; font-size: 12px; }
  .modal-container { width: 92%; padding: 16px; }
  h1 { font-size: 1.25rem; }
  h2 { font-size: 1.1rem; }
}
@media (max-width: 480px) {
  .card { padding: 10px; }
  .table th, .table td { padding: 5px; }
}
